笔记说明
在datacamp网站上学习“Time Series with R ”track
“Forecasting Using R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“Forecasting Using R”,主要用forecast包。
课程参考教材Forecasting: Principles and Practice
课程中数据可在fpp2包得到
本次笔记也参考了其他人的简书文章:指数平滑方法简介
在Holt's linear trend method的基础上添加季节性成分便得到三指数模型——Holt-Winters'模型,他有加法模型和乘法模型两种形式。
Holt-Winters' additive method
预测值:
平滑值:
趋势:
季节项:
- 为季节项
- 平滑参数:
- m为季节周期值,例如以季度为周期则m=4
- 季节项的均值为0
Holt-Winters' multiplicative method
预测值:
平滑值:
趋势:
季节项:
- 为季节项
- 平滑参数:
- m为季节周期值,例如以季度为周期则m=4
- 季节项的均值为1
一般来说,如果时间序列数据的方差有随时间增大的趋势,那么更推荐使用乘法模型。
R实现
可以用forecast包的hw(data, seasonal = "additive",h=)
进行三指数模型的拟合。seasonal=
选项可选择“additive”或“multiplicative”
实例数据a10记录了澳大利亚1991-2008年间每月抗糖尿病药物的销售量。
# Plot the data
autoplot(a10)
# Produce 3 year forecasts
fc <- hw(a10, seasonal = "multiplicative", h = 36)
# Check if residuals look like white noise
checkresiduals(fc)
# Plot forecasts
autoplot(fc)
autoplot(a10)的输出省略,看一下残差分析结果和预测结果:
虽然对残差的Ljung-Box检验显示残差不符合白噪声(检验结果省略),但该模型计算的预测值还是能提供一些有用的信息。