- 单指数平滑
单指数平滑根据现有的时序值的加权平均对未来值做短期预测,其中权数选择的宗旨是使得距离现在越远的观测值对平均数的影响越小
单指数平滑模型假定时序中的观测值可被表示为:
在时间点
的预测值(一步向前预测,1-step ahead forecast)可写做
其中
,权数 ci的总和为1,则一步向前预测可看作当前值和全部历史值的加权平均。
式中 α 参数控制权数下降的速度,α越接近于 1,则近期观测值的权重越大;反之,α越接近0,则历史观测值的权重越大。
为最优化某种拟合,α一般由计算机选择,常见的拟合标准是真实值和预测值之间的残差平方和
#对温度进行预测
> library(forecast)
> fit <- ets(nhtemp,model = "ANN") #对nhtemp拟合模型,其中 A 表示可加误差, #NN表示时序中不存在趋势项目、季节项
> fit
ETS(A,N,N)
Call:
ets(y = nhtemp, model = "ANN")
Smoothing parameters:
alpha = 0.182 # α=0.18值比较小说预测时同时考虑了离现在较近和较远的观测值,这样的α值可以最优化模型在给定数据集上的拟合效果
Initial states:
l = 50.2759
sigma: 1.1263
AIC AICc BIC
265.9298 266.3584 272.2129
> forecast(fit,1) #一步向前预测:forecast()函数用于预测时序未来的k步,其形式为 forecast(fit,k)
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 #预测结果是51.9°, Lo95,Hi95表示95%的置信区间为49.7°到54.1°,Lo80.Hi80表示80%的置信区间
1972 51.87045 50.42708 53.31382 49.66301 54.0779
> accuracy(fit) #得到准确性度量
ME RMSE MAE MPE MAPE MASE ACF1
Training set 0.1460295 1.126268 0.8951331 0.2418693 1.748922 0.7512497 -0.00653111
- accuracy()函数
forecast包同时提供了accuracy()函数,展示时序预测中最主流的几个准确性度量,
表示 t 个观测值的误差项(随机项),即
预测准确性度量
a、平均误差(ME)和平均百分比误差(MASE)用处不大,因为正向和负向的误差会抵消掉
b、RMSE给出了平均误差平方和的平方根
c、平均绝对百分误差(MAPE)给出零误差在真实值中的占比,没有单位,因此可以用于比较不同时序间的预测准确性,单击它同时假定测量尺度中存在一个真实为零的点(比如每天的游客数量),但华氏温度中并没有以一个真实为零(即不存在分子运动动能)的点,因此这里不能用这统计量
d、平均绝对标准化误差(MASE),通常用于比较不同尺度的时间的预测准确性
这几种预测准确性度量中,并不存在某种最优度量,不过RMSE相对最有名、最常用