无法填充结果矩阵

问题描述:

我想基于滚动数据集[1:2567],[2:2568] ...等,使用GMM估计参数'r'。最后,结果将填入矩阵中。 我已经测试了如下的核心代码,这可以得到有效答案。无法填充结果矩阵

x<-Source[1 : 2567,"AAA"] 
     z<-as.matrix(x) 
     e<-function(r,x){ 
+   m<-exp(-x/r)-1 
+   return(m) 
+  } 

    coef(gmm(e,z,t0=1,method="BFGS",control=1e-12)) 
Theta[1] 
1.096466 



    x<-Source[2 : 2568,"AAA"] 
     z<-as.matrix(x) 
     e<-function(r,x){ 
+   m<-exp(-x/r)-1 
+   return(m) 
+  } 

    coef(gmm(e,z,t0=1,method="BFGS",control=1e-12)) 
Theta[1] 
1.102329 

但是,当我想要使用循环结构时,它会返回一个错误消息。

n <- 2 
    result <- matrix(rep(0, n), nrow = n) 
    for(i in c(1 :n)){ 
+  x<-Source[i : i + 2566,"AAA"] 
+  z<-as.matrix(x) 
+  e<-function(r,x){ 
+   m<-exp(-x/r)-1 
+   return(m) 
+  } 
+  
+  result[i,1] <- coef(gmm(e,z,t0=1,method="BFGS",control=1e-12)) 
+ } 

错误ar.ols(X,AIC = AIC,order.max = order.max,na.action = na.action,: 'order.max' 必须是<“N。使用”

谁能帮我找出什么毛病? 非常感谢〜!

(*数据集‘源’是5200 * 4矩阵,与链接显示实际数据如下: https://docs.google.com/spreadsheets/d/1AnTErQd2jm9ttKDZa7On3DLzEZUWaz5Km3nKaB7K18o/edit#gid=0

+2

您的例子是不可重现。 'x

您的错误来自语法错误。我添加了变量j <- i + 2566。用下面的代码:

Source <- read.csv(file="source_data.csv", header=TRUE, sep=",") #read csv 
n <- 2 
    result <- matrix(rep(0, n), nrow = n) 
    for(i in c(1:n)){ 
    j <- i + 2566 
    x<-Source[i:j,"AAA"] 
    z<-as.matrix(x) 
    e<-function(r,x){ 
     m<-exp(-x/r)-1 
     return(m) 
    } 
    result[i,1] <- coef(gmm(e,z,t0=1,method="BFGS",control=1e-12)) 
} 
result 

我得到以下输出:

  [,1] 
[1,] 1.096466 
[2,] 1.102329