MIMIC-IV Clinical Database

发布时间: 2026-07-20最后更新: 2026-07-24 阅读 71

MIMIC-IV — AI-Ready 医疗数据集 Wikipedia

-> 千方病案医数集 · AI Ready 医疗数据集 Wikipedia
-> 页面版本:v1.0 | 最后医学审核:2026-07-17 | 页面状态:✅ 完整版(Tier 3 壁垒层)
->
-> 本文以「千方数据 Wikipedia Schema v1.0」为标准,融合 Wikipedia MEDMOS 医学条目规范、HuggingFace Dataset Card 规范和 MLCommons Croissant 1.1 元数据标准,覆盖全部 9 大模块、60+ 字段。


INFOBOX

字段
数据集名称 MIMIC-IV Clinical Database
英文名称 Medical Information Mart for Intensive Care IV
别名/简称 MIMIC-IV / MIMIC-4 / MIMIC v3.1
疾病分类 1C10-1C1Z 呼吸系统疾病 / BA00-BE2Z 循环系统疾病 / 1C40-1C4Z 神经系统疾病 / GB40-GB6Z 泌尿系统疾病 / MA00-MA2Z 内分泌营养代谢疾病 等(覆盖 ICU 常见全部诊断大类)
数据模态 结构化(时序 + 表格)、文本(临床笔记)、影像(关联 CXR/ECG)
AI 任务类型 生存分析 / 时序预测 / 分类(多标签) / 回归预测 / 自然语言处理 / 命名实体识别 / 多模态学习 / 因果推断 / 强化学习
样本总数 364,627 名患者 / 546,028 次住院 / 94,458 次 ICU 停留 / 超 4.3 亿条 chartevents 记录
数据大小 原始 CSV:~7 GB(压缩)→ 解压后 PostgreSQL:~100 GB+;关联 MIMIC-CXR 影像:~450 GB
数据格式 CSV(分发) / PostgreSQL(本地) / BigQuery(云端) / WFDB(ECG 波形) / DICOM(CXR 影像)
许可证 PhysioNet Credentialed Health Data License 1.5.0
访问级别 申请审核(需 CITI 伦理培训 + 签署 DUA)
语言 英文
首发日期 2020 年(v1.0);最新 v3.1 发布于 2024-10-11
最后更新 2024-11-12(BigQuery 上线 v3.1)
发布机构 MIT Laboratory for Computational Physiology (LCP) + Beth Israel Deaconess Medical Center (BIDMC)
官方主页 https://physionet.org/content/mimiciv/
下载地址 https://physionet.org/content/mimiciv/3.1/
DOI 10.13026/kpb9-mt58(v3.1)/ 10.1038/s41597-022-01899-x(Scientific Data 论文)
引用次数 主论文被引 3,487 次(Google Scholar,截至 2026 年);MIMIC 全系列论文累计被引 50,000+ 次
AI 就绪度评分 ⭐⭐⭐ (3/5) — 原始数据需大量预处理,但社区工具链成熟

千方 AI 就绪度评分说明

MIMIC-IV 获评 ⭐⭐⭐ (3/5),理由如下:

  • 优势:数据量极大(36万患者),覆盖维度极广(6 模块),社区工具链丰富(mimic-code、MIMIC-Extract、FEMR、MEDS 等),BigQuery 云端访问降低硬件门槛
  • 劣势:原始数据为关系数据库格式,需 SQL→DataFrame→时序对齐三步转换;无官方 train/val/test 划分;itemid 需手动映射到临床概念(4,095 个 ICU itemid + 海量 lab itemid);缺失值比例高且非随机
  • ⚠️ 关键障碍:去标识化日期偏移导致无法结合外部时间特征(如季节、流行病学时间趋势);年龄截断(->89 岁统一标为 91 岁)影响老年病学研究

§1 数据集概览(Overview)

1.1 摘要(summary)

MIMIC-IV(Medical Information Mart for Intensive Care IV)是全球规模最大、使用最广泛的重症监护公开数据库。它包含 2008-2022 年间美国波士顿 Beth Israel Deaconess Medical Center(BIDMC)364,627 名患者的脱敏电子健康记录(EHR),涵盖 546,028 次住院94,458 次 ICU 停留。数据集按来源组织为 6 个模块——医院全院(hosp)、重症监护(icu)、急诊(ed)、胸部 X 光(cxr)、临床笔记(note)和心电图(ecg),提供从入院前急诊分诊到出院后 1 年院外死亡随访的全诊疗周期数据。MIMIC-IV 是医疗 AI 研究的「通用试验场」:几乎每一篇关于 ICU 死亡预测、脓毒症早期预警、住院时长预测、再入院风险建模的机器学习论文都会在此验证。其 BigQuery 云端版本使研究者无需本地数据库即可开展分析,是连接临床医学与 AI 研究的事实标准级基础设施

1.2 为什么重要?(why_it_matters)

MIMIC-IV 在医疗 AI 领域的地位相当于 ImageNet 之于计算机视觉——它不是最大的,但它是使研究成为可能的那个。以下六个维度解释了它为何不可替代:

  1. 唯一的大规模公开 ICU 数据库:全球绝大多数医院 EHR 数据因隐私法规(HIPAA/GDPR)无法公开。MIMIC-IV 通过严格的去标识化(HIPAA Safe Harbor 标准 + 日期随机偏移 + 自由文本清洗)和法律框架(PhysioNet DUA),在数据开放与患者隐私之间找到了唯一可行的平衡点。没有 MIMIC,医疗 AI 研究将倒退 10 年。

  2. 全诊疗链路的纵向数据:不同于单一模态数据集(如只含影像的 CheXpert),MIMIC-IV 从急诊分诊 → 住院诊疗 → ICU 监护 → 出院随访提供连续时间轴,使研究者可以建模疾病的自然史和干预的因果效应。这种纵向性对强化学习、因果推断、疾病轨迹建模等前沿 AI 方向至关重要。

  3. 多模态融合的天然试验田:通过 subject_id,研究者可将结构化时序数据(生命体征、实验室检查)与影像(MIMIC-CXR 胸部 X 光)、波形(MIMIC-IV-ECG)、自由文本(MIMIC-IV-Note)关联。MedMod(2025)已证明 EHR+CXR 多模态融合可将死亡预测 AUROC 提升 2-3%。

  4. 基础模型(Foundation Model)的孵化器:MIMIC-IV 已成为医疗大模型的预训练首选语料。MOTOR 基础模型在 MIMIC-IV 上预训练后,住院死亡预测 AUROC 达 0.937(vs LightGBM 0.880、逻辑回归 0.833),证明了大规模自监督学习在 EHR 领域的可行性。

  5. 可复现性的基石:MIT-LCP 团队维护的 mimic-code 仓库提供了标准化的数据提取 SQL 脚本和概念定义(如 Sepsis-3 标准、SOFA 评分),解决了"不同研究用同一数据库却不可比较"的经典问题。

  6. 教学与教育的公共品:因为免费可用,MIMIC 已成为全球医学信息学、生物统计学、数据科学课程的标准教学数据集,累计培养了数以万计兼具临床知识和数据技能的跨学科人才。

1.3 同类数据集横向对比(comparison)

数据集 样本量 模态 时间跨度 标注质量 访问难度 AI 就绪度 社区规模
MIMIC-IV 364,627 患者 / 54.6万住院 结构化+文本+影像+波形 2008-2022 临床真实数据 ⭐⭐⭐(需培训) ⭐⭐⭐ 极大
MIMIC-III ~40,000 患者 结构化+文本 2001-2012 临床真实数据 ⭐⭐⭐(需培训) ⭐⭐⭐ 极大(渐被IV取代)
eICU-CRD 200,859 住院 结构化 2014-2015 临床真实数据 ⭐⭐⭐(需培训) ⭐⭐⭐ 中等
AmsterdamUMCdb 23,106 住院 结构化+波形 2003-2016 临床真实数据 ⭐⭐⭐(需申请) ⭐⭐ 较小
HiRID 33,905 住院 结构化(高频) 2008-2016 临床真实数据 ⭐⭐(开放) ⭐⭐ 较小
CheXpert 224,316 影像 影像(X光) 2002-2017 自动标注器(NLP) ⭐(开放) ⭐⭐⭐⭐
UK Biobank 500,000 受试者 结构化+影像+基因组 2006-至今 多模态深度表型 ⭐⭐⭐⭐⭐(严格审核) ⭐⭐⭐ 极大

-> 关键差异:MIMIC-IV 是唯一同时具备「大规模 + ICU 全维度 + 纵向时序 + 多模态 + 社区成熟工具链 + 全球最大用户群」的数据集。eICU-CRD 虽覆盖多中心(208 家医院),但数据窗口极短(1-1.5 年)且无影像/波形关联。UK Biobank 规模更大但聚焦人群队列研究而非急诊/重症场景,且访问审批周期长达数月。

1.4 历史沿革(history)

MIMIC 项目的历史本身就是医疗数据开放运动的缩影:

时间 里程碑
2001-2007 MIMIC-II:首个公开 ICU 数据库,单中心(BIDMC),数据来源于 Philips CareVue 和 iMDSoft MetaVision 两套监护系统
2015 MIMIC-III 发布:扩展到 ~40,000 患者,成为深度学习进入医疗领域的关键推动者。发展了 PhysioNet 凭证化访问机制
2020 MIMIC-IV v1.0 发布:重大架构重构——从扁平模式转向模块化设计(hosp/icu),增加急诊(ed)模块,支持 ICD-10
2022 MIMIC-IV v2.0:引入 CXR 关联模块,使结构化 EMR 与胸部 X 光影像可关联分析
2023-01 MIMIC-IV v2.2:Bug 修复版本,稳定化
2023-01 Scientific Data 论文发表(Johnson et al., 2023),系统性介绍 MIMIC-IV 的架构设计理念、数据组织方式和去标识化策略。累计被引 3,487 次
2023 MIMIC-IV-Note v2.2 发布:提供去标识化自由文本临床笔记(出院小结、放射学报告),NLP 研究进入新纪元
2024-07 MIMIC-IV v3.0 发布:重大更新——新增 2020-2022 年数据,患者数从 29.9 万跃升至 36.4 万,住院数从 43.1 万增至 54.6 万。新增院外死亡 1 年随访,改进语言字段标准化,扩展保险类别为 Medicare/Medicaid/Private/Self-pay/Free charge/Other 六类
2024-10 MIMIC-IV v3.1 发布:Bug 修复——修正 labevents itemid 在 v2.2→v3.0 之间的意外变更,删除 2 个孤立的 subject_id。当前最新稳定版
2024-11 MIMIC-IV v3.1 上线 Google BigQuery,实现云端即查即用

-> 版本选择建议:新项目一律使用 v3.1。如果研究中涉及与 MIMIC-III 的对比(如基准复现),需注意 v3.0+ 新增的 2020-2022 数据包含 COVID-19 大流行期间的住院记录,可能引入与之前版本不可比的分布偏移。

