我的因变量是一个指示变量(1或0)。问题是我的N非常大,但我的因变量=1的观察值非常少(只有3%),所以当我运行回归时,我的系数非常小。所以我想在一些维度上创建一个匹配的样本。我知道我应该使用psmatch2
我试着
psmatch2 depvar v1 v2 v3, common
但是我只有非常少的"处理"以及大量"未经治疗"的患者。和我的原始数据差不多。我想保留y=1处的观测值,我只想创建一个样本由v1, v2, v3上相似的对象组成我希望这一组的对象数量合理相似。任何想法?
不创建匹配的样本,另一种方法是考虑准匹配技术,如熵平衡和粗化精确匹配。
要在Stata中实现熵平衡,您可以尝试以下操作:
ssc install ebalance
ebalance treat_var v1 v2 v3, tar(2)
上述命令安装ebalance
包,并为每个观测值分配权重,使变量v1, v2, v3
在实验组和对照组的均值和方差大致相同。使用help ebalance
找到更多
要在Stata中实现粗精确匹配,您可以尝试以下操作:
ssc install cem
cem v1 v2 v3, tr(treat_var)
cem
和ebalance
都为每个观测值生成一个权值。权重变量存储在数据集中,分别命名为cem_weights
和_webal
。要将熵平衡或粗精确匹配纳入回归分析,只需估计加权回归
regress y treat_var [aweight=_webal]