我正在尝试估计最大似然模型,并且它正在陷入Stata中的收敛问题。实际的模型非常复杂,但是当它提供适当的起始值时,它在R中没有任何麻烦。然而,我似乎无法让Stata接受我提供的起始值。
我在下面列举了一个简单的例子来估计泊松分布的平均值。这不是我想要估计的实际模型,但它证明了我的问题。我设置了跟踪变量,它允许您在Stata搜索可能性表面时查看参数。
虽然我使用init来设置起始值0.5,但第一次迭代仍然显示Stata正在尝试系数为4.
这是为什么?如何强制估算程序使用我的起始值?
谢谢!
generate y = rpoisson(4)
capture program drop mypoisson
program define mypoisson
args lnf mu
quietly replace `lnf' = $ML_y1*ln(`mu') - `mu' - lnfactorial($ML_y1)
end
ml model lf mypoisson (mean:y=)
ml init 0.5, copy
ml maximize, iterations(2) trace
输出:
Iteration 0:
Parameter vector:
mean:
_cons
r1 4
答案 0 :(得分:1)
补充:Stata不会忽略初始值。如果查看ml maximize
命令的输出,列表中的第一行将标题为
initial:log likelihood =
等号后面是init
语句中设置的参数值的可能性值。
我不知道search(off)
或search(norescale)
解决方案如何影响后续可能性计算,因此这些解决方案可能仍然值得。
原创“解决方案”:
要强制以初始值开头,请将search(off)
选项添加到ml maximize
:
ml maximize, iterate(2) trace search(off)
您还可以强制使用search(norescale)
初始值。请参阅Jeff Pitblado在http://www.stata.com/statalist/archive/2006-07/msg00499.html的帖子。