1.5 典型 AI 应用场景(use_cases)

  1. ICU 死亡风险预测:使用入 ICU 后 24/48 小时的时序数据(生命体征、实验室检查、人口统计)预测住院死亡——这是 MIMIC 上最经典的基准任务,已有 1000+ 篇论文。
  2. 脓毒症早期预警与治疗策略优化:基于 Sepsis-3 标准识别脓毒症患者,预测休克发生和死亡率,并利用强化学习优化液体复苏和血管活性药物策略。
  3. 住院时长 (LOS) 预测与资源调度:预测 ICU 和总住院时长,辅助床位管理和医保控费决策。
  4. 疾病轨迹建模与表型发现:利用 ICD 编码序列和时序临床事件,通过 LSTM/Transformer 建模疾病进展轨迹,发现新的临床亚型。
  5. 临床自然语言处理 (Clinical NLP):利用 MIMIC-IV-Note 中的出院小结和放射学报告,训练医学 NER、关系抽取、文本摘要、Text-to-SQL(EHRSQL 基准)等模型。
  6. 多模态预测:融合同一患者的 EHR 时序数据 + 胸部 X 光影像 + 心电图波形,构建超越单一模态性能的预测模型。
  7. 因果推断与反事实推理:利用纵向观察数据,通过倾向性评分匹配、工具变量、G-computation 等方法评估治疗措施的因果效应。
  8. 公平性与算法偏见审计:MIMIC-IV 包含种族、性别、保险类型等敏感属性,已成为医疗 AI 公平性研究的标准评估数据集。
  9. 强化学习与序贯决策:将 ICU 治疗过程建模为 MDP,训练 AI Agent 学习最优的机械通气脱机策略、液体管理策略。

§2 医学背景(Medical Context)

2.1 ICD-11 疾病编码(icd11_code)

MIMIC-IV 覆盖的疾病谱极广——ICU 收治患者通常病情危重、多病共存。以下为最主要的 ICD-11 覆盖大类:

ICD-11 编码 疾病分类(中文) 在 MIMIC-IV 中的代表性
BA00-BE2Z 循环系统疾病 心血管疾病(心衰、心梗、心律失常)是 ICU 最常见入院诊断
1C10-1C1Z 呼吸系统疾病 呼吸衰竭、肺炎、ARDS 是机械通气的主要原因
1C40-1C4Z 神经系统疾病 缺血性/出血性脑卒中、癫痫持续状态
1G40-1G4Z 脓毒症及相关综合征 脓毒症、脓毒性休克(Sepsis-3 标准)是 ICU 主要死因
GB40-GB6Z 泌尿系统疾病 急性肾损伤 (AKI) 影响约 50% 的 ICU 患者
MA00-MA2Z 内分泌、营养或代谢疾病 糖尿病及其急性并发症(酮症酸中毒、高渗性昏迷)
1A00-1H0Z 某些感染性疾病或寄生虫病 各种感染/脓毒症的感染源
NA00-NF2Z 损伤、中毒或外因的某些其他后果 创伤、中毒、术后监护
2C00-2F9Z 肿瘤 恶性肿瘤的围手术期管理和并发症处理
6A00-6E8Z 精神、行为或神经发育障碍 谵妄、药物过量和戒断综合征

2.2 疾病简介(disease_description)

重症监护医学面对的并非单一疾病,而是危及生命的急性器官功能障碍综合征。根据 Sepsis-3 定义(Singer et al., JAMA 2016),ICU 核心治疗对象是"因感染或非感染因素导致的多器官功能衰竭高风险患者"。全球每年约 3,000 万人需要 ICU 级别的救治,ICU 死亡率在 8-30% 之间(取决于病种和国家/地区),且存活者中相当比例遗留长期功能障碍(Post-Intensive Care Syndrome, PICS)。ICU 资源消耗巨大——占美国医院总床位的 8-10%,却消耗了约 13-20% 的医院总预算和约 0.7-1.0% 的 GDP。

2.3 临床任务定义(clinical_task)

MIMIC-IV 支撑的临床 AI 任务可归纳为五个层次,从最基础的描述性分析到最高阶的决策优化:

层次 任务类型 具体示例 临床意义
L1 描述 回顾性流行病学分析 统计某病种的 ICU 死亡率、LOS 分布 理解现状,发现差异
L2 预测 风险分层 死亡预测 (AUROC 0.85-0.95)、脓毒症提前 4-12h 预警 早期识别高危患者
L3 诊断 表型发现 通过聚类发现 ARDS 亚表型、脓毒症亚型 精准分型 → 个体化治疗
L4 干预 因果推断 评估早期 vs 延迟肾脏替代治疗的因果效应 指导治疗时机选择
L5 决策 序贯优化 强化学习优化机械通气脱机策略、液体管理 自动化的动态治疗策略

-> 最重要的区分:MIMIC-IV 是观察性数据,不是随机对照试验(RCT)数据。L4-L5 层的研究必须通过严格的因果推断方法(倾向性评分、工具变量、边际结构模型、G-methods)来近似因果效应,否则"关联"会被误读为"因果"。

2.4 患者人群特征(patient_population)

人口统计学
特征 分布
年龄 中位年龄约 65 岁(IQR 52-78),->89 岁统一标记为 91 岁(去标识化截断)
性别 男性约 54%,女性约 46%
种族 白人约 65-70%、非裔约 10%、亚裔约 2-3%、西班牙裔约 3-4%、其他/未知约 15%
保险类型 (v3.0+) Medicare(老年/残疾)、Medicaid(低收入)、Private(商业保险)、Self-pay(自费)、Free charge、Other
婚姻状态 已婚/有伴侣、单身、丧偶、离异
入排标准

纳入:2008-2022 年间在 BIDMC 急诊科就诊或入住任何 ICU 类型(MICU/SICU/CCU/CSRU/NICU/TSICU)的所有患者

排除

  • 未入住 ICU 或急诊科的住院患者不在此数据集内
  • 数据采集并非基于特定疾病,而是基于就诊地点(急诊科和 ICU)
  • 新生儿 ICU (NICU) 有部分覆盖但不完整——MIMIC 项目建议关注新生儿的研究者使用专门的 NICU 数据集
关键局限
  1. 单中心偏倚:所有数据来自一家位于波士顿的学术医疗中心。患者群体代表的是美国东北部城市三级转诊中心的特定人群,不能直接推广到社区医院、农村医院或其他国家。
  2. 转诊偏倚:BIDMC 作为哈佛医学院的教学医院,接收大量外院转诊的疑难危重患者,这部分患者的病情严重程度和治疗历史与直接入院的患者不同。
  3. 选择偏倚:只有存活到入院(并需入住 ICU)的患者才被记录,院前死亡和轻症患者在数据中不可见。

2.5 临床意义(clinical_significance)

ICU 是现代医院中最数据密集但决策最困难的场所。一个典型 ICU 患者每天产生约 1,500-2,000 个数据点(心率、血压、氧饱和度每分钟记录;实验室检查每 4-6 小时更新;药物剂量持续调整),远超人类临床医生的信息处理能力。与此同时,ICU 中延迟识别病情恶化是导致可预防死亡的首位原因。MIMIC-IV 为研究者提供了构建 AI 预警系统、决策支持工具、自动化表型识别算法的基础数据,其最终目标是将 ICU 的海量数据转化为可行动的临床洞察

从经济学角度,ICU 院内死亡率的微小改善意味着巨大的社会和经济效益。仅以美国为例:ICU 年住院约 500 万人次,若 AI 模型能将 ICU 死亡率从 10% 降至 9%(绝对风险降低 1%),每年可挽救 50,000 条生命

2.6 金标准 / 参考标准(gold_standard)

这是理解 MIMIC-IV 数据可靠性的最关键问题

数据类型 金标准 / 参考依据 可信度
诊断编码(ICD-9/10) 由临床编码员根据出院病历分配(非医生直接输入),用于医保报销而非研究 ⭐⭐⭐ — 存在感度/特异度权衡,部分诊断的编码准确率仅 60-80%
实验室检查结果 来自 BIDMC 中心实验室,通过质量控制和室间质评 ⭐⭐⭐⭐⭐ — 数值可靠,但需注意不同时期的参考范围变更
生命体征 来自 ICU 床旁监护仪(iMDSoft MetaVision),由护理人员验证 ⭐⭐⭐⭐ — 高频但含伪差(如翻身时的血压波动)
死亡结局 院内死亡来自 EHR 记录;院外死亡来自社会保障管理局(SSA)Death Master File ⭐⭐⭐⭐ — 院内死亡准确,院外死亡约 5-15% 漏报率(2011 年后 SSA 移除部分受保护记录)
药物记录 来自电子医嘱系统(CPOE)和药物执行记录(eMAR) ⭐⭐⭐ — 记录了医嘱和使用,但不等于患者实际服药
自由文本笔记 医生/护士的日常记录,去标识化处理;诊断推理过程隐含在文本中 ⭐⭐⭐ — 信息丰富但非结构化,需 NLP 提取
影像报告 放射科主治医师的最终报告 ⭐⭐⭐⭐ — 但 CheXpert 自动标注器的误差率为 5-15%

-> ⚠️ 核心认知:ICD 编码 ≠ 真实诊断。例如,ICD-10 中的"脓毒症"(A41.x) 编码可能因为医保报销压力而被过度使用或因为"present on admission" flag 的设置方式而产生误分类。建议研究者将 ICD 编码与实验室结果(如血乳酸 ≥ 2 mmol/L)、生命体征(SOFA 评分 ≥ 2)结合使用,以 Sepsis-3 临床标准而非 ICD 编码定义脓毒症队列。


§3 数据集规格(Specifications)

3.1 模态详细说明(modality_detail)

MIMIC-IV 是以结构化时序数据为核心,以文本和影像为扩展的多模态数据集:

  1. 结构化时序数据(核心):

    • 高频数据:生命体征(心率、血压、呼吸频率、SpO₂、体温),采样频率从每分钟到每 15 分钟不等,存储在 chartevents 表中(4.33 亿行)
    • 中频数据:实验室检查结果(血常规、生化、血气、凝血、微生物),存储在 labevents 表中(1.18 亿行),采样间隔为 4-12 小时
    • 低频数据:微生物培养结果(24-72h 出结果)、药物处方(按日/按次)、出入量记录(按小时)
  2. 结构化表格数据:患者人口统计、诊断编码(ICD-9/10)、手术编码、DRG 编码、转科记录、账单信息

  3. 自由文本(需单独申请 MIMIC-IV-Note):

    • 出院小结(每个住院 1 份)
    • 放射学报告(每份影像检查对应 1 份)
    • 心电图报告
    • 约 300 万份去标识化临床文档
  4. 影像(通过 subject_id 关联,需单独申请):

    • MIMIC-CXR:377,110 张胸部 X 光片(DICOM + JPEG),2011-2016 年,65,079 名患者
    • MIMIC-IV-ECG:12 导联心电图波形(WFDB 格式),~800,000 条记录,约 90.4 GB 未压缩

3.2 样本总数(total_samples)

