我正在尝试使用nl命令在Stata中运行非线性回归。我运行回归的原因是我的数据表现出序列相关性 - AR(1)。我使用以下命令。
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 :(得分: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)