在r中的所有模型循环

时间:2016-06-29 18:13:13

标签: r time-series

方案

我有一些数据说,我想实现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

任何想法,怎么做?

1 个答案:

答案 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

}