基于 PS (倾向评分)的IPTW 法首先由Rosenbaum作为一种以模型为基础的直接标准化法提出,属于边际结构模型。简单来说,就是把许多协变量和混杂因素打包成一个概率并进行加权,这样的话,我只用计算它的权重就可以了,方便了许多。那么,如何将多个协变量的影响用一个倾向评分值来表示呢? 即如何估计倾向评分值呢? 根据 Rosen-baum 和 Rubin 的定义:倾向评分值为在给定一组协变量(X i )条件下,研究对象 i(i =1,2,…N)被分配到某处理组或接受某暴露因素(Z i =1)的条件概率。理论上,所有可计算得到该条件概率的方法均可用于估计倾向评分值。

采用 logistic 回归模型估计倾向评分值具有模型
简单、容易实现、可直接得到倾向评分值、结果易于解释等显著优势。
我们拿logistic 回归做例子:
logistic 回归是最早提出的估计倾向评分值的方法,由于其原理为人们所熟悉且容易实现,也是目前最常用的估计方法。logistic 回归模型如下:

假设为二元logistic 回归,右边一系列混杂因素的方程会生成一个0-1之间的目标事件时间发生的概率,概率越大代表事件发生的可能性越大,这样就等于把多个混杂因素做成了一个综合评分来表示。用1除以这个概率就会得到一个权重,所以就叫做逆概率加权,逆概率加权(IPTW)是利用倾向性评分的倒数来处理数据间混杂的一种方法。Robins等给出的加权系数(形)计算方法是:处理组观察单位的权数Wt=1/PS,对照组观察单位的权数Wc=1/(1一PS)。PS为观察单位的倾向评分值。但此方法得到的人群往往与原来人群的数量不同,因此虚拟人群各变量的方差大小可有变化,而且有较低 PS 的处理组对象与有较高 PS 的非处理组对象将会获得很大的权重。由于非常大的权重会诱导不稳定性。Heman等人对计算方法进行调整,将整个研究人群的处理率和非处理率加入公式调整后得到稳定权数(stabilized weights)。具方法是:处理组观察单位的权数Wt=Pt/PS,对照组观察单位的权数Wc=(1–Pt)/(1–PS)。 目前蛮多文章使用稳定权重。
综上所述:倾向评分加权法首先将多个主要混杂变量的信息综合为一个变量倾向评分 ,然后将倾向评分作为需要平衡的混杂因素 ,通过标准化法的原理加权,使各对比组中倾向评分分布一致 ,则达到使各混杂因素在各比较组分布一致的目的。
下图所示,经过处理后,各项数据的分布基本上被配平了,更有利于做时候比较分析,有点起到RCT的效果。


既往我们已经演示了R语言进行倾向评分逆概率加权(IPTW)。后台有粉丝问,怎么使用R进行3组以上的倾向评分逆概率加权(IPTW),看了上面内容我们就明白,只要知道每组数据的倾向评分(也就是概率),根据公式转成权重数就可以了,和做两组的步骤基本一样。
1.导入数据,整理好数据
2.把需要比较的变量拿出来做结果变量,其他的变量做协变量,组成logistic回归方程
3.通过R包计算出拟概率权重
4.建立回归方程,加入权重
我们先导入数据和R包

bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)
bc <- na.omit(bc)


这是一个关于早产低体重儿的数据(公众号回复:早产数据,可以获得该数据),低于2500g被认为是低体重儿。数据解释如下:low 是否是小于2500g早产儿,age 母亲的年龄,lwt 末次月经体重,race 种族,smoke 孕期抽烟,ptl 早产史(计数),ht 有高血压病史,ui 子宫过敏,ftv 早孕时看医生的次数
bwt 新生儿体重数值。
先把分类变量转成因子

bc$race<-ifelse(bc$race=="black",1,ifelse(bc$race=="white",2,3))
bc$smoke<-ifelse(bc$smoke=="nonsmoker",0,1)
bc$low<-factor(bc$low)
bc$race<-factor(bc$race)
bc$ht<-factor(bc$ht)
bc$ui<-factor(bc$ui)


