倾向评分加权回归,IPTW与Cox,Logistic,Linear
前⾔
⾃往期推送《倾向评分加权与匹配的均衡性检验有何不同?》后,不少朋友建议《统计咨询》公众号简介均衡性检验后的下⼀个关键步骤,倾向评分加权回归。发表的论⽂中常常呈现加权前与加权后的回归结果。下表来源于JAMA中的⼀篇⽂献 (doi:10.1001/jama.2016.17396) ,Relative Risk (RR) 为主要结果,第⼀⾏ Unweighted sample 是单因素模型的结果,最后⼀⾏ Inver probability of treatment weighting 是倾向评分加权模型的结果。本⽂直接实操。
倾向评分加权线性回归
1.#加载所需R包
2.library(MatchIt)
3.library(reportReg)
4.
5.#加载R包⾃带数据
6.data(lalonde)
7.
8.#以分组变量treat为因变量,建⽴logistic回归模型
9.ps=glm(treat~age+educ+black+hispan+married+re75,data=lalonde,family=binomial())
10.
11.#计算倾向评分ps
12.lalonde$psvalue=predict(ps,type="respon")
13.
14.#计算逆概率权重IPTW
15.lalonde$iptw=ifel(lalonde$treat==1,1/lalonde$psvalue,1/(1-lalonde$psvalue))
16.
17.#分别构建单因素回归、加权回归
20.
21.#查看结果
上述结果中,我们主要关⼼的是treat⼆分类变量,在倾向评分加权回归中仍然有统计学意义 (P<0.001),说明结局re74与treat有关 (回归系数beta=-2701.602)。
倾向评分加权Logistic回归
1.#基于上述步骤,得到带有权重IPTW的数据lalonde
2.
3.#分别构建单因素回归、加权回归
6.
7.#查看结果
上述结果中,我们主要关⼼的是treat⼆分类变量,在倾向评分加权回归中⽆统计学意义 (P=0.729)。说明结局nodegree 与treat⽆关。
倾向评分加权Cox回归
1.#加载所需R包
2.library(survival)
3.
4.#加载R包⾃带数据,剔除缺失值,⽣成分组变量
5.data(lung)
6.it(lung) lung$treat=ifel(>0,1,0)
7.
8.#以分组变量treat为因变量,建⽴logistic回归模型
9.ps=glm(treat~age+x+pat.karno,data=lung,family=binomial())
10.
11.#计算倾向评分ps
12.lalonde$psvalue=predict(ps,type="respon")
13.
14.#计算逆概率权重IPTW
15.lung$iptw=ifel(lung$treat==1,1/lung$psvalue,1/(1-lung$psvalue))
16.
17.#分别构建单因素回归、加权回归
20.
21.#查看结果
上述结果中,我们主要关⼼的是treat⼆分类变量,在倾向评分加权回归中仍然有统计学意义 (P=0.036),说明结局re74与treat有关 (HR=1.324)。