数据层级 数量 备注
唯一患者 (subject_id) 364,627 其中 223,452 至少住院一次
住院次数 (hadm_id) 546,028 覆盖 2008-2022
ICU 停留 (stay_id) 94,458 分布在各类型 ICU
急诊就诊 (ed stay_id) 423,587 仅 v3.0+ 统计
chartevents 行数 432,997,491 ICU 床旁监护数据
labevents 行数 118,412,243 实验室检查数据
院外 1 年死亡随访 v3.0+ 新增 SSA Death Master File

3.3 数据格式详细说明(data_format_detail)

格式 用途 存储量 备注
CSV (.csv.gz) PhysioNet 官方分发格式 ~7 GB 压缩,解压后数据库 ~100 GB 需导入 PostgreSQL 使用
PostgreSQL 本地数据分析首选 ~100 GB(含索引后 ~150 GB) MIT-LCP 提供完整建库脚本(mimic-code)
Google BigQuery 云端查询(零本地存储) 按查询量计费 v3.1 已上线;schema: mimiciv_v3_1_hosp / mimiciv_v3_1_icu
WFDB ECG 波形数据 原始 ~90.4 GB 未压缩 使用 wfdb-python 库读取
DICOM / JPEG CXR 胸部 X 光 ~450 GB(MIMIC-CXR JPEG) 通过 subject_id 关联
FHIR / OMOP CDM 标准互操作格式 需转换 MIT-LCP 提供参考 export 脚本

3.4 存储空间需求(storage_size)

组件 压缩包 解压/导入后 最低推荐磁盘
MIMIC-IV v3.1 CSV ~7 GB 15 GB
PostgreSQL 数据库 ~100 GB(含索引 ~150 GB) 250 GB SSD
MIMIC-CXR JPEG ~120 GB ~450 GB 1 TB
MIMIC-IV-ECG ~33.8 GB ~90.4 GB 200 GB
全量本地部署 ~160 GB ~700 GB 1 TB+ SSD

-> 💡 建议:对大多数研究者,推荐使用 BigQuery 云端方案——零本地存储、零导入时间、实时查询最新数据。下载成本可在 PhysioNet Cloud 页面查询。

3.5 标注方式(annotation_method)

MIMIC-IV 的"标注"与传统 ML 意义上的标注有本质不同——它是临床实践的副产品,而非为 AI 研究专门创建的标注:

标签类型 来源 标注方式
诊断标签 (Phenotype Labels) ICD-9/10 编码 (diagnoses_icd 表) 专业编码员根据出院病历分配,非医生直接标注
死亡标签 (Mortality) EHR 出院状态 + SSA Death Master File 院外死亡通过社保系统匹配(最长随访至出院后 1 年)
再入院标签 后续住院记录 通过同一 subject_id 的下一次 hadm_id 确定,30 天再入院为通用标准
临床事件时间 chartevents 的 charttime 由床旁设备自动记录 + 护理人员手动验证
放射学标签(CXR) MIMIC-CXR 放射报告 CheXpert 自动标注器 (CheXpert Labeler) 从放射报告中提取 14 类标签;含不确定类 (-1.0)
ECG 诊断 MIMIC-IV-ECG 心内科报告 心内科医生出具的结构化报告
自由文本 NER 标注 需社区自行创建 MIMIC-IV-Note 提供原始文本;i2b2 2010/2012/2014 等社区标注覆盖部分子集

3.6 标注者资质(annotator_info)

角色 资质 影响因素
临床数据录入者 BIDMC 注册护士、呼吸治疗师、临床药师 数据录入培训,但存在班次交接时的延迟录入
诊断编码员 持有 AHIMA 认证的编码专业人员(CCS/CCS-P) 目标为医保报销优化而非研究精度
放射科医师 BIDMC 放射科主治医师(board-certified) 最终报告,质量高;但不同读片人之间的变异性存在
心电图医师 BIDMC 心内科主治医师 标准化 12 导联判读

-> 重要限制:没有正式的一致性检验(Inter-rater Reliability)数据公布。诊断编码的编码员间变异性未报告;生命体征验证的护理人员间一致性未知。

3.7 数据采集时间范围(collection_period)

2008 年 6 月 — 2022 年 12 月(v3.0 扩展至 2022 年)。

  • v2.2 及之前:2008-2019
  • v3.0+:扩展至 2020-2022(包含 COVID-19 大流行期间数据)

-> ⚠️ COVID-19 影响:2020-2022 新增数据覆盖 COVID-19 大流行期间。在此期间,ICU 病例组合(case mix)、死亡率基线、住院时长分布可能与之前年份有显著差异。使用 v3.0+ 的研究应注意按年份分层分析或排除大流行期间的潜在混杂。

3.8 地理覆盖(geographic_coverage)

单一地点:Beth Israel Deaconess Medical Center (BIDMC),位于美国马萨诸塞州波士顿市。

  • 类型:三级学术医疗中心(哈佛医学院教学医院)
  • 服务人群:波士顿都市区 + 新英格兰地区的转诊患者
  • 床位:约 673 张(含 77 张成人 ICU 床位)

3.9 采集设备规格(equipment_spec)

设备 型号/系统 备注
ICU 监护系统 iMDSoft MetaVision 统一的临床信息系统,所有 ICU 数据均从此处提取
HIS 系统 定制 EHR(BIDMC 自研) 全院级电子病历系统
实验室分析仪 BIDMC 中心实验室标准设备 具体型号未公开,但符合 CLIA 认证
影像设备 多种型号(Siemens / GE / Philips) 具体型号见 MIMIC-CXR 的 DICOM metadata
心电图机 GE MUSE 心电管理系统 标准 12 导联,500 Hz 采样率

§4 数据结构详解(Data Schema)

4.1 模块总览与数据流向

MIMIC-IV v3.1 包含 6 个模块,共计 38 张主要数据表(hosp 22 张 + icu 9 张 + ed 6 张 + cxr 2 张 + note + ecg):

                          patients (subject_id)
                              │
                ┌─────────────┼─────────────┐
                ▼             ▼             ▼
          admissions      MIMIC-CXR    MIMIC-IV-ECG
          (hadm_id)       (dicom_id)   (study_id)
                │
      ┌─────────┼─────────┬──────────────┐
      ▼         ▼         ▼              ▼
    hosp      icu        ed            note
   (全院)    (ICU)     (急诊)          (笔记)
   22表      9表       6表            文本
      │         │
      └────┬────┘
           ▼
    数据整合层 (Derived Tables)
    如:SOFA、SAPS II、Sepsis-3 等
核心标识符 (Identifiers)
subject_id ──→ 患者唯一标识(跨模块、跨版本的纽带)
    │
    └── hadm_id ──→ 唯一住院标识(一次入院 = 一个 hadm_id)
           │
           ├── stay_id ──→ ICU 停留标识(一次 ICU = 一个 stay_id)
           │                  可能多个 stay_id 属于同一个 hadm_id
           └── ed stay_id ──→ 急诊就诊标识

4.2 hosp 模块核心表字段(field_table)

patients 表 — 患者人口统计
字段名 数据类型 说明 示例值 AI 用途
subject_id INT 患者唯一标识 10002341 主键,跨表关联
gender CHAR(1) 性别 M / F 偏倚检测、分层分析
anchor_age INT 锚定年龄(入院时) 67 协变量、年龄标准化
anchor_year INT 锚定年份(替换实际入院年份) 2150 推断时间段(2008-2022)
anchor_year_group ENUM 时间段分组 2017-2019 按时间段分层
dod TIMESTAMP 死亡日期(去标识化) 2155-03-12 生存分析标签
admissions 表 — 住院核心信息
字段名 数据类型 说明 示例值 AI 用途
hadm_id INT 住院唯一标识 20012345 关联住院维度数据
subject_id INT 患者标识 10002341 关联患者
admittime TIMESTAMP 入院时间 2153-08-25 07:15 T0 参考点
dischtime TIMESTAMP 出院时间 2153-08-30 14:15 LOS 计算终点
admission_type VARCHAR 入院类型 EMERGENCY/ELECTIVE/URGENT 数据筛选
insurance VARCHAR 保险类型 Medicare/Medicaid/Private/Self-pay/Other/Free charge (v3.0+) 社会经济协变量
language VARCHAR 语言 ENGLISH/SPANISH (v3.0+ 标准化) 自然语言分析
marital_status VARCHAR 婚姻状态 MARRIED/SINGLE/WIDOWED 社会支持协变量
ethnicity VARCHAR 种族 WHITE/BLACK/AFRICAN AMERICAN/ASIAN 公平性研究关键字段
hospital_expire_flag TINYINT 住院死亡标志 0/1 最常用标签之一
diagnoses_icd 表 — 诊断编码
字段名 数据类型 说明 示例值 AI 用途
subject_id + hadm_id INT 行列标识 关联住院
seq_num INT 诊断优先级 1-39(1=主要诊断) 区分主要/次要诊断
icd_code VARCHAR ICD-9 或 ICD-10 编码 I10 (ICD-10: 原发性高血压) 表型定义
icd_version INT ICD 版本 9 或 10 统一编码体系
labevents 表 — 实验室检查
字段名 数据类型 说明 示例值 AI 用途
itemid INT 检测项目 ID 50868 映射到具体检测项 (d_labitems)
charttime TIMESTAMP 采样时间 2153-08-25 09:30 时序对齐的核心
valuenum DOUBLE 数值结果 12.5 模型输入特征
valueuom VARCHAR 单位 mg/dL 单位标准化
ref_range_lower/upper DOUBLE 参考范围 0.6/1.2 异常判断
flag VARCHAR 异常标记 abnormal 快速筛选异常值

4.3 icu 模块核心表字段(field_table)

icustays — ICU 停留记录
字段名 数据类型 说明 示例值 AI 用途
stay_id INT ICU 停留唯一标识 30001234 ICU 模块主键
subject_id + hadm_id INT 关联标识 跨表关联
first_careunit VARCHAR 首个 ICU 类型 MICU/SICU/CCU/CSRU/NICU/TSICU 数据分层
last_careunit VARCHAR 最后 ICU 类型 转科追踪
intime TIMESTAMP 入 ICU 时间 2153-08-25 10:00 ICU T0
outtime TIMESTAMP 出 ICU 时间 2153-08-28 16:00 ICU LOS 终点
los DOUBLE ICU 住院时长(天) 3.25 目标变量
chartevents — 床旁监护数据(最大表)
字段名 数据类型 说明 示例值 AI 用途
itemid INT 监测项目 ID 220045 (心率) 映射到具体指标 (d_items)
charttime TIMESTAMP 测量/记录时间 2153-08-25 10:05 时序对齐
storetime TIMESTAMP 护理人员输入/验证时间 2153-08-25 10:12 ⚠️ charttime vs storetime 差异
valuenum DOUBLE 数值结果 98.0 关键:用于数值计算
value VARCHAR(200) 原始值(含非数值) 98 / AWAKE 文本值需特殊处理
valueuom VARCHAR(20) 单位 bpm 单位一致性检查
warning SMALLINT 护理人员标记的警告 0/1 数据质量指示
d_items — ICU 数据项字典
字段名 说明 示例
itemid 数据项 ID(主键) 220045
label 项目名称 Heart Rate
abbreviation 缩写 HR
linksto 关联的事件表 chartevents
category 类别 Routine Vital Signs
unitname 测量单位 bpm
param_type 数据类型 Numeric
lownormalvalue 正常下限 60
highnormalvalue 正常上限 100