假设我们想比较不同种族对生早产低体重儿有无影响,我们先建立没有加权的模型看看,在这里设定种族中1是黑人,2是白人,3是其他人种。

fit<-glm(low ~ age + lwt + race + smoke + ptl + ht + ui + ftv,family = binomial("logit"),data = bc)
summary(fit)
exp(confint(fit))
exp(coef(fit))



可以看到白人和黑人比较是有意义的,白人生出低体重而几率比黑人小约75%。
下面我们要来进行逆概率加权,以种族为结局变量,其他为分类变量,这里要说一下,R自带的glm函数不能算出每个多分类变量的概率,它只能算出总的概率。
涉及3分类的我们这里可以使用ipw包进行加权,这是一个功能很强大的R包,ipwpoint函数除了可以给2分类,多分类变量加权,也可以给连续变量加权。Ipwtm函数可以加权带有时间点的数据。

library(ipw)
w1 <- ipwpoint(exposure = race,family = "multinomial",numerator = ~ 1,denominator = ~age + lwt+ smoke + ptl + ht + ui + ftv,data = bc)

exposure这里放入结局变量,也就是你要分组的变量。3分组的话对应的family是multinomial,如果二分组对应的family是binomial,如果是连续数据对应的family是gaussian。Numerator这里填入权重的分子,如果按照Robins的算法这里填入1,属于不稳定权重,denominator这里吧需要调整的变量填入就可以了。
生存权重后我们把它提到数据里

bc$w1<-w1$ipw.weights


获得权重后我们就可以直接加权了

fit1.IPTW<-glm(low ~ age + lwt + race + smoke + ptl + ht + ui + ftv,family = binomial("logit"),data = bc,weights = w1)
summary(fit1.IPTW)
exp(confint(fit1.IPTW))
exp(coef(fit1.IPTW))



我们可以看到,经过逆概率加权后,白人和黑人生出低体重儿仍然存在差异,白人低于黑人差不多70%的概率。

参考文献:
[1]李智文, 刘建蒙, 任爱国. 基于个体的标准化法——倾向评分加权[J]. 中华流行病学杂志, 2010(2):4.
[2] Robins J M , MN Hernán, Brumback B . Marginal Structural Models and Causal Inference in Epidemiology[J]. Epidemiology, 2000, 11.
[3]吴美京, 吴骋, 王睿,等. 倾向性评分法中评分值的估计方法及比较[J]. 中国卫生统计, 2013, 30(3):5.
[4]涂娇, 陈卉, 倪平,等. 倾向评分逆处理概率加权在生存分析中的应用及SAS宏实现[J]. 中国临床药理学与治疗学, 2015, 50(9):9.
[5]冯士雍. 加权回归分析的适用场合,加权回归方程效果的比较及权的估计[J]. 数理统计与管理, 1983(6):8.
[6] 辩证看待倾向性评分法 https://blog.csdn.net/fjsd155
[7]ipw包解释文件

