2013-10-04 100 views
1

我正在嘗試估計最大似然模型,並且它正在陷入Stata中的收斂問題。實際的模型非常複雜,但它在提供適當的起始值時在R中收斂並沒有問題。然而,我似乎無法讓Stata接受我提供的初始值。Stata似乎忽略了最大似然估計中的初始值

我在下面包含了一個簡單的例子來估計泊松分佈的均值。這不是我想估計的實際模型,但它證明了我的問題。我設置了跟蹤變量,它允許您查看Stata搜索似然曲面的參數。

雖然我使用初始化設置0.5的初始值,第一次迭代中仍顯示,塔塔正在嘗試的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 
+2

根據猜測,您的程序名稱「poisson」可能是問題。由於Stata有一個內置的命令「poisson」,它總是會優先執行。你可以通過改變你的程序名稱來測試它。 'myname'測試命令'myname'。 –

+0

感謝您的建議尼克。這個名字似乎不是問題。我想知道在嘗試查看正在使用的參數值時是否正在查看錯誤的輸出?否則,當我嘗試設置初始值時,我可能做錯了什麼? – finagler

回答

1

加了:Stata的不忽略初始值。如果你看一下ml maximize命令的輸出,在上市的第一行會名爲

初始:數似然=

繼等號的可能性爲參數的值值在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