美文网首页
时间序列笔记-简单指数平滑

时间序列笔记-简单指数平滑

作者: 新云旧雨 | 来源:发表于2019-08-09 06:57 被阅读0次

笔记说明

在datacamp网站上学习“Time Series with R ”track
“Forecasting Using R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“Forecasting Using R”,主要用forecast包。
课程参考教材Forecasting: Principles and Practice
课程中数据可在fpp2包得到

简单指数平滑(Simple exponential smoothing,SES)

简单指数平滑方法利用了过去所有观测值的信息生成预测值,越近的观测给与的权重越大。
\hat y_{t+h|t}表示给定数据y_1,y_2,...y_t下对y_{t+h}的预测值,简单指数平滑的预测公式为:
\hat y_{t+h|t}=αy_t+α(1-α)y_{t-1}+α(1-α)^2y_{t-2}+...,0≤α≤1
另一种等价的形式为:
\hat y_{t+h|t}=l_t=αy_t+(1-α)l_{t-1}
l_t称为t时刻的平滑值(smoothed value)
通过最小化SSE(误差平方和)来选择α和l_0的值:
SSE=\sum_{t=1}^{T}(y_t-\hat y_{t|t-1})

实例

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()的输出包括模型参数α、初始平滑值l_0的参数估计值(本例中α=0.3457,l_0=167.174)、训练数据的ME,RMSE.MAE,MPE,MAPE等衡量模型准确性的值,以及之后10年的预测值及其80%和95%置信区间的上下限。这里不详细列出了。
输出的图像:

相关文章

网友评论

      本文标题:时间序列笔记-简单指数平滑

      本文链接:https://www.haomeiwen.com/subject/qfmtjctx.html