3

我已将以下模型拟合到我的时间序列数据中。它xreg由一个从 1 到 1000 的时间向量和代表月份的 12 个指标变量(1 或 0)组成。我正在处理的数据具有很强的每周和每月季节性模式。

fit <- arima(x, order = c(3, 0, 0),
    seasonal = list(order = c(1, 0, 1), period = 7),   
    xreg = cbind(t, M1, M2, M3, M4, M5,
    M6, M7, M8, M9, M10, M11, M12), include.mean = FALSE,
    transform.pars = TRUE,
    fixed = NULL, init = NULL,
        method = c("CSS-ML", "ML", "CSS"),
        optim.method = "BFGS",
        optim.control = list(), kappa = 1e6)

目前,我试图弄清楚如何预测 1 月份的 14 个值(M1=1)。因此,当我在 R 中使用 predict 函数时,我认为我需要在我想要的 newxreg 部分中指定M1=1M2,...,M12=0的预测 - 对吗?我已经玩过代码,但我无法让它工作,而且我无法在线找到有关预测公式的 newxreg 部分的非常详细的信息。

任何人都可以向我解释我如何获得一个特定月份的预测,比如一月?我需要如何在预测函数的 newxreg 部分中注意这一点?

提前谢谢了!

4

1 回答 1

6

我终于找到了出路并想发布它 - 以防它帮助别人。所以基本上, newxreg 应该是一个矩阵,其中包含您想要预测的回归量的值。因此,就我而言,我的回归量都是 1 或 0(编码变量)来指定特定月份。所以我所做的是我创建了一个 0 和 1 的矩阵用作我的 newxreg。我所做的是定义了一个矩阵 mx,然后在预测函数中设置 newxreg=mx。我确保 mx 的行数>= n.ahead 的行数。

pred <- predict(fit,n.ahead=n, newxreg=mx)

希望这对其他人也有帮助!

于 2013-04-29T21:09:15.270 回答