【问题标题】:ARIMA ModellingARIMA 建模
【发布时间】:2016-07-10 18:51:08
【问题描述】:

我正在尝试将 ARIMA 模型拟合到我的时间序列中。

我正在尝试为我的时间序列获取最佳模型,如下所示,

best.aic<-Inf
for(p in 0:6){
  for(d in 0:6){
    for(q in 0:6){
      fit<-arima(nasdaq_ts,order=c(p,d,q))
      fit.aic<- fit$aic
      if (fit.aic < best.aic) {
        best.aic<-fit.aic
        best.fit<-fit
        best.order<-c(p,d,q)
        }
      }
    }
  }

但我收到如下错误提示

Error in optim(init[mask], armafn, method = optim.method, hessian = TRUE,  : 
  initial value in 'vmmin' is not finite

我无法理解上述错误或者是什么原因造成的? 有人可以在这里帮助我吗

我的时间序列如下所示,

【问题讨论】:

  • 您的问题表述方式是无法重现的。您的数据是什么样的?
  • nasdaq_ts 是纳斯达克从 2003 年到 2015 年收盘价的时间序列。@Alex
  • 感谢您的帮助。虽然我想知道那是如何产生影响的。 @哲元李
  • 纳斯达克时间序列长度为 3401。

标签: r time-series


【解决方案1】:

您熟悉auto.arima 函数吗?它包含允许您指定要搜索的模型空间以及要执行的搜索类型的参数。

【讨论】:

    【解决方案2】:

    试试这个代码:-

    nasdaqfinal.aic <- Inf
    nasdaqfinal.order <- c(0,0,0)
    for (p in 0:6) for (d in 0:6) for (q in 0:6) {
    nasdaqcurrent.aic <- AIC(arima(data, order=c(p, d, q)))
    if (nasdaqcurrent.aic < nasdaqfinal.aic) {
    nasdaqfinal.aic <- nasdaqcurrent.aic
    nasdaqfinal.order <- c(p, d, q)
    nasdaqfinal.arima <- arima(data, order=nasdaqfinal.order)
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-04-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 2017-12-31
      • 2018-07-10
      • 2018-03-11
      相关资源
      最近更新 更多