全文链接:http://tecdat.cn/?p=10148
最近我们被客户要求撰写关于Stata中的治疗效果的研究报告,包括一些图形和统计输出。
今天的主题是Stata中的治疗效果 。
治疗效果估算器根据观察数据估算治疗对结果的因果关系。
我们将讨论四种治疗效果估计量:
-
RA:回归调整
-
IPW:逆概率加权
-
IPWRA:具有回归调整的逆概率加权
-
AIPW:增强的逆概率加权
与对观测数据进行的任何回归分析一样,因果关系的解释必须基于合理的基础科学原理。
介绍
我们将讨论治疗方法和结果。
一种治疗可能是新药,其结果是血压或胆固醇水平升高。治疗可以是外科手术,也可以是患者活动的结局。治疗可以是职业培训计划以及结果就业或工资。治疗甚至可以是旨在提高产品销量的广告。
考虑一下母亲吸烟是否会影响婴儿出生时的体重。只能使用观测数据来回答这样的问题。
观察数据的问题是受试者选择是否接受治疗。例如,母亲决定吸烟还是不吸烟。据说这些受试者已自我选择进入治疗组和未治疗组。
在理想的世界中,我们将设计一个实验来测试因果关系和治疗结局之间的关系。我们将受试者随机分配到治疗组或未治疗组。随机分配治疗方法可确保治疗方法与结果无关,从而大大简化了分析。
因果推论要求对每个治疗水平的结果的无条件估计。无论数据是观察性的还是实验性的,我们仅观察以接受治疗为条件的每个受试者的结局。对于实验数据,治疗的随机分配保证了治疗与结果无关。对于观察数据,我们对治疗分配过程进行建模。如果我们的模型是正确的,则根据我们模型中的协变量,治疗分配过程被认为与随机条件一样好。
让我们考虑一个例子。图1是类似于Cattaneo(2010)使用的观测数据的散点图。治疗变量是母亲在怀孕期间的吸烟状况,结果是婴儿的出生体重。
红点表示怀孕期间吸烟的母亲,而绿点表示未怀孕的母亲。母亲自己选择是否吸烟,这使分析变得复杂。
我们不能通过比较吸烟和不吸烟的母亲的平均出生体重来估计吸烟对出生体重的影响。为什么不?再看一下我们的图表。年龄较大的母亲往往体重较重,无论怀孕时是否吸烟。在这些数据中,年龄较大的母亲也更有可能吸烟。因此,母亲的年龄与治疗状况和结局有关。那么我们应该如何进行呢?
点击标题查阅往期内容
左右滑动查看更多
01
02
03
04
RA:回归调整估计量
RA估计量对结果进行建模,以说明非随机治疗分配。
我们可能会问:“如果吸烟的母亲选择不吸烟,结果将如何改变?”或“如果不吸烟的母亲选择吸烟,结果将会如何改变?”。如果我们知道这些反事实问题的答案,那么分析将很容易:我们只需从反事实结果中减去观察到的结果即可。
我们可以构建对这些未观察到的潜在结果的度量,我们的数据可能看起来像这样:
在图2中,使用实心点显示观察到的数据,而使用空心点显示未观察到的潜在结果。空心的红点代表吸烟者不吸烟的潜在后果。空心的绿色点代表不吸烟者吸烟的潜在后果。
我们可以通过将单独的线性回归模型与观察到的数据(实点)拟合到两个治疗组,从而估计未观察到的潜在结果。
在图3中,我们为不吸烟者提供了一条回归线(绿线),为吸烟者提供了一条单独的回归线(红线)。
让我们了解这两行的含义:
图4左侧标记为“已观察 ”的绿点是对不吸烟的母亲的观察。绿色回归线上标有E(y0)的点是考虑到母亲的年龄并且不吸烟的婴儿的预期出生体重。红色回归线上标有E(y1)的点是同一名母亲吸烟后婴儿的预期出生体重。
这些期望之间的差异估计了未接受治疗者的协变量特异性治疗效果。
现在,让我们看看另一个反事实问题。
图4右侧的红色标记为“ 观察到的红色”是对怀孕期间吸烟的母亲的观察。绿色和红色回归线上的点再次表示在两种治疗条件下母亲婴儿的预期出生体重(潜在的结局)。
这些期望之间的差异估计了接受治疗者的协变量特异性治疗效果。
请注意,我们根据每个变量的协变量值来估计平均治疗效果(ATE)。此外,无论实际接受哪种治疗,我们都对每位受试者估计这种效果。数据中所有受试者的这些效应的平均值估计了ATE。
我们还可以使用图4来激发对每个受试者在每种治疗水平下可获得的结果的预测,而与所接受的治疗无关。数据中所有受试者的这些预测值的平均值估计每个治疗水平的潜在结果均值(POM)。
估计的POM的差异与上述ATE的估计相同。
被治疗者(ATET)上的ATE与ATE相似,但仅使用在治疗组中观察到的受试者。这种计算治疗效果的方法称为回归调整(RA)。
. webuse cattaneo2.dta, clear
为了估算两个治疗组中的POM,我们输入
. teffects ra (bweight mage) (mbsmoke), pomeans
我们在第一组括号中指定结果模型,并带有结果变量及其后的协变量。在此示例中,结果变量为bweight,唯一的协变量为mage。
我们在第二组括号中指定处理模型(仅是处理变量)。在此示例中,我们仅指定处理变量mbsmoke。我们将在下一节中讨论协变量。
键入命令的结果是
Iteration 0: EE criterion = 7.878e-24
Iteration 1: EE criterion = 8.468e-26
Treatment-effects estimation Number of obs = 4642
Estimator : regression adjustment
Outcome model : linear
Treatment model: none
------------------------------------------------------------------------------
| Robust
bweight | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
POmeans |
mbsmoke |
nonsmoker | 3409.435 9.294101 366.84 0.000 3391.219 3427.651
smoker | 3132.374 20.61936 151.91 0.000 3091.961 3172.787
------------------------------------------------------------------------------
输出报告说,如果所有母亲吸烟,平均出生体重将为3132克,如果没有母亲吸烟,则平均出生体重将为3409克。
我们可以通过减去POM来估算出生体重时吸烟的ATE:3132.374 – 3409.435 = -277.061。获取标准误和置信区间:
Iteration 0: EE criterion = 7.878e-24
Iteration 1: EE criterion = 5.185e-26
Treatment-effects estimation Number of obs = 4642
Estimator : regression adjustment
Outcome model : linear
Treatment model: none
-------------------------------------------------------------------------------
| Robust
bweight | Coef. Std. Err. z P>|z| [95% Conf. Interval]
--------------+----------------------------------------------------------------
ATE |
mbsmoke |
(smoker vs |
nonsmoker) | -277.0611 22.62844 -12.24 0.000 -321.4121 -232.7102
--------------+----------------------------------------------------------------
POmean |
mbsmoke |
nonsmoker | 3409.435 9.294101 366.84 0.000 3391.219 3427.651
-------------------------------------------------------------------------------
输出报告的是我们手动计算的相同ATE:-277.061。ATE是每个母亲吸烟时出生体重与没有母亲吸烟时出生体重之间差异的平均值。
IPW:逆概率加权估计器
RA估计量对结果进行建模,以说明非随机治疗分配。一些研究人员更喜欢为治疗分配过程建模,而不为结果指定模型。
我们知道,在我们的数据中,吸烟者往往比不吸烟者年龄大。我们还假设母亲的年龄直接影响出生体重。我们在图1中观察到了这一点 。
该图显示治疗分配取决于母亲的年龄。我们希望有一种调整这种依赖性的方法。特别是,我们希望我们有更多的较高年龄的绿色点和较低年龄的红色点。如果这样做的话,每组的平均出生体重将会改变。我们不知道这将如何影响均值差异,但是我们知道这将是对差异的更好估计。
为了获得类似的结果,我们将对较低年龄段的吸烟者和较高年龄段的不吸烟者进行加权,而对较高年龄段的吸烟者和较低年龄段中的不吸烟者进行加权。
我们将采用以下形式的概率模型或logit模型
Pr(女人抽烟)= F(a + b *年龄)
teffects默认使用logit,但是我们将指定probit选项进行说明。
一旦我们拟合了该模型,就可以为数据中的每个观察获得预测Pr(女人抽烟)。我们称这个为_p i_。然后,在进行POM计算(这只是平均值计算)时,我们将使用这些概率对观测值进行加权。我们将对吸烟者的观测值加权为1 / _p i,_以便当成为吸烟者的可能性较小时,权重将较大。我们将对不吸烟者的观察加权1 /(1- p i),以便当不吸烟者的概率较小时,权重将较大。
结果是下图替换了图1:
在图5中,较大的圆圈表示较大的权重。
使用此IPW估算器估算POM
结果是
Iteration 0: EE criterion = 3.615e-15
Iteration 1: EE criterion = 4.381e-25
Treatment-effects estimation Number of obs = 4642
Estimator : inverse-probability weights
Outcome model : weighted mean
Treatment model: probit
------------------------------------------------------------------------------
| Robust
bweight | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
POmeans |
mbsmoke |
nonsmoker | 3408.979 9.307838 366.25 0.000 3390.736 3427.222
smoker | 3133.479 20.66762 151.61 0.000 3092.971 3173.986
------------------------------------------------------------------------------
我们的输出报告说,如果所有母亲吸烟,平均出生体重将为3133克,如果没有母亲吸烟,则平均出生体重将为3409克。
这次,ATE是-275.5,如果我们键入
(Output omitted)
我们将了解到标准误为22.68,95%置信区间为[-319.9,231.0]。
IPWRA:具有回归调整估计量的IPW
RA估计量对结果进行建模,以说明非随机治疗分配。IPW估算器对处理进行建模以说明非随机处理分配。IPWRA估算器对结果和治疗方法进行建模,以说明非随机治疗方案。
IPWRA使用IPW权重来估计校正后的回归系数,随后将其用于执行回归调整。
结局模型和治疗模型中的协变量不必相同,它们常常不是因为影响受试者选择治疗组的变量通常不同于与结果相关的变量。IPWRA估算器具有双重鲁棒性,这意味着如果错误指定了治疗模型或结果模型(而不是两者),则效果的估算将保持一致。
让我们考虑具有更复杂的结果和治疗模型,但仍使用我们的低体重数据的情况。
结果模型将包括
- 母亲的年龄
- 孕早期产前检查的指标
- 母亲婚姻状况的指标
- 第一胎的指标
治疗模型将包括
- 结果模型的所有协变量
- 母亲的年龄 ^ 2
- 孕产妇教育年限
我们还将指定aequations选项,报告结果和治疗模型的系数。
Iteration 0: EE criterion = 1.001e-20
Iteration 1: EE criterion = 1.134e-25
Treatment-effects estimation Number of obs = 4642
Estimator : IPW regression adjustment
Outcome model : linear
Treatment model: probit
-------------------------------------------------------------------------------
| Robust
bweight | Coef. Std. Err. z P>|z| [95% Conf. Interval]
--------------+----------------------------------------------------------------
POmeans |
mbsmoke |
nonsmoker | 3403.336 9.57126 355.58 0.000 3384.576 3422.095
smoker | 3173.369 24.86997 127.60 0.000 3124.624 3222.113
--------------+----------------------------------------------------------------
OME0 |
mage | 2.893051 2.134788 1.36 0.175 -1.291056 7.077158
prenatal1 | 67.98549 28.78428 2.36 0.018 11.56933 124.4017
mmarried | 155.5893 26.46903 5.88 0.000 103.711 207.4677
fbaby | -71.9215 20.39317 -3.53 0.000 -111.8914 -31.95162
_cons | 3194.808 55.04911 58.04 0.000 3086.913 3302.702
--------------+----------------------------------------------------------------
OME1 |
mage | -5.068833 5.954425 -0.85 0.395 -16.73929 6.601626
prenatal1 | 34.76923 43.18534 0.81 0.421 -49.87248 119.4109
mmarried | 124.0941 40.29775 3.08 0.002 45.11193 203.0762
fbaby | 39.89692 56.82072 0.70 0.483 -71.46966 151.2635
_cons | 3175.551 153.8312 20.64 0.000 2874.047 3477.054
--------------+----------------------------------------------------------------
TME1 |
mmarried | -.6484821 .0554173 -11.70 0.000 -.757098 -.5398663
mage | .1744327 .0363718 4.80 0.000 .1031452 .2457202
|
c.mage#c.mage | -.0032559 .0006678 -4.88 0.000 -.0045647 -.0019471
|
fbaby | -.2175962 .0495604 -4.39 0.000 -.3147328 -.1204595
medu | -.0863631 .0100148 -8.62 0.000 -.1059917 -.0667345
_cons | -1.558255 .4639691 -3.36 0.001 -2.467618 -.6488926
-------------------------------------------------------------------------------
输出的POmeans部分显示两个治疗组的POM。ATE现在计算为3173.369 – 3403.336 = -229.967。
OME0和OME1部分分别显示未处理组和已处理组的RA系数。
输出的TME1部分显示概率处理模型的系数。
与前两种情况一样,如果我们希望ATE出现标准误等,我们将指定ate选项。如果我们需要ATET,则可以指定atet选项。
AIPW:增强型IPW估算器
IPWRA估算器对结果和治疗方法进行建模,以说明非随机治疗方案。AIPW估算器也是如此。
AIPW估算器向IPW估算器添加偏差校正项。如果正确指定了处理模型,则偏差校正项为0,并且将模型简化为IPW估计量。如果治疗模型指定不正确,但结果模型指定正确,则偏差校正项会校正估计量。因此,偏差校正项使AIPW估计器具有与IPWRA估计器相同的双重鲁棒性。
AIPW估计器的语法和输出与IPWRA估计器的语法和输出几乎相同。
Iteration 0: EE criterion = 4.632e-21
Iteration 1: EE criterion = 5.810e-26
Treatment-effects estimation Number of obs = 4642
Estimator : augmented IPW
Outcome model : linear by ML
Treatment model: probit
-------------------------------------------------------------------------------
| Robust
bweight | Coef. Std. Err. z P>|z| [95% Conf. Interval]
--------------+----------------------------------------------------------------
POmeans |
mbsmoke |
nonsmoker | 3403.355 9.568472 355.68 0.000 3384.601 3422.109
smoker | 3172.366 24.42456 129.88 0.000 3124.495 3220.237
--------------+----------------------------------------------------------------
OME0 |
mage | 2.546828 2.084324 1.22 0.222 -1.538373 6.632028
prenatal1 | 64.40859 27.52699 2.34 0.019 10.45669 118.3605
mmarried | 160.9513 26.6162 6.05 0.000 108.7845 213.1181
fbaby | -71.3286 19.64701 -3.63 0.000 -109.836 -32.82117
_cons | 3202.746 54.01082 59.30 0.000 3096.886 3308.605
--------------+----------------------------------------------------------------
OME1 |
mage | -7.370881 4.21817 -1.75 0.081 -15.63834 .8965804
prenatal1 | 25.11133 40.37541 0.62 0.534 -54.02302 104.2457
mmarried | 133.6617 40.86443 3.27 0.001 53.5689 213.7545
fbaby | 41.43991 39.70712 1.04 0.297 -36.38461 119.2644
_cons | 3227.169 104.4059 30.91 0.000 3022.537 3431.801
--------------+----------------------------------------------------------------
TME1 |
mmarried | -.6484821 .0554173 -11.70 0.000 -.757098 -.5398663
mage | .1744327 .0363718 4.80 0.000 .1031452 .2457202
|
c.mage#c.mage | -.0032559 .0006678 -4.88 0.000 -.0045647 -.0019471
|
fbaby | -.2175962 .0495604 -4.39 0.000 -.3147328 -.1204595
medu | -.0863631 .0100148 -8.62 0.000 -.1059917 -.0667345
_cons | -1.558255 .4639691 -3.36 0.001 -2.467618 -.6488926
-------------------------------------------------------------------------------
ATE为3172.366 – 3403.355 = -230.989。
最后
上面的示例使用了一个连续的结果:出生体重。 teffects也可以用于二进制,计数和非负连续结果。
估计量还允许多个治疗类别。
参考文献:
【1】 Cattaneo, M. D. 2010. Efficient semiparametric estimation of multi-valued treatment effects under ignorability. Journal of Econometrics 155: 138–154.
点击文末 “阅读原文”
获取全文完整资料。
本文选自《Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW》。
点击标题查阅往期内容
数据分享|R语言用主成分分析(PCA)PCR回归进行预测汽车购买信息可视化
MCMC的rstan贝叶斯回归模型和标准线性回归模型比较
数据分享|R语言逻辑回归(Logistic Regression)、回归决策树、随机森林信用卡违约分析信贷数据集
PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
R语言基于树的方法:决策树,随机森林,Bagging,增强树
R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
spss modeler用决策树神经网络预测ST的股票
R语言中使用线性模型、回归决策树自动组合特征因子水平
R语言中自编基尼系数的CART回归决策树的实现
R语言用rle,svm和rpart决策树进行时间序列预测
python在Scikit-learn中用决策树和随机森林预测NBA获胜者
python中使用scikit-learn和pandas决策树进行iris鸢尾花数据分类建模和交叉验证
R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言ISLR工资数据进行多项式回归和样条回归分析
R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
如何用R语言在机器学习中建立集成模型?
R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测在python 深度学习Keras中计算神经网络集成模型R语言ARIMA集成模型预测时间序列分析R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者
R语言基于树的方法:决策树,随机森林,Bagging,增强树
R语言基于Bootstrap的线性回归预测置信区间估计方法
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线
matlab使用分位数随机森林(QRF)回归树检测异常值