1

私は有馬モデルに適合させようとしており、AICに基づいてどの順序が最適かを確認しようとしています.次のステートメントがあります.私の質問は、モデルの順序を表示する方法です. ,, mid.ts は xts によって作成された時系列です。データは次のとおりです。

 mid.ts= 
              deltao
   Jan 1751  -41.23
    Jan 1754 -41.10
    Jan 1756  -40.25
    Jan 1759  -43.61
    Jan 1761  -41.54
    Jan 1764  -39.79
    Jan 1766   -39.63
    Jan 1769  -40.74
    Jan 1771  -42.63
    Jan 1774  -39.47
    Jan 1776  -40.30
    Jan 1778  -40.30
    Jan 1781  -41.56

library(forecast)

for(d in 0:1){
    for(p in 0:9){
      for(q in 0:9){

 fit=Arima(mid.ts,order=c(p,d,q))
  print(AIC(fit))

      }
    }
  }
4

1 に答える 1

1

次の 2 つの方法で実行できます。

  1. パラメータを AIC とともに出力することに基づいています。ここでは、どのモデルが最適かを視覚的に調べる必要がありますが、これは時間がかかり、良い方法ではありません。

    library(forecast)
    
    for(d in 0:1){
      for(p in 0:9){
        for(q in 0:9){
    
          fit=Arima(mid.ts,order=c(p,d,q))
          print(paste0("AIC is ", AIC(fit), " for d = ", d, ", p = ", p, " and q = ", q))
    
        }
      }
    }
    
  2. モデル パラメーターをデータ フレームに保存し、コードを使用して最適なパラメーターを見つけます。手間がかからないので、私はこの方法を好みます。

    library(forecast)
    modelAIC <- data.frame()
    for(d in 0:1){
      for(p in 0:9){
        for(q in 0:9){
    
          fit=Arima(mid.ts,order=c(p,d,q))
          modelAIC <- rbind(modelAIC, c(d,p,q,AIC(fit))) #
        }
      }
    }
    names(modelAIC) <- c("d", "p", "q",  "AIC")
    rowNum <- which(modelAIC$AIC==max(modelAIC$AIC))
    modelAIC[rowNum,]#Required model parameters
    
于 2016-02-17T05:27:44.467 に答える