用于ARMA模型估计的循环

时间:2016-10-14 20:45:27

标签: r

假设我有以下" for"循环在R。

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矩阵?

1 个答案:

答案 0 :(得分:1)

您需要一个尺寸为36倍13的矩阵M。 然后使用

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列将包含&#34;拦截&#34; (实际上,手段,因为arima函数中的术语具有误导性。)