我有一些数据说,我想实现50个arima模型并进行预测。我正在使用预测包来做到这一点。假设result
是尺寸为3(列)和50(行)的矩阵,其中第一,第二和第三列分别包含p,d和q的值。我想为他们所有人安装arima并预测他们所有人。以下是我的尝试:
y <- ts(rnorm(1000),start = 1850, frequency=1)
fit <- vector(mode="list", length=50)
for (j in 1:50){
p[j]<- result[j,1]
d[j]<- result[j,2]
q[j]<- result[j,3]
fit[[j]]<- arima(y, order=c(p[j],d[j],q[j]))
fcasts<- forecast(fit[[j]], h=1)$mean
}
运行时会给出以下消息:
Error in arima(y, order = c(p, d, q)) :
'order' must be a non-negative numeric vector of length 3
任何想法,怎么做?
答案 0 :(得分:1)
我想知道这是否是你真正想做的事情:
y <- ts(rnorm(1000),start = 1850, frequency=1)
fcasts <- numeric(50)
for (j in 1:50){
p <- result[j,1]
d <- result[j,2]
q <- result[j,3]
fit <- arima(y, order=c(p, d, q))
fcasts[j] <- forecast(fit, h=1)$mean ## predicted mean of 1-day ahead forecast
}