我试图在Stata中进行非线性估计,其中一些观测值不需要所有变量。以下是一个组成的例子
nl (v1 = ({alpha=1})^({beta=1}*v2) + ({alpha})^({beta}*v3))
有时候有v3的值,有时候没有。如果在数据中不需要它,则将其编码为丢失(尽管在数据缺乏的意义上它没有丢失,数据是完美的)。当缺少v3时,我希望Stata将上述表达式视为具有v3的术语不存在,所以在这些情况下我只想让它将这些观察的表达式视为:
v1 = ({alpha=1})^({beta=1}*v2)
当我运行时,stata说:
starting values invalid or some RHS variables have missing values
我知道起始值很好,
如您所见,只需将缺失值重新编码为零将无效。因为它没有将该术语归零。
我能用西格玛求和符号做些什么,它只会添加有非缺失值的术语吗?
-Thanks!
答案 0 :(得分:0)
这样的事情应该有效:
cls
sysuse auto, clear
gen nm_rep78 = cond(missing(rep78),1,0)
recode rep78 (.=0), gen(z_rep78)
tab nm_rep78 z_rep78
nl (price = ({alpha=1})^({beta=1}*mpg) + nm_rep78*({alpha})^({beta}*z_rep78))
这个想法是你使用一个指标变量将第二个词归零。
可能有办法让nl
使用因子变量表示法来简化这一点,但我整个下午都在测试新的鸡尾酒配方,不应该尝试这个。