1

我正在尝试估计一个最大似然模型,它在 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
4

1 回答 1

1

补充:Stata 不会忽略初始值。如果您查看ml maximize命令的输出,清单中的第一行将标题为

初始:对数似然 =

init等号后面是语句中设置的参数值的似然值。

我不知道search(off)orsearch(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上的帖子。

于 2013-10-06T16:49:31.763 回答