dingpeng nlminb 好像是S-plus的旧函数,optim是R新有的? nlminb用什么算法呢?好像查不到,optim提供的算法倒是很多。 不过实际用的时候,nlminb用起来效果通常很不错,用optim经常有些method不行,或者效果不如nlminb-----尤其是做最大似然估计的时候,对数似然通常带着log(),这时候optim经常报错或者warnings,定义似然函数的时候要非常的小心。 我已经好几次用optim效果不好,转用nlminb了。 有没有用的这两个函数的,分享一下经验吧?
jiaojing 我看了帮助文档也是没有太大帮助。另,弱弱问一句,optim和nlminb能直接输出loglikelihood的值么? 我现在只看到了对参数估计和方差的输出在par里面,但是本身极大似然估计的取值能否直接输出呢? 我尝试了一下,那个objective或者value貌似不是极大使然估计的值。
jiaojing Ihavenothing 这个函数不是我自己写的,是ADMB 和TMB自动生成的object函数,用nlminb直接最优化,但是结果里面的objective最优化的取值才2.39,pomp给出的loglikelihood要200多,所以我觉得nlminb的objective输出不是直接在最优函数取值下的似然函数值,我待会把详细code再重新开一个问题发出来。多谢解答。
yihui 这里有我几年前写的一个 optim() 简单例子:https://yihui.name/rlp/ 参见 A Less Naive Example 一节。 不过 John C Nash 老爷爷曾经说 optim() 要慎用。
jiaojing Ihavenothing 多谢解答。你的意思是说如果我可以自己用得到的那个2.39的值,加上log的常数项,才能得到准确的似然函数值? 我试试看。另外:我昨天还尝试把数据output出来,自己又单独写了一遍似然函数,这次在mle参数估计的条件得到了一个200多的值,貌似看起来要合理一些。