倾向得分匹配结果(倾向得分匹配后怎么进行回归)

原标题:手把手教你做倾向评分匹配-PSM本文首发于“百味科研芝士”微信公众号,转载请注明:百味科研芝士,Focus科研人的百味需求。各位科研芝士的朋友大家好,今天和大家分享一下新的知识点—PSM,或许大家早已听过这个名词了,或许你对它还是半知半解,不过没关系,希望可以通过今天的帖子帮助你对该名词有一定的理解。PSMPSM英文全称为PropensityScoreMatching,意思是倾向匹配…

大家好,又见面了,我是你们的朋友全栈君。

原标题:手把手教你做倾向评分匹配 -PSM

本文首发于“百味科研芝士”微信公众号,转载请注明:百味科研芝士,Focus科研人的百味需求。

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

PSM

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

d220358ac5cc40f8b76168ba3416cd54.JPG

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

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

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

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

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

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

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

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

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

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

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

7a24511fe64f478497d732dbc51c7ff7.png

2.数据读取:

48993305cc35405fb7408d4b81e32d1c.png

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

cfbfbf23159a40e3b3cef6a3296f2072.png

接着我们查看样本组成

eb769379e0b74fd79af34dc0fa5e7f5b.png

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

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

3bdd2048079e431bb80f6b86723d7878.png

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

2989fdf25d5841fb86df50b9644a67f0.png

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

匹配结果展示:

5b1e9aa6b5764311aac577f4af549d93.png

aa2cba50837b4ec893c713c684cc1597.png

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

5. 配对样本整理

2805a95927e245cdbec6f70e89ce4325.jpeg

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

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

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

责任编辑:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128653.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pandas中的 fillna使用(pandas.DataFrame.fillna)「建议收藏」

    pandas中的 fillna使用(pandas.DataFrame.fillna)「建议收藏」api参考:fillna:使用指定的方法填充NA/NaN值。>>>df=pd.DataFrame([[np.nan,2,np.nan,0],[3,4,np.nan,1],[np.nan,np.nan,np.nan,5],[np.nan,3,np.nan,4]],columns=list.

    2022年8月12日
    4
  • 动态规划0—1背包问题

    动态规划0—1背包问题动态规划0-1背包问题Ø  问题描述:  给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?Ø 对于一种物品,要么装入背包,要么不装。所以对于一种物品的装入状态可以取0和1.我们设物品i的装入状态为xi,xi∈(0,1),此问题称为0-11背包问题。

    2022年7月26日
    4
  • java逻辑错误_java代码评审

    java逻辑错误_java代码评审测试文件:hello-jni/src/com/example/hellojni/HelloJni.java/***该文件来自AndroidNDKSample-HelloJni,为了便于说明问题,我作了一些修改。*/packagecom.example.hellojni;publicclassHelloJni{publicnativeStringstringFromJNI…

    2022年9月24日
    1
  • Rabbitmq原理理解[通俗易懂]

    Rabbitmq原理理解[通俗易懂]rabbitmq特点RabbitMQ是一个由Erlang语言开发的AMQP的开源实现。AMQP:AdvancedMessageQueue,高级消息队列协议。可靠性(Reliability)灵活的路由(FlexibleRouting)消息集群(Clustering)高可用(HighlyAvailableQueues)多种协议(Multi-protocol)多语言客户端(ManyClients)管理界面(ManagementUI)跟踪机制(Tracing)插件机

    2022年6月17日
    32
  • 国嵌linux大话数据结构代码,大话数据结构源代码.pdf

    国嵌linux大话数据结构代码,大话数据结构源代码.pdf大话数据结构源代码第一章线性表1.01线性表顺序存储_List#include”stdio.h”#include”stdlib.h”#include”io.h”#include”math.h”#include”time.h”#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineMAXSIZE20/*…

    2022年6月24日
    24
  • latex参考文献上标怎么打_latex的上下角标

    latex参考文献上标怎么打_latex的上下角标1、使用\supercite{}2、加入以下语句,引用时直接使用\cite{}原文链接:https://www.latexstudio.net/archives/7686.html\makeatletter\def\@cite#1#2{\textsuperscript{[{#1\if@tempswa,#2\fi}]}}\makeatother

    2022年9月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号