【发布时间】:2016-06-29 18:13:13
【问题描述】:
场景
我有一些数据说,我想实现 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
任何想法,如何做到这一点?
【问题讨论】:
-
也许你想要
fit[j]<- arima(y, order=c(p[j],d[j],q[j]))? -
是的,这就是我想做的。
-
什么是
class(fit)? -
另外,您似乎没有保存预测。
fcasts将在每次循环迭代时被覆盖。也许把它们放在一个列表中?在循环之前初始化fcast = list(),然后放入fcasts[[j]] <- forecast(...)。 -
@PierreLafortune。它显示为 ARIMA...
标签: r time-series