我正在尝试使用预测库中的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时间序列对象强制转换为数据框和数字向量,但没有成功。
答案 0 :(得分:1)
我遇到了同样的问题。我认为这源于这样一个事实:实际上有两种不同的arima函数:基本统计数据包中的arima和预测包中的Arima。你想要做的是首先使用Arima功能适合你的模型。它对我有用。