计算对未治疗/未治疗的治疗效果的逆概率加权的权重

机器算法验证 计量经济学 状态 倾向评分
2022-03-29 02:44:25

我正在尝试计算逆概率加权的权重。对于 ATE 和 ATET,过程很简单。例如在Stata中:

predict ps if e(sample)

gen ate=1/ps if treatment==1
replace ate=1/(1-ps) if treatment==0

gen atet=1 if treatment==1
replace atet=ps/(1-ps) if treatment==0

我的问题是:我如何计算未处理(ATENT)的权重?

1个回答

对于 ATU,权重yi将会

wi={1p^(xi)p^(xi)if di=11if di=0,
在哪里di是二元处理指标。

对于 ATT/ATET,权重为

wi={1if di=1p^(xi)1p^(xi)if di=0

对于 ATE,权重为

wi={1p^(xi)if di=111p^(xi)if di=0

您可以在 Myoung-jae Lee的政策、计划和治疗效果的微观计量经济学第 67-69 页上找到这些公式,但我在这里将它们分成两部分。

以下是我在 Stata 中如何做到这一点,尽可能使用本机命令,也可以手动对二元治疗假人的结果进行加权回归:

cls
set more off
webuse cattaneo2, clear
/* (0) Get the phats */
qui probit mbsmoke mmarried c.mage##c.mage fbaby medu
predict double phat, pr
/* (1a) ATE */
teffects ipw (bweight) (mbsmoke mmarried c.mage##c.mage fbaby medu, probit), ate
/* (1b) ATE By Hand */
gen double ate_w =cond(mbsmoke==1,1/phat,1/(1-phat))
reg bweight i.mbsmoke [pw=ate_w], vce(robust)
/* (2a) ATT */
teffects ipw (bweight) (mbsmoke mmarried c.mage##c.mage fbaby medu, probit), atet
/* (2b) ATT by Hand */
gen double att_w =cond(mbsmoke==1,1,phat/(1-phat))
reg bweight i.mbsmoke [pw=att_w], vce(robust)
/* (3) ATU by Hand Only */
gen double atu_w =cond(mbsmoke==1,(1-phat)/phat,1)
reg bweight i.mbsmoke [pw=atu_w], vce(robust)

这给出了母亲吸烟对新生儿体重的以下三种影响:

  • ATU = -231.8782 克
  • ATT = -225.1773 克
  • ATE = -230.6886 克