笔记说明
在datacamp网站上学习“Time Series with R ”track
“Forecasting Using R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“Forecasting Using R”,主要用forecast包。
课程参考教材Forecasting: Principles and Practice
课程中数据可在fpp2包得到
ETS模型
之前介绍的指数模型都可拆分为三个部分:
- 误差项(Error) 可以是相加模型或相乘模型
- 趋势项(Trend)可以是无、相加模型、相乘模型
- 季节项(Seasonality)可以是无、相加模型、相乘模型
这三个部分的任意组合构成了ETS模型,ETS可以理解为Error,Trend,Seasonality,也可以理解为ExponenTial Smoothing模型。
- ETS模型采用最大似然法进行参数估计
- 误差项为相加模型时,最大似然法等价于使SSE最小来进行参数估计
- 自动尝试不同的ETS各项组合并通过使AICc最小来选择最佳模型
指数模型的特点是相对简单,短期预测能力很好。
R实现
forecast包的ets()
可以进行ETS模型的拟合。
ets(ata,model="ZZZ",damped = NULL)
- model选项的三个字母按顺序分别代表误差项、趋势项、季节项,可以选择的字母包括:A(相加模型) M(相乘模型) N(无) Z(自动选择)
- damped选项控制是否为趋势向加阻尼系数,默认NULL下会将加不加的情况都进行考虑,通过AICc选择最终结果。
实例数据:austa数据为1980-2015年间每年到澳大利亚的国际旅客数(以百万为单位)
下面用ets()
实现对austa数据的自动选取拟合优度最高的模型并生成预测值
# Fit ETS model to austa in fitaus
fitaus <- ets(austa)
# Check residuals
checkresiduals(fitaus)
# Plot forecasts
autoplot(forecast(fitaus))
输入“fitaus”查看建立的模型信息可以看到
ets()
最终选择了ets(A,A,N)模型,并可以查看模型的相关参数(此处略)
网友评论