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)
}
どうもありがとう!!