2017-06-18 32 views
1

我想在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 

我知道的起始值都是精品,

正如你所看到的,只是重新编码的缺失值为零将无法正常工作。因为它不会将该术语清零。

有什么我可以用西格玛求和符号做什么,它只添加了那些有非缺失值的术语?

- 谢谢!

+0

你能否澄清你的意思是“不会将这个术语清零”? –

+0

如果将缺失值替换为零,则不会抵消该项并导致错误估计 – mmvw

+0

如果用负无穷大代替缺失值,则该项为零。这导致了一个问题:v3是否会带来负面价值,如果是这样,负面无限是对v3缺少价值的合理解释? – 2017-06-18 20:14:40

回答

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使用因子变量符号来简化这一点,但我一直在下午测试新的鸡尾酒配方,不应该尝试这种方法。

+0

哇,它的工作!非常感谢! - 我投票给你,它说它记录了它,但不会显示它,因为我没有足够的业力或其他东西 – mmvw

+0

@mmvw你需要点击✔接受答案。 –

+0

啊,好吧,只是这样做,谢谢 – mmvw