我正在尝试计算逆概率加权的权重。对于 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)的权重?
我正在尝试计算逆概率加权的权重。对于 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)的权重?
对于 ATU,权重将会
对于 ATT/ATET,权重为
对于 ATE,权重为
您可以在 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)
这给出了母亲吸烟对新生儿体重的以下三种影响: