我真的很难理解 R 中的 MLE 计算。
如果我从exp(λ)
分布中获得大小为 6 的随机样本,则会产生观察结果:
x <- c(1.636, 0.374, 0.534, 3.015, 0.932, 0.179)
我计算出MLE如下
mean(x)
并得到 1.111667(我不是 100% 确定我做这部分是对的)。
但是,当我尝试使用 RI 对数值计算进行编码时,要么得到错误,要么得到不匹配的答案。
lik <- function(lam) prod(dexp(x)) # likelihood function
nlik <- function(lam) -lik(lam) # negative-likelihood function
optimize(nlik, x)
给我
#$minimum
#[1] 3.014928
#
#$objective
#[1] -0.001268399
本来我有
lik <-function(lam) prod(dexp(x, lambda=lam)) # likelihood function
nlik <- function(lam) -lik(lam) # negative-likelihood function
optim(par=1, nlik) # minimize nlik with starting parameter value=1
但我一直在
#Error in dexp(x, lambda = lam) :
# unused argument (lambda = lam)
#In addition: Warning message:
#In optim(par = 1, nlik) :
# one-dimensional optimization by Nelder-Mead is unreliable:
#use "Brent" or optimize() directly