R语言 1:2 1:n 倾向性评分匹配法PSM 一个病例多个对照 MatchIt包
1:2 /1:N 倾向性评分匹配法PSM, 条件Logistic回归
MatchIt包进行倾向性评分匹配法(Propensity Score Matching, PSM)主要是1:N匹配。一个病例对应2个对照等。
MatchIt包帮助文档MatchIt.pdf
1:1匹配也可以参考逆概率加权笔记IPTW
结果分析采用条件logistic回归
# --------PSM 1:N----------
#加载包
library(MatchIt)
#加载数据
data <- read.csv("MatchIt_data.csv")
names(data)
#多变量因子化
str(data)
data[,4:8]<-lapply(data[,4:8],as.factor)
#matchlist <- matchit(Group ~ sex+age+drink+hypertension+diabetes+smoke, data=data,method = "nearest",distance = "glm", #caliper = 0.05, # 卡钳值ratio = 2, # 1:N 匹配replace = F) # 不替换
summary(matchlist)
# 提取匹配后的病例对照
matchdata<- match.data(matchlist,group = "all",distance = "distance",weights = "weights",subclass = "subclass",data = NULL,include.s.weights = TRUE,drop.unmatched = TRUE)
table(duplicated(matchdata$id))
table(matchdata$Group) # 匹配后
table(data$Group) # 匹配前#排序配对子
matchdata$subclass <- sort(matchdata$subclass)
#查看配对子情况,有的病例只有一个对照
a=table(matchdata$subclass);table(a)match2data <- data.frame()
for (i in seq_along(table(matchdata$subclass))) {if(table(matchdata$subclass)[i]==2){match2data[i,1]=i}
}
match2data <- tidyr::drop_na(match2data,V1)
names(match2data)[1] <- "subclass"
match2data$subclass <- as.factor(match2data$subclass)
match2data2 <- dplyr::left_join(match2data,matchdata)#-------制作表格-----------
library(tableone)vars <- c("sex","age","smoke","drink","hypertension","diabetes" )
catVars <- c("sex","drink","hypertension","diabetes","smoke" )
nonVars <- c("age")
#建立表格
tabMatched <- CreateTableOne(vars = vars, strata = "Group", factorVars = catVars,data = matchdata, addOverall = TRUE,#添加Overall列的分析结果 test = TRUE)
#最终表格
tab5 <- print(tabMatched, showAllLevels = TRUE, #显示所有水平,不折叠cramVars = catVars, nonnormal = nonVars, #exact ="M",catDigits=2, #分类变量保留小数位数contDigits=2, #连续变量保留小数位数quote = FALSE, #不显示引号 noSpaces = TRUE, #是否删除为对齐而添加的空间。#如果您希望自己在其他软件中对齐数字,请使用此选项。printToggle = FALSE #输出matrix
)
tab5
write.csv(tab5, "Table_One2.csv", quote=TRUE, row.names=TRUE) #------PSM的条件logistic回归----------
library(reportReg);library(survival)
model <- clogit(Group~ hypertension+age+ strata(subclass), data=matchdata)
reportReg(model)
summary(model)
问题:1:2或1:N有的病例只能匹配上一个对照,并不是全部都是一个病例有两个对照与其匹配,测试数据也展现这样的结果。
是否需要根据配对子把1:1的去掉?然后保留1:2的数据???
R语言 1:2 1:n 倾向性评分匹配法PSM 一个病例多个对照 MatchIt包相关推荐
- STATA PSM倾向性评分匹配法 1:1
// 用STATA 进行倾向性评分匹配法1:1 // 特别适用于横断面的病例对照研究,均衡其他因素,重点研究某些因素. // 1:2或多 后续发出 : 逆概率加权 后续发出 //数据先自己经行预处 ...
- R语言3组患者倾向性评分匹配(PSM)
倾向评分匹配(Propensity Score Matching,简称PSM)是一种统计学方法,用于处理观察研究(Observational Study)的数据,在SCI文章中应用非常广泛.在观察研究 ...
- 临床数据的区组实验数据分析 - 倾向性评分匹配 (PSM)
1. 背景知识 在医疗领域,研究一款新药是否有效,通常需要做的是大规模分组实验,treatment(实验组) 与 control(对照组)除了服用的药物有所不同外,其他因素,如:身高.体重.病情等,应 ...
- python倾向匹配得分_在SPSS软件中实现1:1倾向性评分匹配(PSM)分析
谈起临床研究,如何设立一个靠谱的对照,有时候成为整个研究成败的关键.对照设立的一个非常重要的原则就是可比性,简单说就是对照组除了研究因素外,其他的因素应该尽可能和试验组保持一致,随机是最理想的策略!通 ...
- R语言使用MatchIt包进行倾向性匹配分析、使用match.data函数构建匹配后的样本集合、使用可视化分析检验倾向性评分匹配后样本中的所有协变量的平衡情况
R语言使用MatchIt包进行倾向性匹配分析.使用match.data函数构建匹配后的样本集合.使用可视化分析检验倾向性评分匹配后样本中的所有协变量的平衡情况 目录
- R语言使用MatchIt包进行倾向性匹配分析(设置匹配方法为nearest,匹配倾向性评分最近的对照组和病例组,1:1配比)、使用match.data函数构建匹配后的样本集合
R语言使用MatchIt包进行倾向性匹配分析(设置匹配方法为nearest,匹配倾向性评分最近的对照组和病例组,1:1配比).使用match.data函数构建匹配后的样本集合 目录
- R语言使用MatchIt包进行倾向性匹配分析、使用match.data函数构建匹配后的样本集合、通过分析不同分组对应的协变量的均值来判断倾向性评分匹配后样本中的所有协变量的平衡情况
R语言使用MatchIt包进行倾向性匹配分析.使用match.data函数构建匹配后的样本集合.通过分析不同分组对应的协变量的均值来判断倾向性评分匹配后样本中的所有协变量的平衡情况 目录
- R实战 | 倾向性评分匹配(PSM)
PSM 「倾向性评分匹配」(propensity score matching,PSM)是一种用来评估处置效应的统计方法.广义说来,它将样本根据其特性分类,而不同类样本间的差异就可以看作处置效应的无偏 ...
- Propensity Score Matching(PSM)倾向性评分匹配
Propensity Score Matching(PSM)倾向性评分匹配 PSM能够解决什么问题? 在医疗领域,研究一款新药是否有效,通常需要做的是大规模分组实验,treatment(实验组) 与 ...
最新文章
- TypeScript 1
- 读淘宝商品描述页源码delphi版
- 引导加载程序之争: LILO 和 GRUB
- matlab 判断鼠标按下,Matlab:如何通过使用回调来获取当前鼠标在点击位置
- C#LeetCode刷题-二分查找​​​​​​​
- Apache 403 错误。。
- (18)ISE14.7调试核名称与顶层名称不一致导致生成bit报error(FPGA不积跬步101)
- x86架构和arm架构_苹果Mac弃用英特尔芯片成真,ARM架构CPU真比X86香?
- Java基础语法-方法的定义、调用以及static关键字的使用
- 拼命成为有能力为自己老年生活买单的人|独秀日记
- CSS国际化loader - 国际化图片,中东区域适配
- DDS文档数据库服务
- Butterworth低通滤波器
- IIS6/IIS7以上、Nginx、Apache拦截屏蔽垃圾蜘蛛UA爬行降低负载方法IIS7.5如何限制某UserAgent 禁止访问
- 数模论文写作方法2|摘要的技巧
- 我对目前人工智能和机器学习的看法!
- 乘风破浪 顺势而起 海比研究2020中国SaaS新锐企业TOP10重磅发布
- Android Studio下Terminal窗口Window下cmd黑窗口中使用adb命令调试精炼详解
- kermit config files
- [洛谷]P1010 [NOIP1998 普及组] 幂次方