美文网首页
时间序列笔记-三指数模型

时间序列笔记-三指数模型

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

笔记说明

在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

预测值:\hat y_{t+h|t}=l_t+hb_t+s_{t-m+h^+_m}
平滑值:l_t=α(y_t-s_{t-m})+(1-α)(l_{t-1}+b_{t-1})
趋势:b_t=β^*(l_t-l_{t-1})+(1-β^*)b_{t-1}
季节项:s_t=γ(y_t-l_{t-1}-b_{t-1})+(1-γ)s_{t-m}

  • s_{t-m+h^+_m}为季节项
  • 平滑参数:0≤α≤1,0≤β^*≤1, 0≤γ≤1-α
  • m为季节周期值,例如以季度为周期则m=4
  • 季节项的均值为0

Holt-Winters' multiplicative method

预测值:\hat y_{t+h|t}=(l_t+hb_t)s_{t-m+h^+_m}
平滑值:l_t=α\frac {y_t}{s_{t-m}}+(1-α)(l_{t-1}+b_{t-1})
趋势:b_t=β^*(l_t-l_{t-1})+(1-β^*)b_{t-1}
季节项:s_t=γ\frac {y_t}{(l_{t-1}+b_{t-1})}+(1-γ)s_{t-m}

  • s_{t-m+h^+_m}为季节项
  • 平滑参数:0≤α≤1,0≤β^*≤1, 0≤γ≤1-α
  • 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检验显示残差不符合白噪声(检验结果省略),但该模型计算的预测值还是能提供一些有用的信息。

相关文章

网友评论

      本文标题:时间序列笔记-三指数模型

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