1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > R语言完成1:N倾向性评分匹配PSM

R语言完成1:N倾向性评分匹配PSM

时间:2020-10-24 22:09:28

相关推荐

R语言完成1:N倾向性评分匹配PSM

#安装包

> library(MatchIt)> install.packages("Tableone")> library(Tableone)

#数据集整理

#导入数据集

> X2match <- read_sav("Desktop/.../数据/2match.sav")

#预览数据集

> View(X2match)> names(X2match)[1] "id" "sex" "age" "smoke" "solid" "size" "group" "egfr"

#使用数据集

> attach(X2match)

#倾向评分匹配

> m.out<-matchit(group~sex+age+smoke+solid+size,data=X2match,method="nearest",caliper=0.005,ratio=3)

#结果总结

> summary(m.out)Call:matchit(formula = group ~ sex + age + smoke + solid + size, data = X2match, method = "nearest", caliper = 0.005, ratio = 3)Summary of Balance for All Data:Means Treated Means Control Std. Mean Diff. Var. Ratiodistance 0.1293 0.09460.94450.4314sex 1.2767 1.3315 -0.12210.9083age 59.9937 60.0232 -0.00370.7362smoke 0.1321 0.09910.0974.solid 1.0377 1.2809 -1.27220.1808size 1.4384 1.6139 -0.26530.8831eCDF Mean eCDF Maxdistance 0.1743 0.2694sex 0.0274 0.0548age 0.0193 0.0820smoke 0.0330 0.0330solid 0.1216 0.2432size 0.0435 0.1174Summary of Balance for Matched Data:Means Treated Means Control Std. Mean Diff. Var. Ratiodistance 0.1277 0.12770.00011.0034sex 1.2710 1.3172 -0.10300.9154age 59.8516 60.4914 -0.08000.8478smoke 0.1161 0.11290.0095.solid 1.0387 1.03870.00001.0037size 1.4484 1.38310.09861.5315eCDF Mean eCDF Max Std. Pair Dist.distance 0.0007 0.00860.0017sex 0.0231 0.04620.5074age 0.0143 0.08920.8300smoke 0.0032 0.00320.3948solid 0.0000 0.00000.0000size 0.0247 0.08280.5932Sample Sizes:Control TreatedAll 1463. 159Matched (ESS) 354.18155Matched 404. 155Unmatched1059. 4Discarded 0. 0

#匹配后基线结果

> matchdata1=match.data(m.out)> mBL1 <- tableone::CreateTableOne(vars=c("age","sex","smoke","solid","size","egfr"),strata="group",data=matchdata1,factorVars=c("group","sex","smoke","solid"))> print(mBL1,showAllLevels = TRUE)Stratified by grouplevel 0 1 ptestn 404 155age (mean (SD)) xx.02 (x.52) xx.85 (x.97) 0.827sex (%)1 xx2 (xx.8) xx3 (xx.9) 0.5372 xx2 (xx.2)xx (xx.1) smoke (%) 0 xx3 (xx.9) xx7 (xx.4) 0.7261 xx (xx.1)xx (xx.6) solid (%) 1 xx6 (xx.5) xx9 (xx.1) 0.9432 x8 (x.5) x (x.9) size (mean (SD)) x.40 (x.54) x.45 (x.67) 0.388egfr (mean (SD)) x.25 (x.96) x.30 (x.91) 0.551

#倾向评分分布

> plot(m.out, type = 'jitter', interactive = FALSE)

#导出匹配后数据集

> library(foreign)> matchdata1$id<-1:nrow(matchdata1)> write.csv(matchdata1,file="/Users/.../Desktop/.../matchdata01.csv")

#数据展示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。