pm3包1.8版本发布----一个用于3组倾向性评分的R包
目前,本人写的第二个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,新版本改动其实在构架来说还是蛮大的,但是做起来应该更简单了,如果有什么问题或建议,欢迎你来告诉我。
pm3包1.8版本发布----一个用于3组倾向性评分的R包相关推荐
- pm3包1.4版本发布----一个用于3组倾向性评分的R包
目前,本人写的第二个R包pm3包的1.4版本已经正式在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语言变成了一门炙手可 ...
最新文章
- D.Digits 思维dp 取log乘积变成加法
- ERP与EWM集成配置---ERP 端(一)
- 024_jdbc-mysql的Dao模式
- 20169205实验一 Java开发环境的熟悉(Linux+IDEA)
- angularjs 工具方法
- 即时消息服务框架(iMSF)应用实例之分布式事务三阶段提交协议的实现
- C#循环给多个控件赋值
- 手机滤镜怎么移植到ps上_一分钟教你电脑端Lr、Ps滤镜预设/手机端Lr预设如何导入【图文教程】...
- java word另存为_Java 网页html转为word并保存为doc文件
- Windows 10中安装.net framework提示已经安装
- SOA安全性解决方案
- 如何成为一名Go开发人员:总共分六步
- 南京大学2019计算机学院复试名单,南京大学计算机科学与技术系2019考研复试名单...
- matlab演示波粒二象性,MATLAB实验电子波动性的Matlab仿真
- Java课程设计--飞翔的小鸟
- 【代码精读】CVP-MVSNet代码结构详细分析
- 螃蟹在剥我的壳,笔记本在写我。 漫天的我落在枫叶上雪花上。 而你在想我。
- 轻松管好团队,就靠RACI模型|优思学院
- 链家数据分析(社招),骗局???
- openssl s_server s_client 相关命令参数