如果我们从指数分布生成随机向量:
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
我使用相同的技术进行正态分布,它工作正常。那么这里的错误在哪里?
我使用自己的定义进行指数分布,因为我需要稍后更改它。