4.4 标签分布:住院死亡率(label_distribution)

住院死亡率是 MIMIC-IV 上最常用的基准标签:

标签值 住院次数 占比 说明
存活 (0) ~497,000 ~90.7% 高度不平衡
死亡 (1) ~49,000 ~9.3% 少数类
总计 546,028 100% 比例约 10:1

-> ⚠️ 重要提示:这是全量住院的死亡率。若限定为ICU 患者,死亡率约 12-15%;若限定为脓毒症患者,28 天死亡率约 21%;若限定为心脏骤停后 ICU 患者,死亡率可高达 50%+。定义队列的方式决定了你的标签基线——这是 MIMIC 研究中最常见的"苹果和橘子"比较问题。

4.5 数据层级关系(data_hierarchy)

患者 (subject_id)
  ├── 住院 1 (hadm_id = H1)
  │     ├── 急诊就诊 (ed: stay_id = E1)
  │     ├── ICU 停留 1 (icu: stay_id = S1)
  │     │     ├── chartevents 每小时记录 (数百条/天)
  │     │     ├── labevents 每次抽血结果
  │     │     ├── inputevents 每次输液
  │     │     └── outputevents 每小时尿量
  │     ├── 转科到普通病房(transfers 表记录)
  │     └── ICU 停留 2 (icu: stay_id = S2)  ← 同一住院的第二次 ICU 停留
  ├── 住院 2 (hadm_id = H2)
  │     ├── ...(可能没有 ICU)
  │     └── 出院,1 年内死亡(SSA Death Master File)
  └── 住院 3 (hadm_id = H3) ...

关键关系规则

  • 一个 subject_id 可有多个 hadm_id(多次住院)
  • 一个 hadm_id 可有多个 stay_id(一次住院内多次进出 ICU)
  • 一个 stay_id 只有一个 hadm_id(每次 ICU 停留属于一次住院)
  • CXR 和 ECG 通过 subject_id(可能还有 hadm_id)与结构化数据关联

4.6 缺失数据情况(missing_data)

MIMIC-IV 的缺失数据不是随机缺失(Not Missing At Random, NMAR):

缺失模式 原因 影响
检测稀疏性 重症患者检测更频繁,轻症患者检查少 缺失本身具有预测信息!不能简单填充
实验室检查缺失 某些检查只在特定场景做(如 TnI 只在怀疑心梗时查) 缺失指示了临床决策过程
chartevents 间断 患者离开 ICU 做检查时数据中断 时间序列建模需要处理 gap
单位不一致 同一 itemid 可能在早期版本用 mg/dL,后期用 mmol/L 需聚合前做单位转换
->89 岁年龄截断 HIPAA 去标识化要求 91 岁是一个混合值,不宜用于年龄相关分析
院外死亡截断 出院后 ->1 年的死亡不公开 长期生存分析的尾删(administrative censoring)

§5 数据划分与使用建议(Splits & Usage)

5.1 官方 train/val/test 划分(official_splits)

MIMIC-IV 没有官方的 train/val/test 划分。 这是一个重要的事实,意味着:

  • 每篇论文可能使用不同的划分方式(不同的患者、不同的入排标准)
  • 不同论文报告的"同样的 MIMIC-IV 基准任务"可能完全不可比较
  • 这既是灵活性,也是可复现性危机

但社区已经形成了约定俗成的做法:

文献来源 划分方式 比例 备注
MIMIC-Extract (Gupta et al., 2022) random split by patient 70/15/15 最推荐的通用方案
MIMIC-III Benchmark (Harutyunyan et al., 2019) fixed patient list 预定义 MIMIC-III 遗产,常被移植到 IV
EHRSQL Benchmark (Lee et al., 2024) 预定义 test set 固定 Text-to-SQL 任务的特定划分
MOTOR (som-shahlab, 2025) global patient split 85/15 基础模型预训练/微调
MIMIC-Sepsis (Huang et al., 2025) random split 80/10/10 脓毒症特定任务

5.2 推荐划分策略与原理(split_strategy)

推荐方案:patient-level random split, 70/15/15

import pandas as pd
from sklearn.model_selection import train_test_split

# 1. 获取所有唯一的 subject_id(不是 hadm_id!)
all_patients = admissions[subject_id].unique()

# 2. 先分离出 15% 的 test 集
train_val_patients, test_patients = train_test_split(
    all_patients, test_size=0.15, random_state=42
)

# 3. 从剩余 85% 中分离 15% 作为验证集(即 85% × 15/85 = 15% 总量)
train_patients, val_patients = train_test_split(
    train_val_patients, test_size=0.15/0.85, random_state=42
)

# 4. 按 subject_id 将患者信息映射到各自的数据集
def assign_split(hadm_df):
    df = hadm_df.copy()
    df[split] = unknown
    df.loc[df[subject_id].isin(train_patients), split] = train
    df.loc[df[subject_id].isin(val_patients), split] = val
    df.loc[df[subject_id].isin(test_patients), split] = test
    return df

为什么必须按 patient(不是 hadm_id 或 stay_id)划分?

关键原则:同一患者的所有数据必须全部在同一划分中。

  • 如果按 hadm_id 划分:同一患者的两次住院可能分布在 train 和 test 中 → 模型可能从"患者特征"而非"疾病模式"中学习 → AUC 虚高
  • 如果按 stay_id 划分:同一住院期间的两次 ICU 停留可能分布在 train 和 test 中 → 数据泄漏更严重,因为 ICU 停留共享同一住院的诊断和治疗信息
  • 只有按 subject_id 划分才能保证:模型在 test 集上面对的是从未见过的患者——这才是真正的泛化性测试

5.3 数据泄漏风险(leakage_risks)

这是 MIMIC-IV 研究中最常被忽视但最致命的问题。以下 5 种泄漏模式必须避免:

# 泄漏类型 严重程度 检测方法 解决方案
1 同一患者的多次住院跨划分 🔴 致命 检查 train/test 有无交集的 subject_id patient-level split
2 同一住院的多次 ICU 停留跨划分 🔴 致命 检查 train/test 有无交集的 hadm_id patient-level split
3 使用未来信息预测过去 🟠 严重 检查特征时间戳是否在标签时间之前 严格按 charttime 截断
4 标签泄漏:出院状态用于入 ICU 时的预测 🟠 严重 hospital_expire_flag 只能用于标签 特征排除当天 + 未来事件
5 按年份划分导致的分布偏移 🟡 中等 对比 train/test 的年份分布 随机划分优先;如需时间划分,明确声明

-> 现实案例:一篇 2023 年的综述(Boag et al., 2022)审查了 50+ 篇 MIMIC 论文,发现约 20% 存在不同程度的 data leakage——其中最常见的错误就是没有做 patient-level split。

5.4 交叉验证建议(cv_recommendation)

推荐方案:5 折 patient-level 分层交叉验证(按标签分布分层)。

from sklearn.model_selection import StratifiedGroupKFold

# 为每个患者创建一个标签(如有多次住院,取任何一次住院的标签)
patient_labels = df.groupby(subject_id)[hospital_expire_flag].max()

cv = StratifiedGroupKFold(n_splits=5, shuffle=True, random_state=42)
for fold, (train_idx, val_idx) in enumerate(cv.split(
    patient_labels.index, patient_labels, groups=patient_labels.index
)):
    train_patients = patient_labels.index[train_idx]
    val_patients = patient_labels.index[val_idx]
    print(f"Fold {fold+1}: Train={len(train_patients)}, Val={len(val_patients)}")

注意事项

  • 在 MIMIC 上做 k-fold CV 的计算成本极高(每次 fold 需要重新提取和预处理整个数据集)
  • 许多已发表的 MIMIC 论文仅使用单次 hold-out(70/15/15)而非 k-fold,这在一定程度上是社区接受的
  • 建议至少做 3 折 CV 并在论文中明确报告 fold 间的标准差

5.5 外部验证(external_validation)

MIMIC-IV 的最佳外部验证数据集

外部数据集 优缺点 推荐场景
eICU-CRD ✅ 多中心(208家美国医院)✅ 相似数据模式 ❌ 数据窗口极短(1-1.5年)❌ 无 CXR/ECG/Notes 首选外部验证
AmsterdamUMCdb ✅ 欧洲人群 ✅ 含波形数据 ❌ 规模较小(23k) 跨洲验证
HiRID ✅ 瑞士人群 ✅ 高频数据(2分钟间隔)❌ 不同数据模型 跨系统验证

多篇论文已证明 MIMIC-IV → eICU-CRD 的外部验证流程:例如 Chen et al. (2025) 的 SA-AKI 死亡预测模型在 MIMIC-IV 上训练 AUROC 0.878,在 eICU 上外部验证 AUROC 0.85+。

5.6 推荐划分比例(recommended_split_ratio)

场景 推荐比例 理由
深度学习方法 70/15/15 足够训练数据 + 充足的验证和测试
简单模型 (LR/SVM) 80/10/10 模型训练成本低,可多给训练数据
数据量小的子队列 (-< 5,000) 80/10/10 或 3-fold CV 保证测试集有统计效力
带超参数搜索 60/20/20 更可靠的超参数选择

§6 AI就绪指南(AI-Ready Guide)⭐

-> 千方核心差异化模块:本节目标是让一个合格 AI 工程师在 30 分钟内开始 MIMIC-IV 上的模型训练。

6.1 快速上手(quick_start)

"""
============================================
MIMIC-IV 快速上手 — 住院死亡预测 PyTorch 版
============================================
环境要求: torch-&gt;=2.0, pandas, numpy, scikit-learn
前置条件: 已通过 BigQuery 或本地 PostgreSQL 访问 MIMIC-IV v3.1
"""

import pandas as pd
import numpy as np
import torch
import torch.nn as nn
from torch.utils.data import Dataset, DataLoader
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# ======== Step 0: 从数据库提取数据(SQL)========
# 如果使用 BigQuery:
# SELECT 
#   a.subject_id, a.hadm_id, a.hospital_expire_flag,
#   a.admission_type, p.gender, p.anchor_age,
#   icu.stay_id, icu.los AS icu_los
# FROM `physionet-data.mimiciv_v3_1_hosp.admissions` a
# JOIN `physionet-data.mimiciv_v3_1_hosp.patients` p
#   ON a.subject_id = p.subject_id
# LEFT JOIN `physionet-data.mimiciv_v3_1_icu.icustays` icu
#   ON a.hadm_id = icu.hadm_id
# WHERE a.hospital_expire_flag IS NOT NULL

