2

我现在正在处理以下问题:我正在使用此数据集浏览数据智能预测示例:

library(forecast)
mydata <- c(165, 171, 147, 143, 164, 160, 152, 150, 159, 169, 173, 203, 169, 166, 162, 147, 188, 161, 162, 169, 185, 188, 200, 229, 189, 218, 185, 199, 210, 193, 211, 208, 216, 218, 264, 304)
mydata.ts <- ts(mydata, frequency = 12, start = c(2010, 1))
mydata.forecast <- forecast(mydata.ts)
plot(mydata.forecast)

使用此代码,我生成了一个 Holt-Winters 预测,就像书中所说的那样。现在我想知道我可以通过仅使用 35 个先前的观察来预测第 36 个月(值 = 304)。

mydata1 <- c(165, 171, 147, 143, 164, 160, 152, 150, 159, 169, 173, 203, 169, 166, 162, 147, 188, 161, 162, 169, 185, 188, 200, 229, 189, 218, 185, 199, 210, 193, 211, 208, 216, 218, 264)
mydata1.ts <- ts(mydata1, frequency = 12, start = c(2010, 1))
mydata1.forecast <- forecast(mydata1.ts)
plot(mydata1.forecast)

这不会产生具有趋势和季节性的预测,而是简单的恒定水平预测。

mydata1.forecast$mean
Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
2012                                                                        
2013 239.1952 239.1952 239.1952 239.1952 239.1952 239.1952 239.1952 239.1952
2014 239.1952 239.1952 239.1952 239.1952 239.1952 239.1952 239.1952 239.1952
Sep      Oct      Nov      Dec
2012                            239.1952
2013 239.1952 239.1952 239.1952 239.1952
2014 239.1952 239.1952 239.1952

我有一种直觉,切割时间序列使得

elements in time series / modulo 12 != 0 

导致错误的预测。但是我怎么能克服这个问题呢?

我还尝试削减前 11 个观察值,以便时间序列包含 24 个元素

mydatacut <- c(203, 169, 166, 162, 147, 188, 161, 162, 169, 185, 188, 200, 229, 189, 218, 185, 199, 210, 193, 211, 208, 216, 218, 264)
mydatacut.ts <- ts(mydatacut, frequency = 12, start = c(2010, 1))
mydatacut.forecast <- forecast(mydatacut.ts)
plot(mydatacut.forecast)
mydatacut.forecast$mean

Jan     Feb     Mar     Apr     May     Jun     Jul     Aug     Sep
2012 240.437 240.437 240.437 240.437 240.437 240.437 240.437 240.437 240.437
2013 240.437 240.437 240.437 240.437 240.437 240.437 240.437 240.437 240.437
Oct     Nov     Dec
2012 240.437 240.437 240.437
2013 240.437 240.437 240.437

所以这也无济于事。

每一个提示和建议都受到高度赞赏。

4

0 回答 0