使用一些变量创建一个匹配的样本



我的因变量是一个指示变量(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)

cemebalance都为每个观测值生成一个权值。权重变量存储在数据集中,分别命名为cem_weights_webal。要将熵平衡或粗精确匹配纳入回归分析,只需估计加权回归

regress y treat_var [aweight=_webal]

最新更新