2014-11-21 162 views
0

我正嘗試使用nl命令在Stata中運行非線性迴歸。我運行迴歸的原因是我的數據顯示了序列相關性 - AR(1)。我使用以下命令。使用非線性迴歸補救Stata中的序列相關性

nl (m = {b0}+ {b1}*lagm + {b2}*y + {b3}*r ({b10})*{b4}*lagy + ({b10})*{b5}*lagy + ({b10})*{b6}*lag2m), initial(b0 0 b1 0.9 b2 0.09 b3 -0.0055 b4 0 b5 0 b6 0.5 b10 0), if A>2 

但是,我得到的錯誤

「錯誤#198發生在評估表達 無效‘(’ 初始值無效或部分RHS變量存在缺失值」

我曾嘗試更改初始值幾次,正如您所見,確保缺失值對於滯後變量不成問題。

最佳,

+0

爲什麼不適合的東西明確意味着這個DGP? – 2014-11-21 17:21:47

回答

0

您需要使用variables選項。如果您不這樣做,則nl如果估計樣本包含任何缺失值,則返回代碼爲480的錯誤消息。這是第二個問題。

您的第一個錯誤代碼是r(198),因此您的語法顯示爲關閉。部分「{b3} r({b10}) {b4} * lagy」肯定是不好的(需要一些算術運算符)並且您的if子句處於錯誤/非標準位置,儘管後者出乎意料地不成問題。

不知道更多關於您的數據的信息,以及您輸入的內容,很難確切知道發生了什麼問題,但這兩個修復程序應該有所幫助。

這裏有兩個例子可重複性,一個工程,一個失敗:

webuse sunspot, clear 
tsset time 
nl (spot ={b0}+{b1}*L.spot) if time >0, initial(b0 0 b1 0) variables(L.spot) 
nl (spot ={b0}+{b1}*L.spot{b3}) if time >0, initial(b0 0 b1 0 b3 0) variables(L.spot) 

一個你tsset你的數據,你可以使用滯後算以及代替手工創建滯後。

您也可以適應的AR(1)模型是這樣的:

arima spot, ar(1)