参考:https://www.cnblogs.com/fengzzi/p/10044426.html
指数模型是用来预测时序未来值的最常用模型。这类模型相对比较简单,但是实践证明它们的短期预测能力较好。不同指数模型建模时选用的因子可能不同。比如
- 单指数模型(simple/single exponential model)拟合的是只有常数水平项和时间点i处随机项的时间序列,这时认为时间序列不存在趋势项和季节效应;
- 双指数模型(double exponential model;也叫Holt指数平滑,Holt exponential smoothing)拟合的是有水平项和趋势项的时序;
- 三指数模型(triple exponential model;也叫Holt-Winters指数平滑,Holt-Winters exponential smoothing)拟合的是有水平项、趋势项以及季节效应的时序。
R中自带的HoltWinters()函数或者forecast包中的ets()函数可以拟合指数模型。ets()函数的备选参数更多,因此更实用。
1. HoltWinters()函数
2. forecast包中的ets()函数
平滑参数(α,β,γ)=(水平,趋势,季节)
2.1 最简单参数
ets(ts, model="zzz")
model="ZZZ",依次含义为错误类型、趋势类型、季节类型。 "A"=additive, "M"=multiplicative and "Z"=automatically
其中ts
是要分析的时序,限定模型的字母有三个。第一个字母代表误差项,第二个字母代表趋势项,第三个字母则代表季节项。可选的字母包括:相加模型(A)、相乘模型(M)、无(N)、自动选择(Z)。
"A"=additive, "M"=multiplicative and "Z"=automatically
2.2 所有参数
ets(y, model="ZZZ", damped=NULL, alpha=NULL, beta=NULL, gamma=NULL, phi=NULL, additive.only=FALSE, lambda=NULL, lower=c(rep(0.0001,3), 0.8), upper=c(rep(0.9999,3),0.98), opt.crit=c("lik","amse","mse","sigma","mae"), nmse=3, bounds=c("both","usual","admissible"), ic=c("aic","aicc","bic"),restrict=TRUE)
y:一个数值向量或时间系列
model="ZZZ":依次含义为错误类型、趋势类型、季节类型。 "A"=additive, "M"=multiplicative and "Z"=automatically
(additive,为加法;multiplicative,乘法;damped,阻尼;Null,无)
damped=NULL,一个的阻尼趋势
lower=c(rep(0.0001,3), 0.8), upper=c(rep(0.9999,3),0.98), 参数(α,β,γ,φ)的上下界
opt.crit=c("lik","amse","mse","sigma","mae"):优化标准, “MSE”(均方误差),“AMSE”((Average MSE over first nmse forecast horizons),“sigma”(标准偏差残差),“mae”(残差绝对值的平均值),或“lik”(对数似然,默认值)
nmse=3, 平均多级MSE(1 <=nmse<= 10)的步数。
bounds=c("both","usual","admissible"): 收敛参数空间类型,"usual" 表示所有参数都必须指定上限和下限之间,“"admissible"表示参数必须位于允许的空间,”"both"(默认)的交叉点这些区域。
ic=c("aic","aicc","bic"):在模型选择要使用的信息准则。
restrict=TRUE:如果是TRUE,无限方差模型将不会被允许
3. 预测准确性度量
- 平均误差和平均百分比误差:一般来说,平均误差和平均百分比误差用处不大,因为正向和负向的误差会抵消掉。
- RMSE:给出了平均误差平方和的平方根,本例中即1.13°F。
- 平均绝对百分误差:给出了误差在真实值中的占比,它没有单位,因此可以用于比较不同时序间的预测准确性;但它同时假定测量尺度中存在一个真实为零的点(比如每天的游客数量),但华氏温度中并没有一个真实为零(即不存在分子运动动能)的点,因此这里不能用这个统计量。
- 平均绝对标准化误差:是最新的一种准确度测量,通常用于比较不同尺度的时序间的预测准确性。这几种预测准确性度量中,并不存在某种最优度量,不过RMSE相对最有名、最常用。