对糖尿病数据(DM.csv)考虑以Age和BMI为协变量进行倾向性评分匹配样本
时间: 2024-05-06 09:19:59 浏览: 107
首先,读取数据集:
```R
library(tidyverse)
library(Matching) #需要安装Matching包
diabetes <- read.csv("DM.csv")
```
接下来,我们需要进行数据清洗和预处理:
```R
#将Age和BMI转化为数值型变量
diabetes$Age <- as.numeric(diabetes$Age)
diabetes$BMI <- as.numeric(diabetes$BMI)
#删除含有缺失值的行
diabetes <- diabetes %>%
drop_na()
#创建倾向性评分模型
psm_model <- glm(Treatment ~ Age + BMI, data = diabetes, family = "binomial")
#计算倾向性分数
psm_score <- pscore(Treatment ~ Age + BMI, data = diabetes, model = psm_model)
```
然后,我们使用 `Match()` 函数进行倾向性评分匹配:
```R
#进行倾向性评分匹配
matched_data <- Match(Y = diabetes$Outcome, Tr = diabetes$Treatment, X = psm_score, caliper = 0.1, M = 1)
#查看匹配结果
summary(matched_data)
```
最后,我们可以根据匹配结果进行进一步的分析和建模。
阅读全文
相关推荐














