R中正态分布的最大似然估计

时间:2016-04-09 11:38:39

标签: r mle

我是R的新手,在几个论坛上搜索过,但到目前为止还没有得到答案。我们被要求在不使用arima()命令的情况下在R中对AR(1)模型进行最大似然估计。我们应该估计截距α,系数β和方差sigma2。数据应该遵循正态分布,我从中导出了对数似然函数。然后我尝试用以下代码编写函数:

Y <- data$V2
nlogL <- function(theta,Y){
  alpha <- theta[1]
  rho <- theta[2]
  sigma2 <- theta[3]
  logl <- -(100/2)*log(2*pi) - (100/2)*log(theta[3]) - (0.5*theta[3])*sum(Y-(theta[1]/(1-theta[2]))**2)


  return(-logl)
}
par0 <- c(0.1,0.1,0.1)
opt <- optim(par0, nlogL, hessian = TRUE)

运行此代码时,我始终收到错误消息:Error in Y - (theta[1]/(1 - theta[2]))^2 : 'Y' is missing。 如果您可以查看似然函数是否正确导出,那将会很棒。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的nlogL函数应该只接受一个参数theta。因此,您可以通过删除函数的第二个参数来解决您的直接问题,并且Y变量将通过nlogL之外的定义来解析。或者,您可以将nlogL的签名保持原样,并通过Yoptim作为附加参数传递,如下所示:optim(par0, nlogL, hessian = TRUE, Y=Y)。此外,我还会提出第{chinsoon12条建议'来审核?optim