笔记说明
在datacamp网站上学习“Time Series with R ”track
“Forecasting Using R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“Forecasting Using R”,主要用forecast包。
课程参考教材Forecasting: Principles and Practice
课程中数据可在fpp2包得到
简单指数平滑(Simple exponential smoothing,SES)
简单指数平滑方法利用了过去所有观测值的信息生成预测值,越近的观测给与的权重越大。
用表示给定数据
下对
的预测值,简单指数平滑的预测公式为:
,0≤α≤1
另一种等价的形式为:
称为t时刻的平滑值(smoothed value)
通过最小化SSE(误差平方和)来选择α和的值:
实例
用ses()
可以建立简单指数平滑模型病生成预测值。模型参数估计使用最小二乘法。h= 参数指定预测时间,默认为10.
对于ses()
生成的forecast对象,可以用summary()
查看模型参数等信息;可以用fitted()
提取模型的拟合值,可以用autoplot()
、autolayer()
进行作图。
autolayer()
和autoplot()
类似,不同的是它是在已有图上新加一个图层而不是新建一个图。
实例数据marathon为1897-2016年波士顿马拉松比赛的年度最佳成绩。
# Use ses() to forecast the next 10 years of winning times
fc <- ses(marathon, h = 10)
# Use summary() to see the model parameters
summary(fc)
# Use autoplot() to plot the forecasts
autoplot(fc)
# Add the one-step forecasts for the training data to the plot
autoplot(fc) + autolayer(fitted(fc))
summary()
的输出包括模型参数α、初始平滑值的参数估计值(本例中α=0.3457,
)、训练数据的ME,RMSE.MAE,MPE,MAPE等衡量模型准确性的值,以及之后10年的预测值及其80%和95%置信区间的上下限。这里不详细列出了。
输出的图像:

网友评论