Matrix 多变量约束回归

Matrix 多变量约束回归,matrix,constraints,stata,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指南中大量阅读之后,我不清楚如何以矩阵形式进行约束,以及它们是否可行。这至少有两个方

我有大约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指南中大量阅读之后,我不清楚如何以矩阵形式进行约束,以及它们是否可行。

这至少有两个方面,如何进行以及它是否在统计意义上有效

如何做到这一点似乎比您担心的要容易,因为困难之处在于在变量名之间插入“+”符号,这就是字符串操作。差不多

unab myvars : dummy_* 
local myvars : subinstr local myvars " " "+", all
mac li 
constraint 1 `myvars' = 1 
你应该开始了。
宏列表
是这样的,您可以看到您所做的事情,特别是如果它不是您想要的


从统计学上讲,它是否适用于你不在本论坛讨论范围之内,但如果这是唯一的限制,请注意,它与所有类型的负系数和正系数一致。也许你的问题有一些特殊的特点,使它成为一个自然的约束,但我的直觉是,这样的模型将很难估计

我会采取完全不同的方法。这种约束通常发生在为一组指标变量尝试不同的编码方案时。如果是这样的话,我会使用Stata's,并结合使用