我试图使用预测库中的ARMA ()和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时间序列对象强制放入数据帧和数字向量中,但没有成功。
发布于 2013-12-13 14:27:25
我也有同样的问题。我认为这是因为实际上有两个不同的arima函数:基本统计包中的arima函数和预测包中的Arima函数。您要做的是首先使用Arima函数来拟合您的模型。对我起作用了。
发布于 2020-01-20 14:38:43
在使用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)https://stackoverflow.com/questions/20086487
复制相似问题