2017-03-09 51 views
0

我有一系列lnPrice與3069觀察。ARIMA過程與自動編碼在r

library(forecast) 
####fitting the model#####AR_1_3039 
AR_1_3039 <- Arima((usdtry$lnPrice[1:3039]), order=c(1,1,0)) 
summary(AR_1_3039) 

####fitting the model#####AR_1_3040 
AR_1_3040 <- Arima((usdtry$lnPrice[2:3040]), order=c(1,1,0)) 
summary(AR_1_3040) 

####fitting the model#####AR_1_3041 
AR_1_3041 <- Arima((usdtry$lnPrice[3:3041]), order=c(1,1,0)) 
summary(AR_1_3041) 

####fitting the model#####AR_1_3042 
AR_1_3042 <- Arima((usdtry$lnPrice[4:3042]), order=c(1,1,0)) 
summary(AR_1_3042) 

####fitting the model#####AR_1_3043 
AR_1_3043 <- Arima((usdtry$lnPrice[5:3043]), order=c(1,1,0)) 
summary(AR_1_3043) 

我打算生成30個滑動樣本的ARIMA(1,1,0)模型,因爲您可以理解上述代碼。例如,AR(1)_3039型號具有usdtry$lnPrice[1:3039],而AR(1)_3040具有usdtry$lnPrice[2:3040],最後AR(1)_3068將具有usdtry$lnPrice[30:3068]

我想在r中爲這個過程寫一個動態編碼。任何幫助將不勝感激。

+0

我使用'預測'包。 – Cenk

回答

1

不太清楚你的意思是「動態」,但我會理解它是沿着「自動化」的方向。所以這裏有一個簡單的for循環,它將索引你想要的行,每個循環1個單元。

storage <- list() 
summary_storage <- list() 

    for(i in 1:30){ 
    storage[[paste0("AR_1_", i)]] <- Arima((usdtry$lnPrice[i:3039+i]),order=c(1,1,0)) 
    summary_storage[[paste0("Summary AR_1_", i)]] <- summary(storage[[paste0("AR_1_",i)]]) 
} 

基本上我在做什麼正在運行ARIMA上的數據,把模型輸出到列表中的「存儲」,然後做同樣的摘要統計,我想總結統計將是相當醜陋,但我不知道這是否可以避免。

希望有所幫助。

+0

這是給出:'錯誤:'}''' – Cenk

+0

'錯誤:意外的']'中的'意外'}':' 「i:3039 + i]),order = c(1,1,0)) { if(.Revo.tb(「C:/ Users」))browser()}; summary_storage [[paste0(「Summary AR_1_」,i)]]「' – Cenk

+0

奇怪,你可以複製代碼並重試嗎?如果這不起作用,如果您發佈一些數據,可能會更容易,因此我可以檢查我的代碼。 –