【问题标题】:Error with forecast.Arima with xreg预测错误。Arima 与 xreg
【发布时间】:2013-11-20 02:59:49
【问题描述】:

我正在尝试使用预测库中的 arima() 和 forecast.Arima() 函数来拟合带有 ARMA 错误的回归模型。 (即最接近我可以使用 arima() 函数拟合的 ARMAX 模型)

我的代码:


library(forecast)
data <-read.csv(filename,stringsAsFactors=FALSE)
data.ts<-ts(data$result,frequency=24,start=c(1,1),end=c(7,24))
input.ts<-ts(data$input,frequency=24,start=c(1,1),end=c(7,24))
data.fit <- arima(window(data.ts,start=c(1,1),end=c(5,24)), 
                  order=c(2,0,3), seasonal =list(order = c(1, 0, 1), period = 24),      
                  xreg=window(input.ts,start=c(1,1),end=c(5,24)))
data.forecast <-forecast.Arima(data.fit,
                               xreg=window(input.ts,start=c(6,1),end=c(7,24)))

但是,在 forecast.Arima() 函数中包含 xreg 因子时出现以下错误:

Error in if (ncol(xreg) != ncol(object$call$xreg)) 
stop("Number of regressors does not match fitted model") : 
argument is of length zero

我不明白为什么会出现此错误。我已经在 forecast.Arima() 函数中包含了 xreg 的未来值,并且输入时间序列在 arima() 函数中完全相同,只是在不同的窗口中。

xreg 的类型应该是什么?我尝试将 xreg 时间序列对象强制转换为数据框和数字向量,但没有成功。

【问题讨论】:

  • 使用Arima(),而不是arima()。如果仍有问题,请提供可重现的示例。

标签: r


【解决方案1】:

我遇到了同样的问题。我认为这是因为实际上有两个不同的 arima 函数:基本统计包中的 arima 和预测包中的 Arima。您要做的是首先使用 Arima 函数拟合您的模型。它对我有用。

【讨论】:

    【解决方案2】:

    我在运行带有 arima 功能的 AR1 后出现错误的模型时遇到了同样的错误:

    arima(y, xreg=cbind(x1, x2, x3, x4), order=c(1,0,0))
    

    我使用 auto.arima 函数解决了这个问题。为了始终获得带有 AR1 错误的模型,我使用以下代码调整了参数:

    auto.arima(y, xreg=cbind(x1, x2, x3, x4), max.p = 1, max.q = 0, max.P = 0, max.Q = 0, max.order = 0, max.d = 0, max.D = 0, start.p = 1)
    

    【讨论】:

      猜你喜欢
      • 2021-10-18
      • 2019-03-19
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 2019-08-09
      相关资源
      最近更新 更多