MIMIC数据库数据清洗实操指南

官方
阅读 12 0 收藏 0 2025-07-04 10:01:00

数据获取与准备

需先通过考试获取CITI证书,然后申请MIMIC数据库的权限,下载并配置数据到电脑上,利用SQL语句提取变量,包括暴露指标、结局变量、研究人群和协变量,下载数据到文件夹中。

提取的语句参考:

select () from表格 where 限制条件

数据合并

setwd("D:\\OSA\\dataset")

 #自己的文件路径,注意不要有子文件夹

library(dplyr)

####读取合并数据

filenames<-list.files()
data<-read.csv(filenames[1])
for(i in2:length(filenames)){
  data1<-read.csv(filenames[i],na.strings ="NULL")
  data<-merge(data,data1,by="subject_id",all=T)
  data<-data[!duplicated(data$subject_id),]
}

数据清洗

▶ 选择子集:根据自己的纳入和排除标准去掉非自己的研究对象的人;包括非研究疾病的对象、自变量缺失、结局变量异常、协变量的异常值。

data<-data[-which(is.na(data$osa)),]

#类似于这样

▶ 协变量的处理:主要包括协变量的数量、内容、格式。

  • 数量:分类变量和连续变量的缺失值的处理方式不同,如果是分类变量,一般直接剔除缺失值(MIMIC数据库里的分类协变量一般不会有缺失值,除了护理记录里的变量),连续变量的缺失值需要根据其缺失值的百分比去选择不同的处理方式,如果缺失占比>20%,一般整个变量全部剔除(样本量比单个协变量更重要),如果缺失占比小于20%,则采用多重插补进行插补。

which(colSums(is.na(data))/1118>0.2)
data<-data[,-c(15,27,28,32,33,35,36,37,38)]

▶ 使用mice包进行多重插补,以随机森林方法为例

library(mice)
imp<-mice(data[2:N],##指定数据
          m=5,##插补的次数
          printflag=FALSE,
          seed=2025)##随机数种子
data[2:N]<-complete(imp)
  • 内容:分类变量转化为对应的不同类比,如有无疾病;不同性别;不同种族等等;连续变量的内容主要针对其异常值,选择剔除异常值或者对其异常值进行转化,常用的包括盖帽法等。

data$race<-ifelse(grepl("WHITE",data$race),"WHITE",
                  ifelse(grepl("BLACK",data$race),"BLACK","OTHERS"))
  • 格式:连续变量的格式转化为数值型变量;分类变量的格式转化为因子型变量。

data[,c(2:38)] <-lapply(data[,c(2:38)],as.numeric)
data[,c(39:60)] <-lapply(data[,c(39:60)],as.factor)

评论列表

发表评论