pm3包1.4版本发布----一个用于3组倾向性评分的R包
目前,本人写的第二个R包pm3包的1.4版本已经正式在CRAN上线,用于3组倾向评分匹配,只能3组不能多也不能少。
可以使用以下代码安装
install.packages("pm3")
什么是倾向性评分匹配?倾向评分匹配(Propensity Score Matching,简称PSM)是一种统计学方法,用于处理观察研究(Observational Study)的数据,在SCI文章中应用非常广泛。在观察研究中,由于种种原因,数据偏差(bias)和混杂变量(confounding variable)较多,倾向评分匹配的方法正是为了减少这些偏差和混杂变量的影响,以便对实验组和对照组进行更合理的比较。
为什么需要做倾向评分匹配?
我们知道RCT的证据力度高,是因为对患者进行了严格的筛选。我们的回顾性研究都是过去的数据,很难像RCT一样进行严格的筛选出两组患者基线相近的基础资料,但我们可以通过倾向评分匹配把回归性的数据进行筛选,把基线资料相近的患者进行匹配,得到近似RCT的效果。
应用场景
1.基线资料不平
2.开展病例对照研究病阳性例数较少,如罕见病研究
3.将众多混杂因素变为一个变量:倾向值
以下为一个实例,没进行匹配前两组患者基线资料相差很大,进行倾向评分匹配后,基线资料近似一致了
1.4版本版本修正了上一个版本的一些错误,上次版本的教程写得不是很满意,这次我从新写一下我们先来看一下pm3函数
pm3 <-function(data,x,y,covs,factor,CALIP)
这里有6个参数,data就是你的数据,x就是你要比较匹配的变量,你可以使用字符也可以使用数字,但是你如果使用数字来表示的话必须是1,2,3,使用0,1,2或者其他的数列都会报错。我们这里是race,y是你要比较的结局变量,covs是协变量的意思,填入你模型模型中的协变量,也就是你要匹配的基线指标,包括连续的和分类的,factor填入变量后会把你数据中的分类变量转成因子,CALIP是卡钳的意思,不填的话默认是0.5.下面我继续以R包自带的早产数据来演示一下,先导入R包和数据
library(pm3)
bc<-prematurity
这是一个关于早产低体重儿的数据(公众号回复:早产数据,也可以获得该数据),低于2500g被认为是低体重儿。数据解释如下:low 是否是小于2500g早产低体重儿,age 母亲的年龄,lwt 末次月经体重,race 种族,smoke 孕期抽烟,ptl 早产史(计数),ht 有高血压病史,ui 子宫过敏,ftv 早孕时看医生的次数,bwt 新生儿体重数值。
假设我们研究的是有不同种族(race)对生出低体重儿(low)的影响。需要对3个种族进行基线资料倾向评分匹配
现在我们不需要像既往一样进行一大堆复杂操作,直接一句话代码,就搞定了
g<-pm3(data=bc,x="race",y="low",covs=c("age","lwt","ptl"),factor=c("ui","low"))
在上一个版本中,factor变量最少要取2个,现在没有限制了,取一个也可以生成数据。重要的事说两遍,x就是你要比较匹配的变量,你可以使用字符也可以使用数字,但是你如果使用数字来表示的话必须是1,2,3,使用0,1,2或者其他的数列都会报错。
g<-pm3(data=bc,x="race",y="low",covs=c("age","lwt","ptl"),factor=c("ui"))
我们把mbc提取出来
mbc<-g[["mbc"]]
进行匹配,这里就过一遍代码了,详细的可以看上一篇
library(tableone)
allVars <-c("age", "lwt", "ptl","ht")
fvars<-c("ht")
tab2 <- CreateTableOne(vars = allVars, strata = "race" ,
data = bc, factorVars=fvars,addOverall = TRUE )
print(tab2,smd = TRUE)
tab1 <- CreateTableOne(vars = allVars, strata = "race" ,
data = mbc, factorVars=fvars,addOverall = TRUE )
print(tab1,smd = TRUE)
在上一个版本中,有粉丝遇到过错误
Error in if ((absDist12 + absDist13) < mindis) { : missing value where TRUE/FALSE needed
在本次R包也进行了修正,消除了错误,这是使用粉丝数据进行的匹配
我们可以看到,匹配后效果很好,大部分变量基本上都P大于0.05了。由于pm3包使用的是for循环进行匹配,速度还是有点慢,我试了一下,数据量在1万的数据大概需要1分钟左右,接下来想使用apply函数来改写它,让它速度更快点,再来就是看看优化一下代码,开发1:2:2的匹配功能。
pm3包1.4版本发布----一个用于3组倾向性评分的R包相关推荐
- pm3包1.8版本发布----一个用于3组倾向性评分的R包
目前,本人写的第二个R包pm3包的1.8版本已经正式在CRAN上线,用于3组倾向评分匹配,只能3组不能多也不能少. 可以使用以下代码安装 install.packages("pm3" ...
- 首发,pm3包,一个用于多组(3组)倾向评分匹配的R包
目前,本人写的第二个R包pm3包已经正式在CRAN上线,用于3组倾向评分匹配,只能3组不能多也不能少. 可以使用以下代码安装 install.packages("pm3") 什么是 ...
- 一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D
一个震撼的交互型3D可视化R包 - rayshader 虽然3D的plot见得比较多了,但是看见这样的R包,我的心还是砰了一下,这个简直不能再好看了! 关键是!!!敲黑板,这个R包超简单!!!对于刚学 ...
- 发布一个用于WinCE的矢量图控件
发布一个在wince操作系统下,采用.net compact framework 1.0 ( c#)开发的矢量图控件,我于2007年3月份集中一个月的经历完成了它.当然,它的前身是2005年12月我写 ...
- linux抓包命令tcptrace,每天学习一个命令:tcpdump 命令行下抓包
tcpdump 是一个运行在命令行下的抓包工具,如果想知道网络中有什么在流通,那么 tcpdump 就是一个很好的工具.它允许用户拦截和显示发送或收到过程中网络连接到该计算机的 TCP/IP 和其他数 ...
- 如何安装旧版本的 R 包
由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. 我们在安装 R 包的时候,经常会发现某个最新的包与当前 R 的版本不兼容. > inst ...
- r语言查找是否存在空值_关于R包安装你知道多少?
在R语言的学习过程中离不了各种R包的安装与使用,要使用某个R包首先得学会如何安装该R包.对于R包的安装你知道的有多少?你知道如何指定安装路径吗?为何你每次重新打开R绘画都需要重新安装R包?今天小编带你 ...
- R语言 image.binarization: 包_想提高文章的引用率?写个R包吧!- 工具准备篇
前言 R语言程序包是R语言的灵魂,是R语言的核心,每一个R语言用户都会使用到R包.2006年3月15日,第一个R包(coxrobust)加入CRAN,截止2020年5月17日,已经有超过15000个R ...
- R包开发每日中国天气
R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可 ...
最新文章
- java常用的7大排序算法汇总
- maven package自己主动部署包
- QUIC 之类的可靠传输协议
- 无失真压缩法可以减少冗余_机考样题(选择题带标准答案).docx
- 桌面云计算: 提供灵活、可靠双保险
- Ajax叠加(Ajax返回数据用Ajax发出)
- 使用ffmpeg获取影片信息
- 计算机木马不会主动传播什么疾病,研究如何制作自动运行的木马病毒以及如何传播...
- js通过身份证计算年龄
- 显卡煲机测试软件,铁三角耳机煲机方法三分钟让您学会煲耳机
- 05JavaScript输出
- testlink批量执行用例
- 微信群发可以分组吗?群组标签分组设置
- 这么用 if-else,小鹿差点被辞退!
- ARCHPR基础破解压缩包密码-掩码爆破
- 爬取百度地图店家信息
- python 机器学习(引言-莺尾花分类)
- win10安装并配置node.js
- gnuplot软件学习笔记
- 上个厕所的功夫弄清楚了ES搜索服务器
热门文章
- hdu1873 看病要排队哦
- win10 xbox登录出现不能登录的解决方法
- 封校大学生在宿舍无聊玩起图像大找茬——一个关于游戏的练手小项目(一起领略Python脚本的风采吧)
- AI绘图:chatGpt,midjourney, discord
- 你以为 CSS 只是个简单的布局?
- 反向代理和正向代理详解
- python中nomodulenamed怎么解决_python:ModuleNotFoundError:Nomodulenamed解决方法
- 斐波那契数列的背景及解决方法
- 埃拉托色尼筛选法------筛选质数
- Android实现直播的博文和流程(全过程,超详细/附源码)