pm3包1.8版本发布----一个用于3组倾向性评分的R包

news2024/11/17 7:48:41

目前,本人写的第二个R包pm3包的1.8版本已经正式在CRAN上线,用于3组倾向评分匹配,只能3组不能多也不能少。
可以使用以下代码安装

install.packages("pm3")

在这里插入图片描述
什么是倾向性评分匹配?倾向评分匹配(Propensity Score Matching,简称PSM)是一种统计学方法,用于处理观察研究(Observational Study)的数据,在SCI文章中应用非常广泛。在观察研究中,由于种种原因,数据偏差(bias)和混杂变量(confounding variable)较多,倾向评分匹配的方法正是为了减少这些偏差和混杂变量的影响,以便对实验组和对照组进行更合理的比较。
为什么需要做倾向评分匹配?
我们知道RCT的证据力度高,是因为对患者进行了严格的筛选。我们的回顾性研究都是过去的数据,很难像RCT一样进行严格的筛选出两组患者基线相近的基础资料,但我们可以通过倾向评分匹配把回归性的数据进行筛选,把基线资料相近的患者进行匹配,得到近似RCT的效果。
应用场景
 1.基线资料不平
 2.开展病例对照研究病阳性例数较少,如罕见病研究
 3.将众多混杂因素变为一个变量:倾向值
以下为一个实例,没进行匹配前两组患者基线资料相差很大,进行倾向评分匹配后,基线资料近似一致了
在这里插入图片描述
1.8版本修正了前面版本的一些错误,主要修正了两个问题:1是1.4版本的X变量如果是数字的话必须是1,2,3 ,1.8版本对变量进行了重编码,只要X是3分类就行,字符变量或者数字都可以,不在对数字有要求。2.是修正了对缺失数据的处理形式,进一步提高了上手性。下面我一一道来。
上一个版本中,X变量如果是数字来表示的话必须是1,2,3,使用0,1,2或者其他的数列都会报错。下面我们来试一下1.8版本,我先导入我们的早产数据,

bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)
bc$race<-ifelse(bc$race=="black",0,ifelse(bc$race=="white",1,2))

在这里插入图片描述
我们可以看到race这个变量现在是0,1,2,以往1.4版本是做不了的,必须改成1,2,3,现在新版本就没有这个问题了

g<-pm3(data=bc,x="race",y="low",covs=c("age","lwt","ptl"))

在这里插入图片描述
一句代码结果就出来了,较原来方便了许多。再来就是改变了缺失值的处理方式,因为粉丝收集的数据大都有缺失值,有些变量的缺失值还是挺多的, 1.4版本对缺失值的处理可以说是简单粗暴,直接删除,但是数据中如果不需要使用的变量缺失值很多,会导致了大量数据被删除,导致我们的分层变量数会减少,导致X变量的数变少,1.8版本引入了一个变量psid,先进行匹配,后期在进行数据匹配,这样使数据利用效率大大提高,下面一个例子说明,1.4版本:

library(pm3)
bc<-read.csv("E:/r/fensi/data8.csv",sep=',',header=TRUE)
g<-pm3(data=bc,x="group",y="solidfoodintroductionlessthan6m",
       covs=c("femaleage","gestationalweeks","childgender"),factor=c("childgender"))

在这里插入图片描述
主要是这些用不到的变量缺失太多了

在这里插入图片描述
1.8版本避开了这个问题,还是同样的数据,同样的代码

bc<-read.csv("E:/r/fensi/data8.csv",sep=',',header=TRUE)
g<-pm3(data=bc,x="group",y="solidfoodintroductionlessthan6m",
       covs=c("femaleage","gestationalweeks","childgender"),factor=c("childgender"))

在这里插入图片描述
再来说说factor这个参数,这个参数就是把数据中的变量变成因子,在上面的例子中,factor=c(“childgender”),其实就是相当于

bc$childgender<-as.factor(bc$childgender)

如果你在前面(计算前)就已经把分类变量转成因子了,factor不填就行了。

