优化循环中的函数

时间:2013-04-21 20:11:14

标签: r optimization time-series

我正在尝试处理来自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)
}

非常感谢!!

0 个答案:

没有答案