【问题标题】:auto.arima forecast with multivariate xreg - unexpected results使用多元 xreg 进行 auto.arima 预测 - 意外结果
【发布时间】:2013-02-09 21:04:48
【问题描述】:

在业余时间,我尝试提高我在预测技术方面的技能,今天的问题集中在使用多个回归器进行预测。我创建了一个受两个回归量影响的时间序列,但想知道如何用它们进行预测。

library(forecast)

我尝试了以下方法:

首先是我的时间序列:

ts.series3 <- structure(c(313, 253, 230, 258, 261, 303, 266, 269, 245, 274, 
346, 252, 283, 286, 260, 365, 295, 268, 301, 304, 353, 310, 313, 
285, 319, 403, 294, 330, 333, 303, 425, 343, 312, 350, 354, 411, 
361, 366, 333, 469, 380, 346, 487, 394, 359, 404, 511, 372, 418
), .Tsp = c(2003.08333333333, 2007.08333333333, 12), class = "ts")

以上时间序列基于ts.trend(下)中的趋势显示,并由修饰符修改。如果第一个修饰符相关,则该值增加 25%,如果是第二个,则该值减少 10%。当两者都适用时,它们将增加 15%。

ts.trend <- structure(c(250, 253, 255, 258, 261, 264, 266, 269, 272, 274, 
277, 280, 283, 286, 289, 292, 295, 298, 301, 304, 307, 310, 313, 
316, 319, 323, 326, 330, 333, 337, 340, 343, 347, 350, 354, 357, 
361, 366, 370, 375, 380, 385, 390, 394, 399, 404, 409, 414, 418
), .Tsp = c(2003.08333333333, 2007.08333333333, 12), class = "ts")

具有两个回归量的多元时间序列:

modifiers <- structure(c(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 
0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 
0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 
1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 
1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(60L, 
2L), .Dimnames = list(NULL, c("Adjust1", "Adjust2")), .Tsp = c(2003.08333333333, 
2008, 12), class = c("mts", "ts"))

然后我尝试制作以下模型:

fit.series3 <- auto.arima(ts.series3,xreg=window(modifiers,end=2007.16))
fcast.series3 <- forecast(fit.series3,xreg=window(modifiers,start=2007.161))

代码似乎运行良好,但该图(见下文)并没有真正意义,因为没有确定回归变量,您预计预测或多或少会遵循趋势线。有没有人可以对这里发生的事情提供一些见解?

plot(fcast.series3)

当我不使用任何回归变量时,预测图如下所示。我对这个预测比对上图中的预测更有信心。我使用以下代码行来生成图表:

fit.series3clean <- auto.arima(ts.series3)
fcast.series3clean <- forecast(fit.series3clean)
plot(fcast.series3clean)

我想知道是否有人了解我对多元 xreg 值的预测发生了什么。此外,我很想知道使用多元回归器进行预测的其他方法。

【问题讨论】:

    标签: r forecasting


    【解决方案1】:

    看看你的拟合模型:

    > fit.series3
    Series: ts.series3 
    ARIMA(0,1,1)(0,1,0)[12]                    
    
    Coefficients:
              ma1  Adjust1   Adjust2
          -0.7586  80.1919  285.6239
    s.e.   0.0832   0.0842       NaN
    
    sigma^2 estimated as 71.55:  log likelihood=-128.38
    AIC=264.76   AICc=266.05   BIC=271.09
    Warning message:
    In sqrt(diag(x$var.coef)) : NaNs produced
    

    Adjust2 的系数有问题,因为标准误差是NaN

    以下代码说明了问题:

    > window(diff(diff(modifiers[,2],12)),end=2007.16)
         Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    2004           0   0   0   0   0   0   0   0   0   0
    2005   0   0   0   0   0   0   0   0   0   0   0   0
    2006   0   0   0   0   0   0   0   0   0   0   0   0
    2007   0   0                                        
    

    在拟合期间,两次差 Adjust2 始终为零,使得系数基本上未定义(并且具有无限方差)。

    【讨论】:

    • 我怀疑 CrossValidated 上的这篇文章会帮助我更深入地理解问题:stats.stackexchange.com/questions/26999/…
    • 我试图理解为什么会发生这种情况的逻辑,但我很难理解为什么Adjust2 中的s.e. 原来是NaN 的根本原因。
    • 在这种情况下,NaN 表示Inf
    猜你喜欢
    • 2018-09-08
    • 2021-10-18
    • 2019-03-19
    • 2014-04-18
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2022-01-27
    相关资源
    最近更新 更多