使用非线性回归补救Stata中的序列相关性
问题描述:
我正尝试使用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变量存在缺失值”
我曾尝试更改初始值几次,正如您所见,确保缺失值对于滞后变量不成问题。
最佳,
答
您需要使用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)
为什么不适合的东西明确意味着这个DGP? – 2014-11-21 17:21:47