2014-11-21 21 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)