首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何制作每个序列的循环?

如何制作每个序列的循环?
EN

Stack Overflow用户
提问于 2022-03-07 14:38:41
回答 1查看 45关注 0票数 0

我尝试使用循环for()来预测我使用ARIMA的所有数据,但是我得到了一个错误。

请参见以下脚本:

代码语言:javascript
复制
library(forecast)

Exval<-c("CLI", "SPY", "USDEUR", "CPI", "CONSCONF", "FEDFUNDS", "HOUST", "UNRATE", "INDPRO", "VIX")
fcst<-c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

for(i in Exval)
  {for (y in fcst){
    fit_arima<-auto.arima(DATA$i,d=1,D=1,stepwise = FALSE,approximation = FALSE, trace = TRUE)
    y<-forecast(fit_arima,h=36)
    print(summary(y))}}

Error in ts(x) : 'ts' object must have one or more observations

在我看来,错误来自于i。循环立即执行next i,而许多观察必须在相同的I上进行。例如,当我不使用循环时,结果是:

代码语言:javascript
复制
> fit_arima<-auto.arima(DATA$VIX,d=1,D=1,stepwise = FALSE,approximation = FALSE, trace = TRUE)

 ARIMA(0,1,0)                    : 2017.494
 ARIMA(0,1,0) with drift         : 2019.493
 ARIMA(0,1,1)                    : 2014.853
 ARIMA(0,1,1) with drift         : 2016.861
 ARIMA(0,1,2)                    : 1997.6
 ARIMA(0,1,2) with drift         : 1999.6
 ARIMA(0,1,3)                    : 1991.777
 ARIMA(0,1,3) with drift         : 1993.766
 ARIMA(0,1,4)                    : 1992.797
 ARIMA(0,1,4) with drift         : 1994.786
 ARIMA(0,1,5)                    : 1994.604
 ARIMA(0,1,5) with drift         : 1996.598
 ARIMA(1,1,0)                    : 2016.692
 ARIMA(1,1,0) with drift         : 2018.701
 ARIMA(1,1,1)                    : 1990.448
 ARIMA(1,1,1) with drift         : 1992.359
 ARIMA(1,1,2)                    : 1989.871
 ARIMA(1,1,2) with drift         : 1991.819
 ARIMA(1,1,3)                    : 1991.932
 ARIMA(1,1,3) with drift         : 1993.892
 ARIMA(1,1,4)                    : 1993.856
 ARIMA(1,1,4) with drift         : 1995.819
 ARIMA(2,1,0)                    : 2007.087
 ARIMA(2,1,0) with drift         : 2009.103
 ARIMA(2,1,1)                    : 1989.959
 ARIMA(2,1,1) with drift         : 1991.912
 ARIMA(2,1,2)                    : 1991.932
 ARIMA(2,1,2) with drift         : 1993.894
 ARIMA(2,1,3)                    : Inf
 ARIMA(2,1,3) with drift         : Inf
 ARIMA(3,1,0)                    : 2002.725
 ARIMA(3,1,0) with drift         : 2004.75
 ARIMA(3,1,1)                    : 1991.889
 ARIMA(3,1,1) with drift         : 1993.845
 ARIMA(3,1,2)                    : Inf
 ARIMA(3,1,2) with drift         : Inf
 ARIMA(4,1,0)                    : 2002.643
 ARIMA(4,1,0) with drift         : 2004.677
 ARIMA(4,1,1)                    : 1993.877
 ARIMA(4,1,1) with drift         : 1995.839
 ARIMA(5,1,0)                    : 2002.835
 ARIMA(5,1,0) with drift         : 2004.879



 Best model: ARIMA(1,1,2)

然后,我想问你们,我怎样才能做一个关于观察序列的循环。

提前谢谢你。

亚历克斯

EN

回答 1

Stack Overflow用户

发布于 2022-03-07 15:19:04

不能使用DATA$i引用数据帧的列,其中i是字符串。相反,使用DATA[[i]]作为向量提取列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71382725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档