MIMIC 概述
MIMIC-IV(MIT ICU 数据集)包含贝斯以色列狄肯尼斯医学中心 2008-2019 年 ICU 患者数据。 clinResearchKit 封装了 SQL 查询、队列构建和常见生存分析函数。
数据访问
需要预先安装 MIMIC-IV 本地数据库(PostgreSQL)或已提取的 CSV 数据。
适用场景
回顾性队列研究、ICU 死亡风险预测、住院时长分析。
数据合规:MIMIC 数据需完成 CITI 培训并签署数据使用协议后方可申请使用,禁止公开发布原始数据。
01 数据库连接(PostgreSQL)
library(clinResearchKit) # 连接 MIMIC-IV 数据库 conn <- mimic_connect( host = "localhost", port = 5432, dbname = "mimiciv", user = "mimiciv", password = "your_password" ) # 测试连接 mimic_ping(conn) # 查询示例:30天内再入院患者数 mimic_query(conn, " SELECT COUNT(*) AS n_re admits FROM admissions WHERE hadm_id IN ( SELECT hadm_id FROM admissions GROUP BY subject_id, hadm_id HAVING EXTRACT(DAY FROM outtime - admittime) < 30 ) ")
无 PostgreSQL?如果你只有 CSV 提取数据,可直接使用 CSV 加载方式(见下方"无数据库模式")。
02 队列构建
通过 ICD 编码、人口学信息和实验室指标构建研究队列。
# 构建心衰队列(ICD-10:I50.*) cohort <- mimic_cohort( conn, icd_codes = c("I50", "I11"), outcome_var = "hospital_expire_flag", outcome_value = 1, min_age = 18, exclude_codes = c("I26"), # 排除肺栓塞 min_los = 1, # 排除住院<1天 extract_demographics = TRUE, extract_labs = TRUE, extract_vitals = TRUE ) # 查看队列基本信息 str(cohort) mimic_flowchart(cohort)
03 Table 1 与描述性分析
# 生成队列基线特征表(按出院结局分层) tbl1 <- mimic_table1( cohort, strata = "hospital_expire_flag", cat_vars = c("sex", "insurance"), cont_vars = c("age", "los", "sofa", "lactate"), export_path = "mimic_table1.xlsx" ) # 人口学信息提取(单独调用) demo <- mimic_extract_demographics(conn, hadm_ids = cohort$hadm_id)
04 KM 曲线与 Cox 回归
# Kaplan-Meier 生存曲线(住院死亡) km_result <- mimic_km( cohort, time_var = "los", # 住院时长 event_var = "hospital_expire_flag", strata = "sex" # 按性别分层 ) # 绘制 KM 曲线 mimic_km_plot(km_result, title = "ICU 住院死亡 KM 曲线") # Cox 回归(30天死亡风险) cox_result <- mimic_cox( cohort, time_var = "los", event_var = "hospital_expire_flag", formula = ~ age + sofa + lactate + sex ) # 查看 HR print_summary(cox_result)
05 无数据库模式(CSV 数据)
如果你没有部署 PostgreSQL,可以使用已提取的 CSV 数据。
# 加载已提取的 CSV 数据 cohort_csv <- data.table::fread("mimic_cohort.csv") # 查看数据 head(cohort_csv) # 使用 mimic_km(CSV 模式,自动识别非数据库输入) km_csv <- mimic_km( cohort_csv, time_var = "los", event_var = "hospital_expire_flag" )
推荐:使用 CSV 模式更轻量,无需安装 PostgreSQL。 只需在 MIMIC 官方在线查询工具中导出 CSV 即可。