基于R语言3组以上倾向评分逆概率加权(IPTW)相关推荐

  1. SPSS进行倾向评分逆概率加权(IPTW)

    基于 PS (倾向评分)的IPTW 法首先由Rosenbaum作为一种以模型为基础的直接标准化法提出,属于边际结构模型.简单来说,就是把许多协变量和混杂因素打包成一个概率并进行加权,这样的话,我只用计 ...

  2. 基于R语言逆概率加权(IPTW)并行生存曲线分析

    逆概率加权法最早由 Horvitz和Thompson提出,即对每个可观测的yi的概率取倒数,作为被观测的 yi 的权重,修正由缺失数据或有偏抽样带来的估计偏差.IPTW 是减少多组观察性数据间混杂偏倚 ...

  3. R语言3组患者倾向性评分匹配(PSM)

    倾向评分匹配(Propensity Score Matching,简称PSM)是一种统计学方法,用于处理观察研究(Observational Study)的数据,在SCI文章中应用非常广泛.在观察研究 ...

  4. 首发,pm3包,一个用于多组(3组)倾向评分匹配的R包

    目前,本人写的第二个R包pm3包已经正式在CRAN上线,用于3组倾向评分匹配,只能3组不能多也不能少. 可以使用以下代码安装 install.packages("pm3") 什么是 ...

  5. python对电影进行预测评分_基于R语言构建的电影评分预测模型

    原标题:基于R语言构建的电影评分预测模型 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数据分析 ...

  6. Protein Cell:基于R语言的微生物组数据挖掘最佳流程(大众评审截止14号晚6点)...

    Protein & Cell综述:基于R语言的微生物组数据挖掘的最佳流程 近日,中国农业科学院刘永鑫组联合南京农业大学袁军组在国际期刊 Protein & Cell (IF = 15. ...

  7. 基于R语言混合效应模型(mixed model)案例研究

    全文链接: http://tecdat.cn/?p=2596 在本文中,我们描述了灵活的竞争风险回归模型.回归模型被指定为转移概率,也就是竞争性风险设置中的累积发生率(点击文末"阅读原文&q ...

  8. 基于R语言的主成分回归(PCR)与Lasso回归在水稻基因组预测中的对比(生信数基实验作业)

    基于R语言的主成分回归(PCR)与Lasso回归在水稻基因组预测中的对比 0 引言 全基因组选择是 21 世纪动植物育种的一种重要的选择策略,其核心就是全基因组预测,即基于分布在整个基因组上的多样性分 ...

  9. 基于R语言的判别分析

    本文主要介绍了基于R语言实现距离判别.Bayes判别.Fisher判别的基本思路以及给出了具体的操作过程. 1.数据 这里总共有个20个电视品牌的数据,销售状态G1中的1表示畅销,2表示滞销:销售状态 ...

最新文章

  1. 不降低scipy版本解决AttributeError: module ‘scipy.misc‘ has no attribute ‘imresize‘问题
  2. van Emda Boas
  3. linux在内核下使用iic,实例解析linux内核I2C体系结构(2)
  4. 工具用的好下班走的早
  5. Win7 NFS 设置详解 | X-Space
  6. PowerDesigner(16.1)使用
  7. 【详细解析】7-1 两个有序序列的中位数 (25 分)
  8. 将Redis集成到您的Spring项目中
  9. vc mysql 图片_VC连接MySQL
  10. python基础案例教程_Python基础教程 两个经典案例:阶乘和幂
  11. PacVim:一个学习vim命令的游戏,再也不怕记不住了!
  12. main(int argc,char *argv[ ],char *env)参数详解
  13. Ubuntu 磁盘自动挂载解决
  14. 如何使用CodeBlocks开发C/C++程序
  15. wincc与第三方软件opc通讯_运用OPC实现WinCC与西门子SIMOTION的通讯
  16. 使用Chrome inspect进行夜神模拟器里app的调试
  17. 计算机专业发SCI还是会议,CCF会议会被SCI收录吗
  18. 权威大赛|2022 CCF大数据与计算智能大赛火热报名中
  19. 嵌入式linux下sqlite应用
  20. java并发-java并发大师

热门文章

  1. SQL 保留两位小数的实现方式
  2. 内存查找工具CE游戏辅助开发必备
  3. 看了那么多的设计趋势,你知道怎么落地实践吗?
  4. golang把数字变字符串_Golang科学计数法转换string数字输出
  5. 今天是一个倒霉的一天
  6. CSS 之 百分比(%)样式属性
  7. java修饰符默认_Java的类,方法,变量等等的默认修饰符是什么
  8. GET /socket.io/?EIO=3transport=websocket
  9. 吹响“人工智能应用”的集结号——AI Conference 2018北京站大会圆满落幕
  10. 数千万,打水漂了。。