使用xreg的forecast.Arima出错

时间:2013-11-20 02:59:50

标签: r

我正在尝试使用预测库中的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时间序列对象强制转换为数据框和数字向量,但没有成功。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我认为这源于这样一个事实:实际上有两种不同的arima函数:基本统计数据包中的arima和预测包中的Arima。你想要做的是首先使用Arima功能适合你的模型。它对我有用。