2017-04-01 10 views
0

ローリングデータセット[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 

ただし、ループ構造を使用したい場合は、エラーメッセージとともに戻ります。 ar.olsで

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)) 
+ } 

エラー(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 <-Source [1:2567、" AAA "]'は利用できません。 –

答えて

0

誤った構文が原因です。変数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 
関連する問題