1

我正在尝试处理来自 AR(2) 模型的似然函数。我必须最大化关于两个变量 alpha1 和 alpha2 的函数。因为它是关于时间序列的,所以我将变量 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