# ======== Step 1: 加载预处理后的数据 ========
# 假设你已经通过 mimic-code 或 MIMIC-Extract 完成了数据提取
df = pd.read_csv(mimic_iv_cohort.csv)

# ======== Step 2: Patient-level split ========
patients = df[subject_id].unique()
train_patients, temp_patients = train_test_split(
    patients, test_size=0.3, random_state=42
)
val_patients, test_patients = train_test_split(
    temp_patients, test_size=0.5, random_state=42
)

def get_split(subject_id):
    if subject_id in train_patients: return train
    if subject_id in val_patients: return val
    return test

df[split] = df[subject_id].apply(get_split)

# ======== Step 3: 准备特征和标签 ========
feature_cols = [anchor_age, gender_M, admission_type_EMERGENCY,
                heart_rate_mean, sbp_mean, dbp_mean, resp_rate_mean,
                temperature_mean, spo2_mean, wbc, creatinine,
                bun, glucose, sodium, potassium, lactate]

label_col = hospital_expire_flag

X_train = df[df[split] == train][feature_cols].fillna(0)
y_train = df[df[split] == train][label_col]
X_val = df[df[split] == val][feature_cols].fillna(0)
y_val = df[df[split] == val][label_col]

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_val = scaler.transform(X_val)

# ======== Step 4: 定义 PyTorch Dataset ========
class MIMICDataset(Dataset):
    def __init__(self, X, y):
        self.X = torch.tensor(X, dtype=torch.float32)
        self.y = torch.tensor(y.values, dtype=torch.float32)

    def __len__(self):
        return len(self.X)

    def __getitem__(self, idx):
        return self.X[idx], self.y[idx]

train_ds = MIMICDataset(X_train, y_train)
val_ds = MIMICDataset(X_val, y_val)

train_loader = DataLoader(train_ds, batch_size=128, shuffle=True)
val_loader = DataLoader(val_ds, batch_size=128)

# ======== Step 5: 定义模型 ========
class MortalityPredictor(nn.Module):
    def __init__(self, n_features):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(n_features, 128),
            nn.ReLU(),
            nn.Dropout(0.3),
            nn.Linear(128, 64),
            nn.ReLU(),
            nn.Dropout(0.3),
            nn.Linear(64, 1),
            nn.Sigmoid()
        )

    def forward(self, x):
        return self.net(x)

model = MortalityPredictor(len(feature_cols))
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
criterion = nn.BCELoss()

# ======== Step 6: 训练一个 epoch ========
model.train()
for X_batch, y_batch in train_loader:
    optimizer.zero_grad()
    pred = model(X_batch).squeeze()
    loss = criterion(pred, y_batch)
    loss.backward()
    optimizer.step()

print(f"✅ 训练完成!Loss: {loss.item():.4f}")

6.2 数据获取(data_acquisition)

申请流程(预计 1-2 周)
Step 1: 注册 PhysioNet 账户 (physionet.org)
   ├── 推荐使用机构邮箱(.edu / .ac.cn)
   └── 约 5 分钟

Step 2: 完成 CITI 伦理培训 (about.citiprogram.org)
   ├── 选择 "Massachusetts Institute of Technology Affiliates"
   ├── 课程: "Data or Specimens Only Research"
   ├── 总计约 2-3 小时
   ├── 通过标准: 每模块得分 ≥ 80%
   └── 下载结业证书 (PDF)

Step 3: 在 PhysioNet 提交数据访问申请
   ├── 上传 CITI 证书
   ├── 填写推荐人信息(需已发表论文的研究人员)
   ├── 签署 Data Use Agreement (DUA)
   └── 等待推荐人确认 + PhysioNet 审核 (1-14 天)

Step 4: 审核通过后下载数据
   ├── 方式 A: 直接下载 CSV (wget -r)
   ├── 方式 B: Google BigQuery (零下载,即查即用,推荐✨)
   └── 方式 C: PhysioNet Cloud (AWS/GCP)
下载时间估算
方式 预估耗时 本地存储需求
仅 MIMIC-IV CSV 1-3 小时(取决于带宽) ~7 GB + ~100 GB 数据库
BigQuery 0 秒(无需下载) 0
含 MIMIC-CXR 6-12 小时 ~500 GB

6.3 预处理全流程(preprocessing_pipeline)

MIMIC-IV 的预处理是整个 AI 流程中最耗时但最关键的环节。以下是推荐的标准流程:

"""
MIMIC-IV 标准预处理 Pipeline
============================
阶段 1: 队列定义 (SQL, BigQuery)
阶段 2: 特征提取 (Python, pandas)
阶段 3: 数据清洗与标准化
阶段 4: 时序对齐与聚合
阶段 5: 缺失值处理
"""

# ========= 阶段 1: 队列定义 =========
# 推荐使用 BigQuery SQL 定义初始队列
# 示例:提取首次 ICU 入住的成人脓毒症患者

COHORT_SQL = """
WITH icu_first AS (
  SELECT * FROM (
    SELECT *, ROW_NUMBER() OVER(PARTITION BY subject_id ORDER BY intime) AS rn
    FROM `physionet-data.mimiciv_v3_1_icu.icustays`
  ) WHERE rn = 1
)
SELECT 
  p.subject_id, p.anchor_age, p.gender,
  a.hadm_id, a.admittime, a.dischtime,
  a.admission_type, a.insurance, a.ethnicity,
  a.hospital_expire_flag, a.discharge_location,
  i.stay_id, i.intime, i.outtime, i.los AS icu_los
FROM `physionet-data.mimiciv_v3_1_hosp.patients` p
JOIN `physionet-data.mimiciv_v3_1_hosp.admissions` a
  ON p.subject_id = a.subject_id
JOIN icu_first i
  ON a.hadm_id = i.hadm_id
WHERE p.anchor_age -&gt;= 18                -- 仅成人
  AND i.los -&gt;= 1                        -- ICU 至少住满 1 天
ORDER BY p.subject_id
"""

# ========= 阶段 2: 特征提取 =========
# 推荐使用 MIMIC-Extract(Gupta et al., 2022)
# pip install mimic-iv-extract  # 社区工具
# 或直接从 chartevents/labevents 中提取关键指标

# itemid 速查表(常用指标)
VITAL_ITEMIDS = {
    heart_rate:      [220045],
    sbp:             [220179, 220050],  # 无创 + 有创
    dbp:             [220180, 220051],
    resp_rate:       [220210, 224690],
    temperature:     [223761, 223762],  # 摄氏/华氏
    spo2:            [220277],
    gcs_eye:         [220739],           # GCS 评分
    gcs_motor:       [220741],
    gcs_verbal:      [220631],
}

LAB_ITEMIDS = {
    wbc:             51301,   # 白细胞计数
    creatinine:      50912,   # 肌酐
    bun:             51006,   # 血尿素氮
    glucose:         50931,   # 血糖
    sodium:          50983,   # 血钠
    potassium:       50971,   # 血钾
    lactate:         50813,   # 乳酸
    platelet:        51265,   # 血小板
    bilirubin:       50885,   # 总胆红素
    inr:             51237,   # INR
    pt:              51274,   # PT
    troponin_i:      51003,   # 肌钙蛋白 I
}

# ========= 阶段 3: 数据清洗 =========
def clean_vital_signs(df):
    """清洗生命体征数据:去除生理上不可能的异常值"""
    # 心率: 有效范围 20-300 bpm
    df.loc[(df[heart_rate] -&lt; 20) | (df[heart_rate] -&gt; 300), heart_rate] = np.nan
    # SBP: 有效范围 40-300 mmHg
    df.loc[(df[sbp] -&lt; 40) | (df[sbp] -&gt; 300), sbp] = np.nan
    # SpO₂: 有效范围 50-100%
    df.loc[(df[spo2] -&lt; 50) | (df[spo2] -&gt; 100), spo2] = np.nan
    # 体温: 有效范围 25-45°C
    df.loc[(df[temperature] -&lt; 25) | (df[temperature] -&gt; 45), temperature] = np.nan
    return df

# ========= 阶段 4: 时序聚合 =========
def aggregate_time_windows(chartevents_df, icustays_df, window_hours=24):
    """
    将 ICU 首个 24 小时的 chartevents 聚合为统计摘要。
    window_hours: 预测窗口(通常是入 ICU 后 24 或 48 小时)
    """
    # 关联 ICU 入室时间
    df = chartevents_df.merge(icustays_df[[stay_id, intime]], on=stay_id)

    # 计算相对时间(小时)
    df[hours_from_admission] = (
        (df[charttime] - df[intime]).dt.total_seconds() / 3600
    )

    # 仅保留首个时间窗口内的数据
    df = df[df[hours_from_admission] -&gt;= 0]
    df = df[df[hours_from_admission] -&lt;= window_hours]

    # 对每个指标聚合统计特征
    agg_features = df.groupby([stay_id, itemid]).agg({
        valuenum: [min, max, mean, std, first, last, count]
    }).reset_index()

    return agg_features

# ========= 阶段 5: 缺失值处理 =========
def handle_missing_values(df):
    """
    MIMIC 缺失值处理的黄金法则:
    1. 不要简单填充均值/中位数!
    2. 创建缺失指示器 (missing indicator) —— 缺失本身是信息
    3. 区分"未检测"(正常→不查)vs "无法获得"(设备故障)
    """
    for col in df.columns:
        if df[col].isna().any():
            # 创建缺失标志
            df[f{col}_missing] = df[col].isna().astype(int)
            # 用中位数填充(作为 baseline)
            df[col].fillna(df[col].median(), inplace=True)
    return df

6.4 框架加载代码(framework_loading)

# ====== PyTorch ======
import torch
from torch.utils.data import DataLoader, TensorDataset

X_tensor = torch.tensor(X_train, dtype=torch.float32)
y_tensor = torch.tensor(y_train.values, dtype=torch.float32).unsqueeze(1)

dataset = TensorDataset(X_tensor, y_tensor)
loader = DataLoader(dataset, batch_size=128, shuffle=True, num_workers=4)

# ====== TensorFlow / Keras ======
import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(128, activation=relu, input_shape=(n_features,)),
    tf.keras.layers.Dropout(0.3),
    tf.keras.layers.Dense(64, activation=relu),
    tf.keras.layers.Dropout(0.3),
    tf.keras.layers.Dense(1, activation=sigmoid)
])
model.compile(optimizer=adam, loss=binary_crossentropy, metrics=[AUC])
model.fit(X_train, y_train, batch_size=128, epochs=50,
          validation_data=(X_val, y_val), class_weight={0: 1, 1: 5})

# ====== XGBoost(MIMIC 上最常用的 baseline)======
import xgboost as xgb

scale_pos_weight = (y_train == 0).sum() / (y_train == 1).sum()

model = xgb.XGBClassifier(
    n_estimators=200, max_depth=6, learning_rate=0.05,
    scale_pos_weight=scale_pos_weight,
    eval_metric=auc, early_stopping_rounds=20
)
model.fit(X_train, y_train, eval_set=[(X_val, y_val)], verbose=False)

