使用 Holt-Winters 的指数平滑法预测超过一个季节

机器算法验证 时间序列 预测 擅长 指数平滑
2022-03-13 04:49:22

我正在使用 Holt-Winters 的指数平滑技术来预测未来 2 年的支出数据。月度数据有增加趋势和年度季节性。

我正在使用 MS Excel 和 Solver 插件来计算的最佳值,从而为预测提供最小的 MSE。找到的最优值位于 (0,1) 中,而为 1。αβγαβγ

我能够计算下一年(季节)的预测,因为存在上一年的季节性。但是,第二年的预测计算为零,因为不存在季节性(因为m大于 12)。

我发现如果为零,那么季节性将是周期性的,因此可以在最后一个观察值之后复制。这是在最后一个观测值之后预测超过一个季节的最佳方法吗?任何意见,将不胜感激。γ

示例数据如下。直到 2011 年 12 月,每个月都需要预测。除非为零,否则我看不出这是怎么可能的。γ

游客人数
期间 月份 游客人数 (Yt)
1 Jan-99 500
2 Feb-99 543
3 Mar-99 899
4 Apr-99 835
5 May-99 900
6 Jun-99 881
7 Jul-99 1154
8 Aug-99 1586
9 Sep-99 743
10 Oct-99 1104
11 Nov-99 799
12 Dec-99 560
13 Jan-00 514
14 Feb-00 665
15 Mar-00 949
16 Apr-00 975
17 May-00 924
18 Jun-00 724
00 年 7 月 19 日 1155
00 年 8 月 20 日 1541 00 年
9 月 21 日 746 00 年 10 月
22 日 944
20 年 11 月 23 日 786 00
年 12 月 24 日 652
01 年 1 月 25 日 479.4 01
年 2 月 26 日 644.4
2001年 3 月 27 日 815.8
2001 年 4 月 28 日 1035.4 2001
年 5 月 29 日 1000.9
01 年 6 月 30 日 793.8
2001 年 7 月 31 日 1347.3 2001
年 8 月 32 日 1378 01 年
9 月 33 日 798.1 01 年 10 月
34 日 1070.5
11 月 35 日6654.3 201 年
12 月 36 日
37 Jan-02 477.5
38 Feb-02 656.2
39 Mar-02 888.7
40 Apr-02 926.6
41 May-02 1000.1
42 Jun-02 1030.8
43 Jul-02 1123
44 Aug-02 1473.5
45 Sep-
02 717.8 46 Oct-02
47 Nov-02 761.2
48 Dec-02 641.5
49 Jan-03 501.6
50 Feb-03 588.3
51 Mar-03 917.6
52 Apr-03 990
53 May-03 1051
54 Jun-03 764.4
55 Jul-03 1014.2
56 Aug-03 1313.6
57 Sep-03 736.3
58 Oct-03 1042.9
59 Nov-03 685.9
60 Dec-03 621.5
61 Jan-04 492.8
62 Feb-04 722
63 Mar-04.8
64 Apr-04 927.9
65 May-04 1028.1
66 Jun-04 883
67 Jul-04 1097.4
68 Aug-04 1398.9
69 Sep-04 834.4
70 Oct-04 1072.3
71 Nov-04 801.9
72 Dec-04 7161.2
73 Jan-05
74 Feb-05 774
75 Mar-05 1088.5
76 Apr-05 956.2
77 May-05 1175.6
78 Jun-05 949.5
79 Jul-05 1120.8
80 Aug-05 1426.2
81 Sep-05 841.5
82 Oct-05 996.6
83 Nov-05 908
84 Dec-05 696.7
85 Jan-06 606.4
86 Feb-06 771.6
87 Mar-06 967.1
88 Apr-06 1235
89 May-06 1216.1
90 Jun-06 945.
91 Jul-06 1194.4
92 Aug-06 1433.4
93 Sep-06 830.6
94 Oct-06 984.7
95 Nov-06 880.2
96 Dec-06 668.3
97 Jan-07 644.9
98 Feb-07 808
99 Mar-07 998.28.2
100 Apr-07
101 May-07 1080.9
102 Jun-07 989.9
103 Jul-07 1167
104 Aug-07 1568.9
105 Sep-07 951.7
106 Oct-07 1121.4
107 Nov-07 859
108 Dec-07 660.9
109 Jan-08 647.9
110 Feb-08 911.1
111 Mar-08 1201.2
112 Apr-08 1258.1
113 May-08 1177.8
114 Jun-08 1067.6
115 Jul-08 1349.4
116 Aug- 0818 116 Aug-
0818
118 Oct-08 1116.5
119 Nov-08 904.7
120 Dec-08 655.9
121 Jan-09 733.75
122 Feb-09 852.67
123 Mar-09 1049.88
124 Apr-09 1377.11
125 May-09 1344.05
126 Jun-09 1030.95
127 Jul-09 1242.56
128 Aug-09 1542.24
129 Sep-09 1016.42
130 Oct-09 2301.41
131 Nov-09 1138.9
132 Dec-09 1032.87

3个回答

我对 Holt-Winters 不是很熟悉,但是我有这本由@Rob Hyndman撰写的优秀书籍。统计包 R的包预测(基于书籍)对您的数据给出以下结果:

> hw<-read.table("~/R/stackoverflow/hw.txt")
> tt<-ts(hw[,3],start=c(1999,1),freq=12)

> aa<-forecast(tt)
> plot(aa)
> summary(aa)

Forecast method: ETS(M,N,A)

Model Information:
ETS(M,N,A) 

Call:
 ets(y = object) 

  Smoothing parameters:
    alpha = 0.1701 
    gamma = 1e-04 

  Initial states:
    l = 870.4847 
    s = -278.0815 -143.6584 151.959 -135.595 514.2527 236.9216
           -32.7679 128.8337 115.0829 47.5922 -234.4105 -370.1288

  sigma:  0.1122

     AIC     AICc      BIC 
1892.756 1896.346 1933.115 

In-sample error measures:
         ME        RMSE         MAE         MPE        MAPE        MASE 
 18.1543007 121.8594668  70.7086492   0.8480306   7.0006920   0.2893504 

这是预测图和置信区间: 在此处输入图像描述

请注意,功能预测会自动从 30 个模型中选择最佳指数平滑模型,这些模型按趋势模型、季节性部分模型和误差的可加性或多重性分类。

在您的数据中找到的最佳模型是具有乘法误差、无趋势和加性季节性,这是一个比您尝试拟合的模型更简单的模型。然而,函数预测的工作方式是考虑并拒绝更复杂的模型以支持最终模型。

如果您提供确切的公式,则可以拟合精确模型,以查看您描述的问题是否真的是模型的属性。

Holt-Winters 方法的公式包括预测季节性成分。你不需要有关详细信息,请参阅预测教科书。γ=0

在此处输入图像描述

1: http: //i.stack.imgur.com/kxU4t.jpg反映了对极不寻常的 2009 年 10 月值 130 Oct-09 2301.41 的质疑。时间序列分析实际上挑战了数据,而不是拟合一组假定的模型。以下模型的残差在此处输入图像描述

1: http: //i.stack.imgur.com/Q4W5h.jpg更接近地展示了 T 检验有效所需的高斯结构。在此处输入图像描述

对于预测图的不必要重复,我提前道歉。我将不得不去维基学校学习如何在我的帖子中包含图像。

1:http: //i.stack.imgur.com/OUc5a.jpg未来 24 个月的预测对于已识别的异常情况是稳健的在此处输入图像描述