OK,新版本改动其实在构架来说还是蛮大的,但是做起来应该更简单了,如果有什么问题或建议,欢迎你来告诉我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/636731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经常被问道的这些类,佬们能够吊打面试官嘛(适合秋招和小白系列)?

前言&#xff1a; 本篇文章主要讲解Java中的几个类常被问到的面试题相关知识。该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读。 如果文章有什么需要改进的地方欢迎大佬提出&#xff0c;对大佬有帮助希望可以支持下哦~ 小威在此先感谢各位小伙伴儿了&#x1f601; 以…

宏病毒组研究大放异彩!| 凌恩生物1-5月高分宏病毒组文章大盘点!

凌恩生物现已在宏组学、基因组、表观遗传以及蛋白代谢等多组学及联合分析领域积累了深厚经验&#xff0c;打造出成熟的科研服务平台&#xff0c;以优质售前方案和优秀售后服务助力客户在Nature、Science、PNAS、ISME和MIcrobiome等高端国际期刊上发表了大量文章。 伴随着组学技…

【DevOps】Python+Golang(一)

Python is和的区别 is检查两个对象是否是同一个对象&#xff0c;即它们的内存地址是否相同。如果是同一个对象&#xff0c;则返回True&#xff0c;否则返回False。 检查两个对象是否相等&#xff0c;即它们的值是否相同。如果值相同&#xff0c;则返回True&#xff0c;否则返回…

Maven-基础

Maven Maven是专门用于管理和构建Java项目的工具&#xff0c;主要功能有&#xff1a; 提供了一套标准化的项目结构 Maven提供了一套标准化的项目结构&#xff0c;所有的IDE使用Maven构建的项目完全一样 提供了一套标准化的构建流程&#xff08;编译&#xff0c;测试&#xff0c…

jmeter性能测试进阶使用纪要

目录 目录 随机变量&#xff1a;实现注册手机号不重复分配 正则表达式&#xff1a;token等变量提取 HTTP header manager&#xff1a;token传参Authorization使用 后置BeanShell PostProcessor设置prev.setDataEncoding(“utf-8”)&#xff1a;响应中文乱码处理 同步定时…

与AI合作穿越剧 编剧徐婷:AI脑洞大,但无法替代人类的情感表达

热门喜剧秀《周六夜现场》本季提前结束&#xff0c;美剧《亿万》最新第七季的更新搁浅&#xff0c;漫威新电影《新刀锋战士》暂停拍摄……美国影视娱乐行业的编剧们以抵制AI为由的大罢工&#xff0c;开始影响诸多作品的产出&#xff0c;据说造成了100亿美元的损失。 这场罢工已…

深入理解Linux虚拟内存管理(八)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核&#xff08;一&#xff09; 深入理解 Linux 内核&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;一&#xff09; Linux 设备驱动程序&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;三&#xf…

Hive企业级调优

Hive企业级调优 调优原则已经在MR优化阶段已经有核心描述,优化Hive可以按照MR的优化思路来执行 优化的主要考虑方面: 环境方面&#xff1a;服务器的配置、容器的配置、环境搭建具体软件配置参数&#xff1a;代码级别的优化 调优的主要原则: ​ 20/80原则非常重要,简单的说80…

骨传导蓝牙耳机排行榜10强,介绍几款不错的户外骨传导耳机

随着骨传导技术的不断发展&#xff0c;骨传导耳机的性能也得到了很大的提升&#xff0c;特别是在音质和佩戴舒适性上&#xff0c;都有了很大的提升。很多人在听音乐的时候&#xff0c;都会佩戴骨传导耳机&#xff0c;因为骨传导耳机具有开放双耳的特点&#xff0c;长时间佩戴也…

Android Jetpack Compose 中的Tabs(TabLayout)

Android Jetpack Compose 中的Tabs&#xff08;TabLayout&#xff09; 添加依赖 我们需要依赖于2个 accompanist组件&#xff0c;你可以从下面链接中获取最新版本https://github.com/google/accompanist/tree/main/pager#pager-composable-for-jetpack-compose def accompan…

