如果我们从指数分布生成一个随机向量:
exp.seq = rexp(1000, rate=0.10) # mean = 10
现在我们要使用之前生成的向量exp.seq
来重新估计 lambda
所以我们定义对数似然函数:
fn <- function(lambda){
length(exp.seq)*log(lambda)-lambda*sum(exp.seq)
}
现在optim
或者nlm
我得到了非常不同的 lambda 值:
optim(lambda, fn) # I get here 3.877233e-67
nlm(fn, lambda) # I get here 9e-07
我对正态分布使用了相同的技术,并且效果很好。那么这里的错误在哪里呢?
我使用我自己的指数分布定义,因为我稍后需要更改它。