具有许多变量的约束回归

时间:2014-05-22 16:47:02

标签: matrix constraints stata

我有大约200个假人,并且希望运行受约束的OLS回归,其中我强加假人的所有系数之和等于1.

一种选择是输入:

constraint define 1 dummy_1+dummy_2 +...+dummy_200=1

cnsreg y x_1 x_2 dummy_1-dummy_200, c(1)

...但是输入约束显然会非常痛苦。

有没有办法快速定义这么大的约束?矩阵形式非常快速和简单,但经过在线和Stata指南的大量阅读后,我不清楚如何以矩阵形式进行约束,如果它们甚至是可能的话。

2 个答案:

答案 0 :(得分:1)

至少有两个方面,如何做到以及它是否会在任何统计意义上起作用。

如何做到这一点似乎比你担心更容易,因为困难的一点就是插入" +"变量名之间的符号,以及该字符串操作。像

这样的东西
unab myvars : dummy_* 
local myvars : subinstr local myvars " " "+", all
mac li 
constraint 1 `myvars' = 1 

应该让你入门。 macro list是这样你可以看到你做了什么,特别是如果它不是你想要的。

它是否会在统计上对你起作用超出了本论坛的范围,但如果这是唯一的约束条件,它与各种负面和正面系数一致。也许你的问题的特殊功能使它成为一个自然约束,但我的直觉是这样的模型很难估计。

答案 1 :(得分:1)

我会采取完全不同的方法。当针对一组指示符变量尝试不同的编码方案时,通常会发生这种约束。如果是这种情况,那么我会使用Stata的factor variables,并结合margins with the contrast operators