探索LowLatency的HLS低延迟直播协议

HLS全称为HTTP Live Streaming&#xff0c;其中m3u8作为描述协议&#xff0c;指向一系列切片文件。支持多码流与自适应码率&#xff0c;支持广告无缝播放&#xff0c;支持CMAF协议的低延时直播&#xff0c;也支持CDN动态选择。 我们先看下HLS整体架构&#xff0c;由三部分构成…

莫顿曲线映射 一维到二维的变换 MD(莫顿)码 反向变换 线性四叉树

函数声明&#xff1a; #include <stdio.h> #include <math.h>#define MAXSIZE 200 #define N 8typedef struct //栈的存储结构 {int data[MAXSIZE];int MD[MAXSIZE];int top; }stack1;void stackinitiate(stack1 *s); //初始化栈 void push (s…

【已解决】c++ 读入灰度图进行dft变换报错

报错原因&#xff1a; 1、imread函数读入默认参数为1&#xff0c;即彩色三通道图像&#xff0c;而我们要指定参数为0&#xff0c;读入灰度图像 2、在进行傅里叶变换前要将图像数据类型转为CV_32F&#xff0c;因为默认灰度图像类型为CV_8U 正确代码&#xff1a; #include <…

Vue中如何进行滚动加载与无限滚动?

Vue中如何进行滚动加载与无限滚动&#xff1f; 随着Web应用程序的复杂性和数据量的增加&#xff0c;滚动加载和无限滚动成为了Web开发中常见的需求。在Vue中&#xff0c;我们可以使用一些插件和技术来实现这些功能。 本文将介绍Vue中如何进行滚动加载和无限滚动&#xff0c;包…

内核实现信号捕捉的过程,以及要用到的函数sigaction

1.信号捕捉过程 1.在执行主控制流程的某条指令时因为中断、异常或系统调用进入内核。 2.内核处理完异常准备回用户模式之前先处理当前进程中可以递送的信号。 3.do_signal(); 如果信号的处理动作为自定义的信号处理函数&#xff0c;则回到用户模式执行信号处理函数&#xff08…

prometheus监控应用数据(一)

prometheus监控应用数据(一) 以下代码实现均使用go语言,至于其他语言请参照其他语言的prometheus api文档 获取go package: prometheus: go get -u github.com/prometheus/client_golang/prometheus搭建程序基本骨架 IP地址暂定为: localhost启用prometheus的监控端口是2112以…

互联网大厂Java面试题1500+附答案详解(2023版)

很多 Java 工程师的技术不错&#xff0c;但是一面试就头疼&#xff0c;10 次面试 9 次都是被刷&#xff0c;过的那次还是去了家不知名的小公司。 问题就在于&#xff1a;面试有技巧&#xff0c;而你不会把自己的能力表达给面试官。 应届生&#xff1a;你该如何准备简历&#…

2020310

Selenium: 基于WebDriver协议的 Web应用程序测试的工具 精简版&#xff1a; selenium脚本通过http请求发送命令和参数给httpserver httpserver通过json wire protocol格式转发命令和参数给webdriver webdriver通过原生API或者JavaScript代码执行操作给浏览器 浏览器通过json wi…

材料微观结构表征技术:电子背散射衍射EBSD

材料微观结构表征技术&#xff1a;电子背散射衍射EBSD 电子背散射衍射&#xff08;EBSD&#xff09;是一种材料表征技术&#xff0c;通过使用电子束对材料进行照射&#xff0c;并测量背向散射的电子的衍射模式&#xff0c;可以提供关于材料微观结构的详细信息。这项技术结合了…

DAY 75 【分布式应用】消息队列之卡夫卡 + EFLFK集群部署

pache公司的软件包官方下载地址&#xff1a;archive.apache.org/dist/ 注&#xff1a;kafka从3.0版本之后&#xff0c;不再依赖zookeeper Zookeeper 概述 官方下载地址&#xff1a;https://archive.apache.org/dist/zookeeper/ Zookeeper 定义 Zookeeper是一个开源的分布式…