我正在尝试处理来自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)
}
非常感谢!!