# ====== LightGBM(梯度提升的强力 baseline)======
import lightgbm as lgb

train_data = lgb.Dataset(X_train, label=y_train)
val_data = lgb.Dataset(X_val, label=y_val)

params = {
    objective: binary, metric: auc,
    num_leaves: 31, learning_rate: 0.05,
    is_unbalance: True
}
model = lgb.train(params, train_data, valid_sets=[val_data],
                  num_boost_round=200, callbacks=[lgb.early_stopping(20)])

6.5 常见坑点 Top 10(common_pitfalls)

-> ⚠️ 坑点 1:按 hadm_id 而非 subject_id 划分数据
->
-> 问题:同一患者的多次住院可能分布在 train 和 test 中。模型学习到的是"这个患者有病"而不是"这种病有什么模式"。AUROC 虚高 3-5%。
->
-> 解决:一切划分的基础单位必须是 subject_idGroupKFoldStratifiedGroupKFold

-> ⚠️ 坑点 2:混淆 charttime 和 storetime
->
-> 问题charttime 是测量/观察时间,storetime 是护士手动输入/验证时间。两者可相差数小时。如果用 storetime 做时序对齐,你预测的其实是"护士什么时候有空输入数据"而不是"患者的真实状态"。
->
-> 解决:始终使用 charttime 进行时序建模。storetime 仅用于数据质量分析。

-> ⚠️ 坑点 3:标签泄漏——用 hospital_expire_flag 训练预测"入 ICU 24h 后死亡"
->
-> 问题hospital_expire_flag 是整个住院的死亡标签。如果你用包含出院信息的特征(如出院科室、总住院时长)来预测死亡率,模型实际上是看到了未来信息。
->
-> 解决:特征计算必须严格截断在预测时间点之前。入 ICU 后 24h 预测只能使用前 24h 的数据。

-> ⚠️ 坑点 4:未考虑 chartevents 和 labevents 的重复
->
-> 问题:同一个实验室结果可能同时存在于 chartevents(护士抄录到床边电子病历)和 labevents(实验室信息系统直接记录)。两者可能有微小差异(手动录入错误 vs 自动传输)。
->
-> 解决:官方建议在两者不一致时,labevents 为金标准。理想做法是优先使用 labevents,仅在缺失时回退到 chartevents

-> ⚠️ 坑点 5:MIMIC-III 和 MIMIC-IV 的差异被忽视
->
-> 问题:从 III 迁移到 IV 的研究者经常假设架构相同。但 MIMIC-IV 的表结构完全不同(模块化 vs 扁平)、ICU 数据仅来源于 MetaVision(不含 CareVue)、itemid 部分变化。
->
-> 解决:永远不要假设 MIMIC-III 的 SQL 查询在 MIMIC-IV 上可直接运行。查阅官方文档确认每个 itemid。

-> ⚠️ 坑点 6:->89 岁年龄截断的影响被低估
->
-> 问题:所有 ->89 岁的患者年龄标记为 91 岁。如果你直接把 91 作为连续变量使用,所有超高龄患者的年龄信息完全丢失。
->
-> 解决:老年人队列研究中,考虑将年龄分段处理(如 60-69 / 70-79 / 80-89 / ≥90),或明确标注 91 岁为截断值。

-> ⚠️ 坑点 7:日期偏移导致外部数据无法整合
->
-> 问题:所有日期被随机偏移至 2100-2200 年,每位患者的偏移量不同。无法关联外部时间序列(如流感季节、政策变更时间)。
->
-> 解决:使用 anchor_year_group(2008-2010 / 2011-2013 / 2014-2016 / 2017-2019 / 2020-2022)作为时间段的代理变量。相对时间间隔在同一患者内保持不变。

-> ⚠️ 坑点 8:诊断编码的感度/特异度权衡
->
-> 问题:ICD 编码用于定义表型(如"脓毒症")时,不同研究使用的代码集差异巨大。使用窄代码集(高特异度、低感度)vs 宽代码集(高感度、低特异度)会得到完全不同的队列和结论。
->
-> 解决:明确报告使用的 ICD 代码列表。建议同时报告基于 ICD 代码和基于临床标准(如 Sepsis-3 = 疑似感染 + SOFA≥2)的结果。

-> ⚠️ 坑点 9:不合理的缺失值填充
->
-> 问题:用"0"填充缺失的乳酸值(实际上乳酸 = 0 是不可能的)或用均值填充缺失的肌钙蛋白(未检测 = 临床认为不需要检测 = 低风险 → 均值填充高估了风险)。
->
-> 解决:创建缺失指示器列;使用多重插补(MICE)或特定领域的方法(如 carry forward + 衰减)。

-> ⚠️ 坑点 10:忽略竞争风险
->
-> 问题:在研究"ICU 住院时长"时,将死亡患者直接排除或作为删失处理会导致有偏估计——因为死亡和出院是竞争事件。
->
-> 解决:使用竞争风险模型(Fine-Gray subdistribution hazard)或分别建模出院和死亡。

6.6 数据增强策略(data_augmentation)

EHR 时序数据的数据增强不同于计算机视觉。以下为 MIMIC-IV 适用的策略:

# 1. 时序抖动 (Time Jitter): 微调测量时间点,模拟真实世界的不规则采样
def time_jitter(times, values, jitter_std=0.1):
    """对时间戳加入小幅度高斯噪声(以小时为单位)"""
    noisy_times = times + np.random.normal(0, jitter_std, len(times))
    return np.sort(noisy_times), values  # 保持时序顺序

# 2. 添加测量噪声 (Measurement Noise): 模拟床边监护仪的测量误差
def add_measurement_noise(values, noise_ratio=0.02):
    """加入相对标准差 2% 的高斯噪声"""
    noise = np.random.normal(0, noise_ratio * np.abs(values))
    return values + noise

# 3. Masking / Dropout: 随机掩码部分测量,模拟真实 EHR 的缺失
def random_mask(values, mask_prob=0.1):
    """随机掩码 10% 的测量值"""
    mask = np.random.binomial(1, mask_prob, len(values))
    return np.where(mask, np.nan, values)

# 4. 窗口裁剪 (Window Cropping): 随机选取子序列
def random_window_crop(times, values, min_length=6):
    """在完整序列中随机裁剪一段子序列(最少 6 个时间点)"""
    if len(times) -&lt;= min_length:
        return times, values
    start = np.random.randint(0, len(times) - min_length)
    end = np.random.randint(start + min_length, len(times) + 1)
    return times[start:end], values[start:end]

# 5. 混合同一患者的多次 ICU 停留(Patient-level Mixup)
# 注意:仅在患者内部做 mixup,不能跨患者混合

-> ⚠️ 注意事项:医学数据增强必须保证临床合理性。例如,不能将血压增强到 300/200 mmHg(这是不可能的)或将 SpO₂ 增强到 200%。所有增强后的值必须通过生理范围验证。

6.7 模型建议(model_suggestion)

基于社区数百篇论文的经验总结:

任务类型 推荐模型 理由
Baseline #1 Logistic Regression 永远的第一个模型。可解释性最强
Baseline #2 XGBoost / LightGBM 在表格数据上通常超越深度模型,训练快
时序 Baseline LSTM (1-2 layers) 经典时序模型,MIMIC-III Benchmark 的标准
时序进阶 GRU-D (带衰减的 GRU) 显式处理不规则采样和缺失值
时序 SOTA Transformer / Informer 长序列建模,需更多数据
多模态融合 双塔 + Cross-attention EHR + CXR,如 MedMod 架构
因果推断 TARNet / Dragonnet / CFR 反事实预测,处理 treatment selection bias
基础模型 MOTOR (预训练) + 微调 当前 MIMIC-IV 上最佳性能 (AUROC 0.937)

推荐超参数起点

超参 推荐值 理由
Learning Rate 1e-3 (深度) / 0.05 (树模型) 社区共识
Batch Size 128 GPU 内存 / 收敛速度平衡
Dropout 0.3 医疗数据信噪比低,较高 dropout 防过拟合
Class Weight balanced 或 scale_pos_weight 死亡率 ~10%,高度不平衡
Imputation Forward fill + decay GRU-D 或简单的 forward imputation
Epochs 50-100 (早停 patience=10) 小模型容易过拟合

6.8 计算资源建议(computing_requirements)

场景 CPU/RAM GPU 磁盘 训练时间
SQL 数据提取 4 核 / 16 GB 不需要 10-60 分钟
表格模型 (XGBoost) 8 核 / 32 GB 不需要 150 GB 5-30 分钟
LSTM 时序模型 8 核 / 32 GB 8 GB VRAM 150 GB 1-4 小时
Transformer 时序 8 核 / 64 GB 24 GB VRAM 150 GB 4-12 小时
基础模型预训练 (MOTOR) 16 核 / 128 GB 40 GB (A100) 200 GB 1 天
EHR + CXR 多模态 16 核 / 128 GB 40 GB (A100) 700 GB 1-3 天

-> 💡 推荐配置:研究生起步 → Google Colab Pro + BigQuery(云端,约 $10/月付费查询)。进阶 → 自己的 24 GB GPU 工作站 + BigQuery。全量多模态 → 申请学校/公司的 A100 集群。

6.9 评估指标(evaluation_metrics)

from sklearn.metrics import (roc_auc_score, average_precision_score,
                              brier_score_loss, confusion_matrix,
                              classification_report)
import numpy as np

def evaluate_mimic_model(y_true, y_pred_prob, y_pred_binary=None):
    """
    MIMIC 死亡预测的标准评估函数。
    y_true: 真实标签 (0/1)
    y_pred_prob: 模型预测概率
    y_pred_binary: 阈值化后的预测 (可选,默认按 0.5)
    """
    if y_pred_binary is None:
        y_pred_binary = (y_pred_prob -&gt;= 0.5).astype(int)

    results = {}

    # 1. 区分度 (Discrimination)
    results[AUROC] = roc_auc_score(y_true, y_pred_prob)
    results[AUPRC] = average_precision_score(y_true, y_pred_prob)  # 不平衡数据更重要!

    # 2. 校准度 (Calibration)
    results[Brier] = brier_score_loss(y_true, y_pred_prob)

    # 3. 阈值指标
    tn, fp, fn, tp = confusion_matrix(y_true, y_pred_binary).ravel()
    results[Sensitivity] = tp / (tp + fn)  # 召回率 / TPR
    results[Specificity] = tn / (tn + fp)
    results[PPV] = tp / (tp + fp)          # 精确度
    results[NPV] = tn / (tn + fn)
    results[F1] = 2 * tp / (2 * tp + fp + fn)

    # 4. 净重新分类改善 (NRI) — 如果对比基线模型
    # from nri import calculate_nri
    # results[NRI] = calculate_nri(y_true, baseline_prob, y_pred_prob)

    return results

# ====== 社区标准 ======
# 死亡预测的"及格线": AUROC ≥ 0.80 (至少超过 SAPS II 的 AUROC ~0.78)
# 死亡预测的"发表线": AUROC ≥ 0.85 + 外部验证或严格交叉验证
# 死亡预测的"SOTA 线": AUROC ≥ 0.90 + 公平性分析 + SHAP 解释

