2016-10-14 81 views
1

假設我已經中R.迴路的ARMA模型估計

USDlogreturns=diff(log(prices)) 

for(i in 0:5){ 
    for(j in 0:5){ 
    fit <- arima(USDlogreturns, order=c(i,0,j), include.mean=TRUE) 
    } 
} 

你如何讓R能夠替換一個NA矩陣的所有估計模型的係數下面的「for」循環?

+0

我對這種for循環的使用有許多相關的問題。所以,如果能爲我提供我需要的命令,我將不勝感激。 – msmna93

回答

1

您將需要的尺寸的矩陣M 36倍13. 然後使用

M=matrix(NA,36,13) 
k=0 # current row being filled in 
for(i in 0:5){ 
    for(j in 0:5){ 
    k=k+1 
    fit <- arima(USDlogreturns, order=c(i,0,j), include.mean=TRUE) 
    if(i>0) M[k,c(1: i) ]=fit$coef[c( 1 : i)] # AR coefficients in the 2nd-6th columns 
    if(j>0) M[k,c(8:(7+j))]=fit$coef[c((i+1):(i+j))] # MA coefficients in the 8th-12th columns 
      M[k,  13 ]=tail(fit$coef,1)   # "intercept" (actually, mean) in the 13th column 
    } 
} 

的列2至6將包含AR係數。
列8到12將包含MA係數。
第13列將包含「攔截」(實際上,手段,因爲arima函數中的術語具有誤導性)。

+0

是的,我知道內置的術語有時會產生誤導。非常感謝你的回答。 – msmna93

+0

我不知道爲什麼我運行上面的代碼,並得到這個錯誤信息。錯誤尾(fit @ coef,1): 嘗試從一個不是S4對象的對象(類「Arima」)獲得插槽「coef」 > – msmna93

+0

沒問題,我也到了那裏。但重新運行新的代碼,我得到這個新的錯誤信息:錯誤M [k,13] = tail(fit $ coef,1):找不到對象「M」 – msmna93