专栏首页百味科研芝士手把手教你做倾向评分匹配

手把手教你做倾向评分匹配

各位科研芝士的朋友大家好,今天和大家分享一下新的知识点—PSM,或许大家早已听过这个名词了,或许你对它还是半知半解,不过没关系,希望可以通过今天的帖子帮助你对该名词有一定的理解。

PSM

PSM英文全称为Propensity Score Matching,意思是倾向匹配得分,炸一听?多么有学术气息呀

那么如何通俗的理解PSM模型呢?

举个例子,假设一列病人样本,一组服用了药物A,我们想要知道,如果病人服用了药物A,那么他生活质量是否提高了?他的生存时间是否提高了?

但我们首先面临一个问题,究竟是因为药物A的影响,所以生活质量和生存时间均提高了,还是由于患者本身所产生的差异。

此时可以通过寻找另一列病人样本,服用的则是安慰剂对照。也就是说当我们想研究药物A是否对生活质量和生存时间产生影响时,首先需要找两列在其他各方向均差不多的病人,如果此时二者在生活质量和生存时间上依然产生了差别,那么可以认为这种差异是由是否服用药物A这个因素造成的。这样的方法有一个专业的名词,即PSM。

官方的话语则是:为了探讨某因素(暴露或干预,下面统称处理因素)与结局的关系,需要设立对照组进行比较,其目地是控制非处理因素的干扰,突显处理因素的的效应。

但是在观察性研究中(如队列研究),研究对象是非随机分配的,这就会使混杂因素在两组中分配不均匀,导致处理因素和结局的关系受到混杂因素的干扰。

近几年在国外研究中用的比较广泛的控制混杂因素的方法—倾向性评分匹配(propensity score matching, PSM)。

之前我们平台推出了基于SPSS计算PSM,那我们今天采用R语言计算PSM,测试数据在后台回复"PSM"提供。

今天PSM推荐的包为MatchIt,一听名字就是做匹配用的。

下面进入正题,今天我们看看如何用MatchIt,进行PSM分析:

1. 安装并加载包,关于包的安装,已经讲过多次,直接上代码:

2.数据读取:

数据如下:该数据包括四列信息,分别是年龄,性别,样本类型和病人的ID

接着我们查看样本组成

我们发现该数据集中case样本包括250个,control样本包括1000个,接着我们需要对这两类样本进行匹配,匹配的协变量主要是性别因素和年龄因素。

3. 数据匹配,采用matchit函数,首先要定义一个逻辑变量,这一点非常重要:

生存好逻辑变量之后,接着我们需要进行匹配

Matchit函数的第一个对象为一个表达式,因为进行了逻辑变量分组,接着把需要考虑的协变量放进去,这里主要是性别和年龄,method部分是我们要采取哪种方法进行匹配,一般默认为nearest,表示采取最近邻匹配法,该方法是PSM中最常见也最基本的方法,该方法是将处理组和对照组倾向性评分中最接近的个体进行匹配,当处理组个体全部匹配后,匹配结束,ratio代表匹配比例,当ratio=1,代表进行1:1匹配。

匹配结果展示:

因为我们是250和1000进行匹配,可以看到在control 里面还有750个未匹配到。

5. 配对样本整理

我们按照组别排序,对配对样本整理,便看到左边三列是control组,右边三列是case组,

比如control4和case1进行了配对,则完成了样本之间的配对。

Ok,今天的推文就到这,我们分享了如何在基于R语言的PSM的计算,希望能对大家有所帮助,最后,欢迎大家多多交流。

—END—

本文分享自微信公众号 - 百味科研芝士(keyanzhishi),作者:Sun

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ggpubr—专为学术绘图而生

    百味科研芝士
  • 教育部回应曹雪涛事件:密切关注,正在了解情况

    在今天教育部举办的新闻通气会上,教育部新闻发言人续梅就曹雪涛事件回应称,“对此,教育部相关司局负责同志第一时间调查了解情况,也已经要求与涉事论文有关的部属高校按...

    百味科研芝士
  • OriginLab OriginPro 2018安装教程

    链接:https://pan.baidu.com/s/1arzECorPM6CfC-cw_nqmaw

    百味科研芝士
  • 走进高并发(三)深入理解Java内存模型

    在讨论Java内存模型之前,这里先一起聊聊CPU、高速缓存以及主内存,在了解这些知识后,对理解Java内存模型会有很大的帮助。

    itlemon
  • 浏览器中flash设置最强教程

    承接上文,我讲到了前端如何判断浏览器是否安装或者禁用了flash插件,本文就重点讲述各个常见浏览器的详细设置教程,有图有文字描述,需要的产品经理请接好哦。

    RobinsonZhang
  • 基于 HTML5 WebGL 的楼宇智能化集成系统(三)

    2018年7月,信息化部印发了《工业互联网平台建设及推广指南》和《工业互联网平台评价方法》,掀起了 工业互联网 的浪潮,并成为热词写入了报告中。同为...

    HT for Web
  • Flutter基础widgets教程-Container篇

    注意: 使用Container时,通常要有一个父控件,一般情况下不单独使用Container。常用的父控件有Center widget、Padding Widg...

    青年码农
  • tomcat学习|源码学习方法及tomcat处理Web请求

    上一波,我们一起新建了web应用,然后把war包丢到tomcat源码中的webapps 目录,然后通过源码启动的方式成功debug运行了我们web应用,并且在浏...

    微笑的小小刀
  • 37、vuex初探(五)

    (2)通过这张图我们知道了vuex状态管理机制的一个大体步骤,但是,前面我有一点没提到,那就是在组件中,可以通过commit方法跳过1步骤直接提交mutatio...

    Ewall
  • 腾讯云批量计算型BC1实例配置性能使用场景及注意事项

    腾讯云批量型实例具有最优单位核时性价比,适用于渲染、基因分析、晶体药学等短时频繁使用超大规模计算节点的计算密集型应用。InstanceTypes分享腾讯云批量计...

    用户2416682

扫码关注云+社区

领取腾讯云代金券