6.10 MLOps 笔记(mlops_notes)

数据版本管理:
  - MIMIC-IV 版本号 (v3.1) 必须记录在论文和代码仓库中
  - 推荐用 DVC 或 Git LFS 管理队列定义 SQL 和提取的 CSV
  - 记录使用的 mimic-code 版本(git commit hash)

实验追踪:
  - 使用 Weights & Biases (wandb) 或 MLflow
  - 关键追踪指标: 队列定义参数、特征列表、itemid 集合、数据版本、随机种子

模型注册:
  - 将训练好的模型和预处理 pipeline 打包并注册
  - 保存 scaler/encoder 参数用于推理

可复现性清单:
  ✅ MIMIC 版本号 (v3.1)
  ✅ mimic-code commit hash
  ✅ 队列定义 SQL(完整)
  ✅ 使用的 feature itemid 列表
  ✅ random seed
  ✅ train/val/test patient list(发布到 GitHub)
  ✅ 环境文件 (requirements.txt / conda env yml)

§7 质量评估与局限性(Quality & Limitations)

7.1 已知偏倚(known_biases)

偏倚类型 严重程度 详细描述 缓解措施
单中心选择偏倚 🔴 高 BIDMC 是位于富裕城市(波士顿)的学术医疗中心。患者群体不代表社区医院、农村医院或非美国人群 使用 eICU-CRD(多中心,208家医院)做外部验证
种族/族裔偏倚 🟠 中-高 白人约 65-70%,非裔约 10%。少数族裔的代表性严重不足,且"未知/其他"类别约占 15% 亚组分析;公平性审计(§7.5);不要对"unknown"做 naive imputation
保险类型偏倚 🟠 中 Medicare(65+ 或残疾)人群占比高。商业保险、无保险人群的代表性不足。保险类型影响医疗资源可及性 分层分析;保险类型作为协变量
老龄化偏倚 🟠 中 ->89 岁年龄截断。超高龄是最重要的 ICU 年龄组(增长最快),但他们在数据中的年龄信息被压缩 明确标注"≥90"年龄组;避免将 91 岁视为连续变量
编码偏倚 🟡 中 ICD 编码受医保报销政策影响。某些诊断可能被 over-code(以增加 reimbursement)或 under-code(以避免质控处罚) 用临床标准(而非仅 ICD 编码)定义表型
存活者偏倚 🟡 中 只有活到入 ICU 的患者才被记录。院前死亡和快速恶化的患者在数据中不可见 在讨论中明确存活者偏倚的潜在影响
时期偏倚 🟡 中 2008-2022 年间治疗方案发生了显著变化(如脓毒症 bundle 指南、COVID-19 大流行导致的实践变化) 按时间段分层分析;使用 anchor_year_group
标注/验证偏倚 🟡 低-中 生命体征由护士手动验证(验证行为本身可能受患者病情影响)。危重患者验证更频繁 → 数据质量更高 使用 charttime 而非 storetime;记录验证时间差

7.2 标注质量评估(label_quality)

死亡率标签(最重要):

指标 数值 说明
院内死亡准确度 ->99% EHR 记录的出院状态几乎完美
院外死亡完整性 85-95% SSA Death Master File 在 2011 年后有约 5-15% 的受保护记录被移除
1 年随访截断 出院后 ->1 年的死亡不记录。需要更长期随访的研究需注意 administrative censoring

诊断编码质量(参考社区研究):

诊断 ICD 编码准确率 参考来源
急性心肌梗死 ~85-95% 高感度的诊断,编码质量较好
脓毒症 ~60-80%(取决于具体代码) 存在 under/over coding
急性肾损伤 ~50-70% 临床上常被漏报
谵妄 ~30-50% ICU 谵妄的编码率严重偏低

-> 最佳实践:不要仅依赖 ICD 编码定义表型。结合实验室值(如肌酐变化定义 AKI)、生命体征(如 SOFA 变化定义脓毒症)和文本 NLP 提取(如从放射报告提取阳性发现),构建复合表型定义。这被称为"computable phenotype"或"electronic phenotype"。

7.3 泛化性讨论(generalizability)

MIMIC-IV 训练的模型在以下条件下可能失效

  1. 不同国家/医疗体系:BIDMC 的实践模式(如抗生素选择、液体复苏策略、机械通气设定)可能不同于其他国家的 ICU。模型预测的"最优"治疗可能只适用于类似的学术 ICU 环境。

  2. 社区医院:BIDMC 是三级转诊中心,疑难危重患者比例远高于社区医院。在 BIDMC 训练的死亡预测模型在社区医院可能高估死亡风险(因为 community hospital 的 case mix 更轻)。

  3. 儿科/NICU:MIMIC-IV 不包含 NICU 和 PICU 的完整数据。儿科模型必须使用专门的数据集。

  4. COVID-19 时期:2020-2022 年的数据包含大流行期间特有的病例组合变化。在此期间训练的模型可能学到 COVID-19 特定的模式,不一定适用于后疫情时代。

  5. 不同设备和系统:转移到使用不同监护系统(如 Philips vs iMDSoft)的医院时,itemid 映射关系断裂,数据质量特征(如采样频率、缺失模式)不同。

  6. 时间迁移:2008 年训练的模型应用于 2025 年的患者,预测性能可能随实践标准变化而衰减(data drift + concept drift)。

-> 一篇 2025 年的研究(Chen et al.)验证了 MIMIC-IV 训练的 XGBoost SA-AKI 死亡预测模型在 eICU-CRD 上的外部 AUROC 约为 0.85(内部 0.878),降幅约 3%。这是一个合理的泛化性能降幅参考值。

7.4 伦理考量(ethical_considerations)

方面 措施 局限
去标识化 HIPAA Safe Harbor 方法;所有日期随机偏移;->89 岁年龄截断;自由文本去标识化(Neamatullah et al., 2008 + 改进的 BERT 方法) 去标识化文本可能残留识别信息;日期偏移破坏了某些时序分析的可能性
知情同意 IRB 豁免(MIT 和 BIDMC 批准),因为项目不影响临床护理且所有 PHI 已去标识化 患者不知道自己数据被用于研究——社区对此有不同意见
数据使用协议 PhysioNet DUA 1.5.0:禁止重新识别患者、禁止商业用途、禁止不当传播 DUA 的法律约束力在不同司法管辖区可能不同
CITI 培训 所有用户必须完成人体受试者研究伦理培训 培训仅覆盖基础知识,不涉及具体的 MIMIC 伦理场景
公平性风险 模型可能在不同种族/保险类型亚群中表现不均(已有多项研究证实) 详见 §7.5

7.5 公平性评估(fairness_assessment)

基于 Meng et al. (2022, Scientific Reports) 和 Kakadiaris (2024, arXiv) 的系统性公平性审计:

敏感属性 发现 严重程度
种族 死亡预测模型在不同种族组间的 AUROC 差异显著。非裔患者组的模型表现通常较低 🔴 高
保险类型 Medicaid 和无保险患者的 LOS 预测偏差显著大于 Medicare 和 Private 患者 🟠 中-高
性别 女性患者的某些模型 AUROC 略低于男性(差异约 1-3%) 🟡 低-中
年龄 年轻 (-<40) 和超高龄 (≥90) 患者的预测不确定性最大 🟡 中

-> 重要发现:Meng et al. (2022) 进一步发现,高死亡率的亚群(如非裔)往往也是模型表现最差的亚群——这构成了"双重劣势":他们既面临更高的临床风险,又无法从精确的 AI 预测中受益。

推荐的公平性评估流程

# 使用 Fairlearn 进行公平性审计
from fairlearn.metrics import (
    MetricFrame, selection_rate, false_positive_rate,
    false_negative_rate, equalized_odds_difference
)

sensitive_features = df_test[ethnicity]
metrics = {
    AUROC: lambda y_true, y_pred: roc_auc_score(y_true, y_pred),
    FPR: false_positive_rate,
    FNR: false_negative_rate,
}

mf = MetricFrame(
    metrics=metrics,
    y_true=y_test, y_pred=y_pred_prob,
    sensitive_features=sensitive_features
)

print("Fairness Report:")
print(mf.by_group)
print(f"Equalized Odds Difference: {equalized_odds_difference(y_test, y_pred, sensitive_features):.4f}")

7.6 数据漂移提示(data_drift_notes)

潜在漂移源 影响 监控方法
COVID-19 (2020-2022) 病例组合、死亡率基线、机械通气时长显著变化 按 anchor_year_group 分层检查
ICD-10 切换 (2015) 美国从 ICD-9 切换至 ICD-10,诊断编码体系全面变更 使用统一映射工具(如 CCS 分类)
脓毒症定义变更 (2016) Sepsis-3 取代 Sepsis-2 定义,改变脓毒症队列的构成 明确标注使用的脓毒症定义版本
治疗方案演进 抗生素管理、液体复苏策略、ECMO 使用率随时间变化 按时间段分层分析治疗效果

§8 基准性能与生态(Benchmarks & Ecosystem)

8.1 基准排行榜(leaderboard)— 住院死亡预测

排名 模型 AUROC 年份 论文 特点
🥇 MOTOR (Foundation Model + 微调) 0.937 2025 som-shahlab, GitHub 自监督预训练 + 线性头,当前 SOTA
🥈 Transformer + Multi-Channel Attention ~0.92 2024 Zavidnyi, GitHub 多通道时序注意力
🥉 XGBoost (CatBoost) 0.904 2025 Si et al., medrxiv 心脏骤停后 ICU 患者,CatBoost
4 XGBoost + SMOTE 0.903 2025 Abdollahi et al., PLoS ONE 卒中患者,30 特征
5 XGBoost 0.878 2025 Chen et al., arXiv SA-AKI 患者,外部验证于 eICU
6 XGBoost 0.83-0.87 2021 Nowroozilarki et al. 表格数据最强 baseline
7 LSTM 0.85-0.86 2019 Harutyunyan et al. (MIMIC-III Benchmark) 经典深度时序 baseline
8 LightGBM 0.88 2025 som-shahlab 表格特征 + 梯度提升
9 Logistic Regression 0.833 2025 som-shahlab 最简单的 baseline
10 SAPS II (临床评分) 0.78-0.80 传统临床评分 临床金标准参考

-> ⚠️ 重要声明:上述 AUROC 数值来自不同论文、不同队列定义、不同数据版本和不同训练/测试划分。绝对数值不可直接比较(除非在同一篇论文中使用完全相同的队列和划分进行对比)。这个榜单的目的是展示技术趋势,而非做 head-to-head 排名。

8.2 SOTA 总结与选型建议(sota_summary)

一句话总结:在表格特征上,XGBoost/LightGBM ≈ LSTM -> Logistic Regression;加入时序建模的 Transformer 可进一步提升 2-5%;MOTOR 基础模型微调达到当前最佳 0.937,但需要 40GB+ GPU 和 1 天预训练成本。

选型建议

