1

AR(2) モデルの尤度関数を処理しようとしています。alpha1 と alpha2 の 2 つの変数に関して関数を最大化する必要があります。時系列に関するものなので、変数 x を行列に 200 期間格納しています。私はこれの10000のシミュレーションを持っています。したがって、200x10000 マトリックスに x 値があります。すべてのシミュレーションの最適化の結果が格納される 2x10000 のマトリックスを直接持ちたいと考えています。for ループを設定し、その中で関数を指定しましたが、機能していません。つまり、実行すると次のように表示されます。

Error in A <- -optim(c(1.5, 0.75), log_lik) : argument not valid for operator

ここに私のコードを添付します。ループを実行する前に結果を含む関数を作成し、それを A と呼びました。

for (i in 1:R) {
 for (t in 3:N) {
  log_lik <- function (α) {
    α1 <- α[1]
    α2 <- α[2]
    L = -1/2*((N-2)*log(pi*2)+(N-2)*log(1)+sum((x[t,i]-c-α1*x[t-1,i]-α2*x[t-2,i])^2))
  }
  A <- -optim(c(1.5, 0.75), log_lik)$par
 }
 return(A)
}

どうもありがとう!!

4

0 に答える 0