【问题标题】:Maximum Likelihood Estimation by hand for normal distribution in RR中正态分布的最大似然估计
【发布时间】:2016-04-09 11:38:39
【问题描述】:

我是 R 的新手,在几个论坛中搜索过,但到目前为止没有得到答案。我们被要求在 R 中对 AR(1) 模型进行最大似然估计,而不使用 arima() 命令。我们应该估计截距 alpha、系数 beta 和方差 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。 如果您能看看似然函数是否正确导出,那就太好了。

非常感谢您的帮助!

【问题讨论】:

  • 提示:您可以在 ?optim 文档中提供的示例中更仔细地查看目标函数的参数

标签: r mle


【解决方案1】:

您的nlogL 函数应该只接受一个参数theta。所以你可以简单地通过删除函数的第二个参数来解决你的直接问题,Y 变量将通过它在nlogL 之外的定义来解决。或者,您可以按原样保留nlogL 的签名,并将Y 作为附加参数传递给optim,如下所示:optim(par0, nlogL, hessian = TRUE, Y=Y)。另外我会第二次 chinsoon12 的建议来审查?optim

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-26
    • 2023-03-07
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多