如果你…… 建议模型 预期 AUROC
刚开始做 MIMIC,需要一个快速 baseline Logistic Regression 0.80-0.83
需要发表论文的强 baseline,有中等 GPU XGBoost 0.85-0.90
做时序建模研究,有 GPU GRU-D / Transformer 0.87-0.92
追求 SOTA,有 A100 和 1 周时间 MOTOR 微调 0.92-0.94
做多模态(EHR + CXR),有 A100 MedMod 比 EHR-only 高 2-3%

8.3 官方评测协议(evaluation_protocol)

MIMIC 没有官方的评测协议,但社区已形成以下共识:

  1. 主要指标:AUROC(区分度)、AUPRC(不平衡数据下的区分度)、Brier Score(校准度)
  2. 次要指标:Sensitivity / Specificity / PPV / NPV / F1(在特定阈值下)
  3. 校准:必须报告校准曲线或可靠性曲线(Calibration Curve)。一个 AUROC=0.95 但完全失校准的模型在临床上毫无用处
  4. 分层报告:按年龄组、性别、种族分别报告 AUROC,而非仅报告总体
  5. 不确定性:报告 95% 置信区间(通过 1,000 次 Bootstrap 重采样获得)

8.4 相关数据集(related_datasets)

数据集 关系 简述
MIMIC-III 前代 v1.4(含 CareVue 系统数据)。MIMIC-III 的许多 benchmark 定义(如 Harutyunyan 2019)仍被广泛引用,但新项目不建议使用
MIMIC-CXR 衍生(影像) 胸部 X 光 + 放射报告,与 MIMIC-IV 通过 subject_id 关联。CheXpert 自动标注器提供 14 类标签
MIMIC-IV-ECG 衍生(波形) 12 导联心电图波形,~800k 条,500 Hz,约 90 GB。通过 subject_id 关联
MIMIC-IV-Note 衍生(文本) 去标识化临床笔记(出院小结 + 放射学报告)。NLP 研究的标准语料
MIMIC-IV-ED 衍生(急诊) 独立的急诊数据集,与 MIMIC-IV 共享 subject_id
eICU-CRD 互补(多中心) 208 家美国医院(2014-2015),多中心验证首选
AmsterdamUMCdb 互补(欧洲) 阿姆斯特丹大学医学中心,23k 患者,含波形
HiRID 互补(高频) 瑞士伯尔尼大学医院,2 分钟间隔高频数据

8.5 关键论文(key_papers)

# 标题 年份 期刊 贡献
1 MIMIC-IV, a freely accessible electronic health record dataset 2023 Scientific Data 数据集主论文,完整介绍 MIMIC-IV 的设计、架构和去标识化方法。必引
2 MIMIC-III, a freely accessible critical care database 2016 Scientific Data MIMIC-III 主论文。虽已渐被 IV 取代,但奠定了整个 MIMIC 生态
3 An Extensive Data Processing Pipeline for MIMIC-IV 2022 PMLR Gupta et al. 提供标准化预处理 pipeline(MIMIC-Extract),覆盖 4 大预测任务
4 Interpretability and fairness evaluation of deep learning models on MIMIC-IV dataset 2022 Scientific Reports Meng et al. 系统性审计 MIMIC-IV DL 模型的可解释性和公平性。公平性研究的必引文献
5 Multitask learning and benchmarking with clinical time series data 2019 Scientific Data Harutyunyan et al. 定义了 MIMIC-III 上 4 个标准 benchmark(死亡预测、LOS、表型、失代偿)。尽管是 III,其任务定义仍是社区标准
6 Leveraging MIMIC Datasets for Better Digital Health: A Review 2025 arXiv Khaled et al. 系统性综述 MIMIC 数据集的开放问题、进展和未来方向
7 Copycats: the many lives of a publicly available medical dataset 2024 arXiv (NeurIPS Datasets) 审查 MIMIC 衍生数据集的文档质量和标注完整性——发现社区普遍存在文档不足问题
8 EHRSQL: A Practical Text-to-SQL Benchmark for Electronic Health Records 2022 NeurIPS Lee et al. 在 MIMIC-IV 上定义了 Text-to-SQL 基准,2024 年更新至 MIMIC-IV 测试集
9 MIMIC-Sepsis: A Curated Benchmark for Modeling Sepsis Trajectories 2025 IEEE BHI Huang et al. 基于 Sepsis-3 标准构建脓毒症专用 benchmark
10 MedMod: Multimodal In-Hospital Mortality Prediction 2025 GitHub EHR + CXR 多模态融合,证明影像可提升死亡预测 2-3% AUROC

8.6 社区活跃度(community_activity)

指标 数值
MIMIC-IV PhysioNet 浏览量 51,240+ 次(所有版本累计)
mimic-code GitHub Stars 2,500+
MIMIC 相关论文(Google Scholar) 50,000+ 次累计引用
基于 MIMIC-IV 的衍生数据集 (PhysioNet) 50+ 个(如 MIMIC-IV-Ext-PE, MIMIC-IV-Ext-22MCTS, MIMIC-CVM 等)
与 MIMIC 相关的 GitHub 仓库 数千个
BigQuery 社区 (lcp-consortium) 活跃的数据查询和分享社区
学术讨论论坛 PhysioNet 论坛 + MIT LCP Slack 社区

§9 相关资源与引用(Resources & Citation)

9.1 官方资源(official_resources)

9.2 教程与社区资源(tutorials)

9.3 社区交流(community_links)

9.4 BibTeX 引用(bibtex)

@article{PhysioNet-mimiciv-3.1,
    author  = {Johnson, Alistair and Bulgarelli, Lucas and Pollard, Tom
               and Gow, Brian and Moody, Benjamin and Horng, Steven
               and Celi, Leo Anthony and Mark, Roger},
    title   = {{MIMIC-IV}},
    journal = {{PhysioNet}},
    year    = {2024},
    month   = oct,
    note    = {Version 3.1},
    doi     = {10.13026/kpb9-mt58},
    url     = {https://doi.org/10.13026/kpb9-mt58}
}

@article{johnson2023mimic,
    author  = {Johnson, Alistair E. W. and Bulgarelli, Lucas
               and Shen, Lu and Gayles, Alvin and Shammout, Ayad
               and Horng, Steven and Pollard, Tom J. and Hao, Sicheng
               and Moody, Benjamin and Gow, Brian and Lehman, Li-wei H.
               and Celi, Leo A. and Mark, Roger G.},
    title   = {{MIMIC-IV}, a freely accessible electronic health record dataset},
    journal = {Scientific Data},
    volume  = {10},
    number  = {1},
    pages   = {1},
    year    = {2023},
    doi     = {10.1038/s41597-022-01899-x}
}

@article{goldberger2000physiobank,
    author  = {Goldberger, Ary L. and Amaral, Luis A. N. and Glass, Leon
               and Hausdorff, Jeffrey M. and Ivanov, Plamen Ch.
               and Mark, Roger G. and Mietus, Joseph E. and Moody, George B.
               and Peng, Chung-Kang and Stanley, H. Eugene},
    title   = {{PhysioBank}, {PhysioToolkit}, and {PhysioNet}:
               Components of a New Research Resource for Complex Physiologic Signals},
    journal = {Circulation},
    volume  = {101},
    number  = {23},
    pages   = {e215--e220},
    year    = {2000}
}

9.5 引用指南(citation_guide)

  • 引用时机:任何使用 MIMIC-IV 数据的研究都必须引用上述 3 篇论文
  • 引用哪个版本? 除数据集版本号引用(v3.1 DOI: 10.13026/kpb9-mt58)外,还必须引用 Scientific Data 方法论文(Johnson et al., 2023)和 PhysioNet 标准引用(Goldberger et al., 2000)
  • 推荐人引用:MIMIC 申请中的推荐人不需要引用 MIMIC 本身,但需要有其已发表论文的 URL
  • 衍生数据集引用:如果使用 MIMIC-IV-Ext-* 等衍生数据集,需要引用衍生数据集的创建论文和原始 MIMIC 论文

9.6 本页更新日志(changelog)

日期 变更
2026-07-17 初始版本。基于 MIMIC-IV v3.1 (2024-10)。完整覆盖 Schema v1.0 全部 Tier 1-3 字段

9.7 页面贡献者(contributors)

  • 内容编写:千方病案医数集 AI 团队
  • 医学审核:待审核(标注中)
  • 页面 Schema:千方 Wikipedia Schema v1.0

9.8 最后审核日期(last_reviewed)

2026-07-17 — 待正式医学审核


结构化数据(JSON-LD / Schema.org

{
  "@context": "https://schema.org/",
  "": "Dataset",
  "name": "MIMIC-IV Clinical Database",
  "description": "MIMIC-IV 是全球规模最大、使用最广泛的重症监护公开数据库,包含 364,627 名患者、546,028 次住院的脱敏电子健康记录(2008-2022),覆盖结构化时序数据、自由文本临床笔记、胸部 X 光影像和心电图波形。MIMIC-IV 是医疗 AI 研究的事实标准基础设施。",
  "url": "https://www.qianfanghub.com/dataset/mimic-iv",
  "identifier": "10.13026/kpb9-mt58",
  "license": "PhysioNet Credentialed Health Data License 1.5.0",
  "creator": {
    "": "Organization",
    "name": "MIT Laboratory for Computational Physiology & Beth Israel Deaconess Medical Center"
  },
  "dateCreated": "2020",
  "dateModified": "2024-10-11",
  "keywords": [
    "ICU", "electronic health records", "critical care",
    "重症监护", "电子健康记录", "死亡预测", "脓毒症",
    "时序预测", "多模态", "生存分析", "mortality prediction",
    "sepsis", "length of stay", "readmission"
  ],
  "includedInDataCatalog": {
    "": "DataCatalog",
    "name": "千方病案医数集",
    "url": "https://www.qianfanghub.com"
  },
  "measurementTechnique": "结构化电子健康记录(生命体征、实验室检查、药物、诊断编码)+ 自由文本临床笔记 + 胸部X光影像 + 12导联心电图波形",
  "temporalCoverage": "2008/2022",
  "spatialCoverage": "美国马萨诸塞州波士顿 Beth Israel Deaconess Medical Center",
  "isAccessibleForFree": true,
  "distribution": {
    "": "DataDownload",
    "contentUrl": "https://physionet.org/content/mimiciv/3.1/",
    "encodingFormat": "CSV / PostgreSQL / BigQuery / DICOM / WFDB",
    "contentSize": "~7 GB (CSV zip) / ~450 GB (含 CXR 影像)"
  }
}

本页面为千方病案医数集「AI Ready 医疗数据集 Wikipedia」的标杆级数据集条目。它展示了完整 Schema v1.0 在 Tier 3 壁垒层的实现形态——覆盖 9 大模块、60+ 字段、可运行的代码示例、社区基准排行榜和最新的学术参考文献。这定义了千方与其他数据集目录(Kaggle / HuggingFace / Google Dataset Search)在内容深度上的本质差异。

返回 AI Ready 数据集