R语言实战医学统计 您所在的位置:网站首页 r语言医学统计 R语言实战医学统计

R语言实战医学统计

2024-02-18 05:33| 来源: 网络整理| 查看: 265

36  R语言倾向性评分:匹配

倾向性评分(Propensity Score, PS)是一种控制混杂因素的统计学方法,通过倾向性评分的方法,可以把基线控制在可比的水平,这样就可以比较处理因素带来的差异了。

比如,现在要比较A,B两种方法治疗肥胖的效果,随机分两组,分别使用A,B两种方法半年,看哪个方法效果好。一般收集到的病人性别、年龄、身高、体重、家族史、生活习惯、收入水平、生活地区等都是不一样的,这些混杂因素不控制,你很难说清楚到底是两种方法的效果还是混杂因素导致的。

利用倾向性评分就可以控制这些混杂,但是控制混杂因素的方法非常多,不要拘泥于此。对于类似上面这种情况,你还可以用协方差分析、多因素分析(统计学中的3大回归!线性回归、逻辑回归、Cox回归)、分层分析等,也可以起到控制混杂因素的效果,这些在之前的推文中全都有涉及,大家可以自行查看。

倾向性评分最大的优势是将多个混杂因素的影响用一个综合的值来表示,即倾向性评分值(Propensity Score, PS),从而降低协变量的维度,因此该方法尤其适用于协变量较多的情况。

倾向性评分的一般步骤为: 1. 估计 PS 值; 2. 利用 PS 值均衡协变量分布; 3. 均衡性检验及模型评价; 4. 处理效应估计。

其中,PS 值的估计是以处理因素作为因变量,其他混杂因素作为自变量,通过建立一个模型(可以是传统的回归模型,也可以是机器学习方法)来估计每个研究对象接受处理因素的可能性。

目前用于估计 PS 值的方法有 logistic 回归,Probit 回归、神经网络、支持向量机、分类与回归数、Boosting 算法、SuperLearner 等。其中 logistic 回归是目前最常用的方法。

到底用什么方法,并没有标准,有些人喜欢复杂的机器学习方法,有的则喜欢传统的逻辑回归,并没有优劣之分,选择合适的就好。有的人觉得机器学习方法不好解释,比如神经网络,但是也有人认为计算PS只是一个小小的步骤,更多的精力应该放在计算出来的PS是否能完美的平衡数据上,PS的计算方法不好解释就不解释了,反正不是主要问题。

倾向性评分只是一个分数(P值),自己并没有均衡协变量(混杂因素)的能力,利用 PS 值均衡组间协变量分布的方法有匹配(matching)、分层(stratification)、协变量调整(covariate adjustment)和加权(weighting)等。4种方法均有各自的特点和局限,参考下图:

其中协变量调整又可以称为倾向性评分回归、倾向性评分矫正等。

用于倾向性评分的数据要进行一些预处理,比如缺失值处理,这在倾向性评分中是很重要的一部分内容!但是这里并没有过多演示这部分内容,因为缺失值处理是通用技能!处理缺失值的方法很多,也是没有统一的标准,选择合适的即可。比如直接删除,用常数值代替,用均值/中位数等代替,算法插补(KNN、随机森林等),没有统一的标准。缺失值处理的一些方法,也可以参考这篇推文:我常用的缺失值插补方法

36.1 准备数据

下面的数据及演示的方法主要参考了这篇文章:10.21037/atm-20-3998。大家感兴趣的可以去阅读原文。

我们虚构一个数据,用于演示研究吸烟对心血管疾病的影响,性别和年龄作为混杂因素。

CVD:结果变量,1是有心血管疾病,0是没有 x.Age:年龄 x.Gender:0是女,1是男 Smoke:1吸烟,0不吸烟,是我们的处理因素 set.seed(2020) x.Gender


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有