ICU 血糖管理精选数据集

从 MIMIC-III v1.4 派生、按临床专家规则把胰岛素给药与前置血糖读数逐条配对的整理型数据集:9,518 名患者、145,694 条胰岛素记录、110,011 对血糖-胰岛素配对

来源 MIMIC-III v1.4(BIDMC MetaVision 期,2008 年末至 2012 年)中的 10 个血糖 Item ID 与 6 个胰岛素 Item ID;经清洗、阈值过滤、时间戳校正后,按五条临床专家规则完成胰岛素与前置血糖读数的配对发布时间: 2026-10-18最后更新: 2026-10-18 阅读 15
ICU 血糖管理精选数据集

信息速览

数据集名称ICU 血糖管理精选数据集
数据类型原始数据,时序数据,结构化数据
规模9,518 名患者(整理后交集)/ 11,724 次 ICU 住院;原始血糖覆盖 41,395 名患者,原始胰岛素覆盖 9,638 名患者
接入方式MIMIC-III v1.4(BIDMC MetaVision 期,2008 年末至 2012 年)中的 10 个血糖 Item ID 与 6 个胰岛素 Item ID;经清洗、阈值过滤、时间戳校正后,按五条临床专家规则完成胰岛素与前置血糖读数的配对
AI 就绪度

这是一份把「医生看血糖、开胰岛素」这件事逐条还原成时间戳记录的数据集。它从 MIMIC-III 重症监护数据库里取出 10 种血糖测量和 6 种胰岛素给药记录,清洗、校正时间戳、剔除超出仪器量程的读数,再按五条临床专家认可的规则,把每一次胰岛素给药与它前面最近的那条血糖读数连起来。最终形成的不是一张宽表,而是两张分工明确的表:一张列出所有血糖与胰岛素条目,一张只列配成对的条目并标明用了哪条规则。

它要解决的问题是「电子病历里的血糖和胰岛素对不上」。两者记录在不同的表里,血糖有指尖采血和实验室分析两条来路,胰岛素有团注和输注两种记法,输注还只在开始、变速、停止这三个时刻留下一条记录,中间维持的速率要自己推。直接拿原始表去算,很容易把一条 3 小时前的血糖配给刚刚推的胰岛素,得出荒谬的剂量-反应关系。

使用者通常是做重症血糖建模、胰岛素剂量分析或真实世界证据研究的人。第一件事应当是打开项目里的两个 Jupyter notebook,确认自己理解的清洗口径与作者一致,而不是先看数据长什么样。入口在 PhysioNet 的 credentialed 访问下,没有公开直链,这一点在规划阶段就要计入时间成本。

§1 它是什么:一份「整理过」的派生数据集

1.1 定义与边界

数据集的全名是 Curated Data for Describing Blood Glucose Management in the Intensive Care Unit,字面直译是「用于描述重症监护病房血糖管理的精选数据」。这里的关键词是 curated——整理过、策展过的。它不是一次新的数据采集,也不是一张从数据库里 SELECT * 出来的导出表,而是作者在一个已有的公开数据库之上,用一套写进论文的方法把「血糖」和「胰岛素」两类记录重组成可以直接建模的形态。

三个边界需要先说清楚。

第一,它的全部内容都来自 MIMIC-III v1.4。PhysioNet 项目页把 MIMIC-III Clinical Database v1.4 列为父项目,论文的方法学章节也明确写「数据来源于 MIMIC-III 1.4 版」。因此这份数据集的覆盖人群、脱敏规则、伦理框架,全部继承自 MIMIC-III,作者没有增加任何新的病人。

第二,它不包含原始病历文本、影像、波形。发布物只有两个 CSV 文件,一个是 16 列的非配对条目表,一个是 21 列的配对条目表。想在血糖之外关联诊断、用药、检验、护理记录,需要回到 MIMIC-III 本体去取,再用三级标识拼回去。

第三,它的「整理」不是清洗的同义词,而是变量构造。清洗只是把异常值去掉;这份数据集多做了一步:它规定了「哪一条血糖算是某次胰岛素给药的前置读数」,并且把这个判断写成五条有编号、有命中计数的规则,连同结果一起发布。这一步才是它区别于「MIMIC-III 的血糖子集」的地方。

1.2 「curated」在这份数据集里具体指什么

要理解 curated,最直接的办法是把作者做过的事列出来。按论文 Fig. 1 的流程图与 Methods 的准则编号,从 MIMIC-III 原始表到最终两个 CSV,中间隔着下面这条链:

阶段 做什么 为什么必须做
取数 从 CHARTEVENTS 取 7 个血糖 Item ID、从 LABEVENTS 取 3 个,合计 10 个 MIMIC-III 里同一个「血糖」散落在多个 Item ID 下,指尖法与实验室法分属不同表
取数 从 INPUTEVENTS_MV 取 6 个胰岛素 Item ID CareVue 期的胰岛素记录字段不足,无法区分作用类型与给药途径
清洗 去掉零值、空值、ERROR 标记为异常的条目 录入错误与未完成测量
清洗 去掉两表之间时间戳与数值完全相同的重复读数 同一次测量同时进了 CHARTEVENTS 与 LABEVENTS
阈值 剔除 ≥1000 mg/dL 的实验室值、≥500 mg/dL 的指尖值 超出 BIDMC 所用分析仪与血糖仪的准确测量上限
时间戳 若记录的 STORETIME 早于 CHARTTIME,以前者为测量时间 护士补录会造成测量时间晚于实际抽血时间
阈值 剔除输注速率 ≥29.8 U/hr、常规胰岛素团注 ≥18.0 U 的条目 取自各自分布的 99 百分位,超出者由临床专家判定为录入错误
配对 按五条规则把胰岛素事件与前置血糖读数连接 这一步产出的正是 MIMIC-III 里原本不存在的列
产出 写成 16 列与 21 列两张表 一张给人看全貌,一张给人直接做配对分析

链条里每一步都有代价,作者也把代价写了出来:剔除超量程读数会损失信息,只保留 MetaVision 期会丢掉 2001 到 2008 年初的记录,90 分钟的配对窗口是一组专家共识而非经拟合得出的最优解。这些代价在后文 §4 与 §6 会逐条展开。

1.3 与 MIMIC-III 血糖子集的分工

把这份数据集与「自己在 MIMIC-III 上写 SQL 取血糖」相比,差别集中在三处,且这三处都无法靠增加查询复杂度轻易复现。

一是 Item ID 的归并判断。 MIMIC-III 的指尖血糖与实验室血糖分属不同表、不同 Item ID,同一名患者在同一次 ICU 住院里可能两条路径都走。哪一条算「这一次测量」,取决于你怎么去重。作者的做法是:时间戳与数值完全相同的视为重复并删除,其余保留,并在 GLCSOURCE 字段里标明来路。这个决定看起来琐碎,但它直接决定了后续按来源分层的分析能不能做。

二是输注速率的还原。 电子病历不记录「某时刻正在以多少 U/hr 输注」,它只在开始、变速、停止三个时刻各写一条记录。要知道两次记录之间发生了什么,必须假设速率维持不变,并引用 ORIGINALRATE 列补上缺失的当前速率。这个假设是本数据集 INPUT_HRS 字段可用的前提,也是它的软肋:一旦护士改了速率却没有记录,整段推算都会偏。

三是配对的规则化。 这是最不可能被随手复现的部分。作者没有用「取最近的一条血糖」这种默认做法,而是区分了前置、后置、夹在中间、团注与输注几乎同时这四种情形,各自给出规则,并把命中的规则编号写进 RULE 列。使用者因此可以按规则分层做敏感性分析,也可以把 Rule 1 之外的配对剔除后重跑,看结论是否稳定。

1.4 版本与标识

PhysioNet 上先后发布过两个版本。1.0.0 于 2021 年 1 月 12 日发布,1.0.1 于同年 4 月 19 日发布。按项目页的 Release Notes,1.0.1 的改动只有两处:把关联论文加入参考文献列表并在正文引用,以及给 Methods 补上 Rule 5 的小标题,文件与数据本身没有变动。因此两个版本在数值上可以互换使用,但引用时仍应写明版本号,因为两个版本的 DOI 不同——1.0.1 的 DOI 是 10.13026/517s-2q57,而「latest」指针另有 10.13026/46zt-f692。

数据集在 PhysioNet 的 RRID 是 SCR_007345,这是 PhysioNet 平台层面的资源标识,不是本数据集独有的编号。项目页给出的主题标签有三个:胰岛素替代治疗、血糖控制、重症监护。

§2 十二问十二答

Q1:这个数据集到底有多大?

取决于你问的是哪一层口径,三个数字都需要知道,但不要混用。按发布文件的口径:603,764 行、9,517 名患者、11,724 次 ICU 住院。按数据论文的口径:整理后 536,868 条血糖读数、145,694 条胰岛素记录,覆盖的患者数与前者相差一人,其中 110,011 条胰岛素记录成功配对。按原始口径:血糖条目 2,508,737 条(覆盖 41,395 名患者),胰岛素条目 151,201 条(覆盖 9,638 名患者)。项目页摘要里「近 9,600」的表述,指的就是整理后那个一万以内的精确数字。

Q2:延迟记录那个数字是什么?

是推定存在记录延迟的血糖读数条数。作者发现部分记录的护士记录时间(STORETIME)早于实际录入时间(CHARTTIME),此时以前者作为测量时间,延迟中位数 25 分钟。它既不是患者数不是住院数,也不是配对失败的胰岛素条数——把它写成数据集规模,是这一条目在二手转述中最常见的错误。

Q3:两个 CSV 各自装了什么?

glucose_insulin_ICU.csv 有 16 列,收录所有通过清洗的血糖与胰岛素条目,配不配得上都在这张表里,适合做全貌统计或者自己实现一套配对逻辑。glucose_insulin_pair.csv 有 21 列,在前 16 列之外增加 5 列——配对血糖的时间戳、数值、测量方法,以及命中的规则编号 RULE 与 Repeated 标志。pair 文件把配成对的血糖与胰岛素放在同一行,配不上的单独成行,因此两表的行数不可简单相加。

Q4:字段名能直接用来建模吗?

大部分可以,但有三处需要先处理。其一,TIMER 是「排序用的时间戳」,它在一行里可能指向胰岛素开始时间,也可能指向血糖测量时间,取决于这一行是胰岛素条目还是血糖条目,不能当作统一的事件时间。其二,INFXSTOP 是输注状态标志而不是时长,一次输注的总时长要靠首条 INFXSTOP=0 的 STARTTIME 与后续 INFXSTOP=1 的 ENDTIME 相减得到。其三,配对侧的 GLC_AL 与主血糖列 GLC 语义相近但不等价,混用会导致重复计数。

Q5:谁能拿到数据?

只有通过 PhysioNet 认证、签署 PhysioNet Credentialed Health Data Use Agreement 1.5.0、并完成 CITI「Data or Specimens Only Research」培训的研究者。发布方式是 credentialed access,没有公开直链,也没有演示子集。由于数据源自 MIMIC-III,实操上还需要先完成 MIMIC 本体的认证流程。

Q6:为什么不公开?

数据来自真实的住院病历,即便已经去标识化,血糖与胰岛素的密集时间序列配合 ICU 住院时长、入院年份,仍然具备再识别的风险窗口。PhysioNet 对这类数据的统一处理是 credentialed access 而非完全公开,本数据集沿用了这一政策,许可名为 PhysioNet Credentialed Health Data License 1.5.0。

Q7:和 MIMIC-III 是什么关系?

派生关系。MIMIC-III v1.4 是父项目,提供全部原始记录;本数据集把其中与血糖、胰岛素相关的部分取出来,重组成两张宽表并补充配对列。反过来不成立:MIMIC-III 里没有 RULE、没有 GLCTIMER_AL、没有 INFXSTOP,这些列是对原始记录加工后才有的。

Q8:和 MIMIC-IV 派生资源能混用吗?

不能直接混。本数据集只覆盖 2008 年末至 2012 年,来自 BIDMC 的 MetaVision 系统;MIMIC-IV 覆盖 2008 至 2019 年且表结构不同。若要把时间跨度延长到 2019 年,需要自己在 MIMIC-IV 上重跑一套等价流程,而 MIMIC-IV 的 Item ID 体系与 MIMIC-III 不完全对应,无法照搬。库内另有一条同名同域的 ECG-血糖配对资源,其配对对象是心电图而不是胰岛素,两者不可互相替代。

Q9:低血糖标签在哪一列?

没有这一列。数据集不含低血糖或高血糖的事件标签,官方文档也没有给出阈值。要研究低血糖,需要使用者用 GLC 字段自行设定阈值,并且要接受一个前提:配对规则已经在系统层面排除了低血糖之后紧接着的胰岛素给药,因此「低血糖后医生做了什么」这类问题,在这份数据的配对视图里看不到完整答案。

Q10:为什么 90 分钟?

依据是糖尿病酮症酸中毒指南建议输注胰岛素期间每 60 分钟测一次血糖,加上 30 分钟的记录延迟余量,合计 90 分钟。这个数字是共识推导而非拟合结果,作者用 60 分钟窗口做了敏感性分析:配对率从 80.8% 降到 73.4%,但配对血糖的中位数不变,说明窗口放宽主要吸收的是时间差偏长的配对,对主体分布影响有限。

Q11:短效、中效、长效为什么差别这么大?

因为给药依据不同。短效胰岛素团注通常是「看到高血糖就补一针」,与前置读数的因果链清晰,配对率最高。中效与长效多作为基础胰岛素按固定时刻给,依据是整体血糖水平和体重,而非当次的单条读数,因此配对率明显偏低,未配对的比率分别达到 75.7% 与 66.0%。

Q12:这份数据能不能直接做剂量-反应建模?

可以做,但要先想清楚三件事。其一,配对结果是「医生在某条血糖之后给了某剂量」,不是「该剂量导致了该血糖变化」,因果方向需要另外设计。其二,混用团注与输注会把 U 与 U/hr 两种单位塞进同一个自变量。其三,中效与长效的配对样本偏少且偏倚明显,把它们并入「胰岛素」做单一变量,实际上是在用小样本的代表性去污染大样本的分布。

§3 数据构成:字段、口径与规格表

3.1 表结构与列数

数据集由两个 CSV 构成,各自以 ZIP 压缩发布。非配对表 glucose_insulin_ICU.csv 有 16 列,配对表 glucose_insulin_pair.csv 有 21 列,后者是前者加上 5 个配对侧字段。需要强调的处理细节在于:配对表的一行不一定对应一个事件——当一条血糖与一次胰岛素给药成功配对时,两者合并在同一行;当某条血糖没有配上、或某次胰岛素没有配上时,它单独占一行。因此配对表的行数既不等于血糖条数,也不等于胰岛素条数,更不等于两者之和。

3.2 共有 16 列的语义

字段 类型与单位 语义 字段可靠性
SUBJECT_ID 整数 患者唯一标识,跨住院不变 官方文档明确披露;继承 MIMIC-III 脱敏编号,可回接
HADM_ID 整数 一次医院入院标识 官方文档明确披露
ICUSTAY_ID 整数 一次 ICU 住院标识,粒度最细 官方文档明确披露;分析单元应以此为准
LOS_ICU_days 浮点,天 该次 ICU 住院时长 官方文档明确披露;与 MIMIC-III 的 ICU 时长口径一致
first_ICU_stay 布尔 是否为该次医院入院的首次 ICU 住院 官方文档明确披露;用于排除院内转科重复
TIMER 时间戳 排序用时间戳,指向该行主事件 官方文档明确披露;语义随行类型变化,非统一事件时间
STARTTIME 时间戳 胰岛素事件开始或新速率生效时刻 官方文档明确披露
INPUT 浮点,U 单次团注剂量 官方文档明确披露;0.1 U 为表中观察到的最小值
INPUT_HRS 浮点,U/hr 输注速率 官方文档明确披露;为推算值,依赖速率维持假设
ENDTIME 时间戳 该段速率结束或输注停止时刻 官方文档明确披露
INSULINTYPE 枚举 short / intermediate / long 官方文档明确披露;由 Item ID 映射得到
EVENT 枚举 BOLUS_INYECTION / BOLUS_PUSH / INFUSION 官方文档明确披露;注意字段名拼写为 INYECTION 而非 INJECTION
INFXSTOP 0/1 1 表示输注中止,0 表示开始或变速 官方文档明确披露;是状态标志不是时长
GLCTIMER 时间戳 血糖测量时刻(经 STORETIME 校正后) 官方文档明确披露;校正逻辑见 §3.4
GLC 浮点,mg/dL 血糖读数 官方文档明确披露;已剔除超量程值
GLCSOURCE 枚举 FINGERSTICK / BLOOD 官方文档明确披露;BLOOD 对应实验室分析仪

3.3 配对表独有的 5 列

字段 语义 字段可靠性
GLCTIMER_AL 配对侧血糖读数的时间戳 官方文档明确披露
GLC_AL 配对侧血糖读数的数值(mg/dL) 官方文档明确披露
GLCSOURCE_AL 配对侧血糖的测量方法 官方文档明确披露
RULE 该配对由第几条规则命中 官方文档明确披露;Rule 5 仅作排除,不单独计数
Repeated 该血糖是否同时与后续胰岛素有配对关系 官方文档明确披露;用于识别同一读数被多次使用

这五列的价值在于可审计。若不加 RULE 列,使用者只能看到一个成品配对结果,无法判断某条配对是「90 分钟内紧邻」还是「两条读数之间取较高者」这种较弱的关联。有了 RULE,就可以做分层:只保留 Rule 1 的配对,看看结论会不会翻转。Repeated 列的价值类似,它把「同一条血糖被三次给药引用」这种情况显式化,避免在按血糖计数时高估独立事件数。

3.4 血糖侧的构造细节

血糖的构造分四步,每一步都在改变样本量。

第一步,Item ID 归并。 10 个 Item ID 分属两张表,其中 CHARTEVENTS 七个(807、811、1529、3744、3745、225664、220621、226537 中的七个,实际分布见论文 Table 1),LABEVENTS 三个(50809、50931,以及 50931 所在的血气组)。合并后得到血糖条目 2,508,737 条,覆盖 41,395 名患者。这一数字是分子还是分母,取决于后续讨论——记住它是全部清洗动作的起点。

第二步,去无效与去重。 剔除零值、空白与空值;剔除 CHARTEVENTS 中 ERROR 列未记录或标记为 1 的条目;剔除 LABEVENTS 与 CHARTEVENTS 之间时间戳与数值完全相同的重复读数。

第三步,量程阈值。 ≥1000 mg/dL 的实验室分析仪读数全部剔除,理由是超出 BIDMC 实验室分析仪的准确测量上限;指尖读数上限为 500 mg/dL,超过者剔除,理由是超出该院血糖仪的准确量程。两个阈值各剔除 144 条与 146 条,分别占原始条目的 0.06% 与 0.05%——这个量级说明阈值本身没有大规模改变分布,但它解释了为什么最终数据的最大值是 999 mg/dL 而不是更高。

第四步,时间戳校正。 若 STORETIME(护士记录核查时间)早于 CHARTTIME(实际数据录入时间),则以 STORETIME 作为血糖测量时间;否则保留 CHARTTIME。这一条针对的是补录。校正涉及 44,926 条记录,延迟中位数 25 分钟;换句话说,有一批记录的「官方测量时间」被向前拨了约半小时。

经过四步后,血糖条目降至上表所述的整理后规模,覆盖人群收敛到与胰岛素侧相同的一批患者。

3.5 胰岛素侧的构造细节

胰岛素侧的动作更复杂,因为它涉及变量构造而非单纯过滤。

原始条目 151,201 条,覆盖 9,638 名患者,来自 INPUTEVENTS_MV 的 6 个 Item ID。作者只整理 MetaVision 期,明确理由是 CareVue 的字段不够丰富——具体说,CareVue 无法区分胰岛素的作用类型。这意味着 2001 年至 2008 年初的记录被整体放弃。

清洗规则有六条,其中两条是构造性的:

速率缺失的填补。 当某条记录没有写当前输注速率时,作者判定「速率自上次录入以来未变」,取 ORIGINALRATE 列的值。这不是插值,而是一个行为假设:护士没有改速率,所以没记。

输注总量的计算。 电子病历在开始、变速、停止三个时刻各记一条,每条带一个速率。要得到一段时间内的输注总量,需按「该速率持续的时间 × 该速率」逐段累加。这个计算方式与团注不同——团注(bolus)是独立的一次性事件,直接记剂量。

异常值处理使用 99 百分位作为边界:常规胰岛素团注 ≥18.0 U 的剔除,输注速率 ≥29.8 U/hr 的剔除,≤0 的一律剔除,超出者由临床专家逐条判定为录入错误。清洗后剩 145,694 条,覆盖 9,518 名患者——与血糖侧的患者数完全相等,说明两侧在排除未接受胰岛素者之后收敛到了同一人群。

3.6 配对的构造细节与规则表

配对是这份数据集最核心的构造步骤。规则目标可以一句话概括:把每一剂常规胰岛素与其最近的一次血糖测量关联起来,且这个关联要有临床合理性。

规则 判定逻辑 命中数 占已配对的比例
Rule 1 血糖读数早于胰岛素给药,提前量不超过 90 分钟 86,913 79%
Rule 2 无前置血糖时,与随后 90 分钟内的血糖配对 8,841 8%
Rule 3 给药夹在两次血糖之间时,取两次中较高者,且两者均在 90 分钟内 5,574 5%
Rule 4 团注与输注时间接近时,假定先团注后输注,均与前置血糖配对 8,683 8%
Rule 5 血糖 < 90 mg/dL 的读数不与随后胰岛素配对 不计入 仅作排除

配对的总体结果是 145,678 条参与配对的胰岛素事件中,110,011 条成功配对,配对率 75.5%。论文摘要与项目页摘要都用「近 76%」来表述这个数字,二者一致。

规则之间存在优先级。Rule 1 是主路径,占已配对的绝大多数;Rule 2 处理「先给药后测血糖」这种在 ICU 里并不罕见的情形——病人刚从手术室转回,护士先按经验推了胰岛素,随后才抽血;Rule 3 处理连续监测中夹在中间的一次给药,此时取较高值,理由是临床决策通常参照较高的那个读数;Rule 4 处理同一时刻既推团注又开始泵入的操作,这在胰岛素泵启动时很常见。

3.7 规格对照表

维度 非配对表 配对表
文件名 glucose_insulin_ICU.csv(ZIP) glucose_insulin_pair.csv(ZIP)
列数 16 21
行的含义 一条血糖或一条胰岛素 一个配对单元,可能是合并行,也可能是单侧行
是否有规则列 否 是(RULE)
适合的分析 全貌统计、自行实现配对逻辑 直接做配对分析、按规则分层
覆盖患者 论文口径(主) 项目页口径,差一人
覆盖 ICU 住院 同附录 A 主口径 同上
总行数 两表合计 603,764(项目页口径) 同左
文件字节大小 官方文档未披露 官方文档未披露

最后一行值得单独说明。项目页在本次核验时没有给出文件的字节大小,Files 区的条目在地理限制下不可读。规划存储时不应假设「CSV 一定很小」:60 万行、21 列的常规 CSV 通常在数十 MB 到百 MB 级别,加上 ZIP 压缩可显著缩小,但精确数字需要认证后自行确认。这一项属于官方文档未披露,不做估算。

3.8 数据的分布特征

论文用四张表刻画了整理后的分布,这些数字对建模时的先验设定有直接用处。

血糖分布。 全量 536,868 条读数的均值 147.8 mg/dL、标准差 61.8、中位数 134.0,偏度 2.7,超额峰度 15.0。按来源分层:实验室读数 255,691 条(47.6%),均值 151.3、中位数 138.0、偏度 1.8;指尖读数 281,177 条(52.4%),均值 143.8、中位数 129.0、偏度 3.5。指尖侧的最小值为 0.1 mg/dL,实验室侧为 4.0 mg/dL,最大值为 999.0 mg/dL。指尖读数偏度更高,说明其分布更集中在正常区间而在高值端有长尾。

给药途径分布。 整理后的胰岛素记录中,团注 101,057 条(69.4%),输注 44,637 条(30.6%)。团注内部,皮下给药 91,756 条(占团注 63.0%),静脉推注 9,301 条(占团注 6.4%)。短效胰岛素占全部给药的 90.8%。

按类型的配对情形。 短效输注的配对血糖中位数 145.0 mg/dL,对应胰岛素速率中位数 4.0 U/hr;短效团注的配对血糖中位数 173.0 mg/dL,对应剂量中位数 4.0 U。中效团注的配对血糖中位数 151.0 mg/dL,对应剂量中位数 15.0 U;长效团注的配对血糖中位数 130.0 mg/dL,对应剂量中位数 20.0 U。这一组对比揭示了一个临床常识:短效看当下血糖决定剂量,长效按固定方案给、与当次血糖的关系弱。

住院时长分布。 ICU 住院时长均值 12.0 ± 13.0 天,中位数 7 天,最常见值为 1 天(占 10.7%),最长约 102 天,超过一半的住院不超过一周。这是一个高度右偏的分布,任何按住院聚合的分析都应考虑中位数而非均值。

§4 整理方法论:从原始记录到可建模变量

这一节是理解整份数据的钥匙。curated 这个词用在哪里都会显得体面,但它的实际内容只在四个地方——血糖怎么定义、胰岛素给药怎么折算、配对怎么判定、时间戳怎么校正。下面逐一拆开。

4.1 血糖的四个来源与两条来路

MIMIC-III 里「血糖」不是一个字段,是至少十个 Item ID 的集合。这十个 ID 背后是两种完全不同的测量方法,其误差结构也不同。

指尖采血(fingerstick) 用的是床旁血糖仪,一滴毛细血管血,几十秒出结果,护士在床旁就能做,因此测量密度高、时间点更接近临床决策时刻。代价是准确度受仪器、试纸、操作手法影响,且量程有限——该院血糖仪的上限是 500 mg/dL,超过的读数会被记为 500。

实验室分析仪(laboratory analyzer) 走的是抽血送检流程,从采血到出结果有时间差,测量密度低,但准确度高、量程宽(上限 1000 mg/dL)。在 MIMIC-III 中,这类读数出现在 CHARTEVENTS 的血清葡萄糖与全血葡萄糖条目里,以及 LABEVENTS 的生化与血气条目里。

这个区分不是学术洁癖。论文用 Bland-Altman 方法对两种方法做了一致性分析,配对读数 11,904 对:在 30 分钟以内,两者的平均偏差约 2 mg/dL,临床上可以认为等价;但时间差超过 120 分钟时,中位差值升到 15 mg/dL,四分位区间为 −13 到 44.5。这说明跨方法比较必须限制时间窗,否则看到的是血糖随时间自然漂移,而不是方法学差异。

4.2 阈值的临床依据而非统计依据

三个阈值都来自仪器规格,而不是数据自身的分布。

阈值 取值 依据 剔除条数
实验室值上限 1000 mg/dL BIDMC 实验室分析仪准确测量上限 144(0.06%)
指尖值上限 500 mg/dL BIDMC 床旁血糖仪准确测量上限 146(0.05%)
胰岛素团注上限 18.0 U 分布 99 百分位 + 专家判定 未单独披露
胰岛素输注速率上限 29.8 U/hr 分布 99 百分位 + 专家判定 未单独披露

两种阈值的性质不同。血糖的两个阈值是物理量程,超出即无效,剔除无可争议;胰岛素的两个阈值是统计学离群值加专家复核,本质上是一次判断:99 百分位之外的给药,是真实的高剂量还是录入错误。作者选择由临床专家逐条判定,而不是机械剔除,理由是机械规则在假设有误时会引入偏差。这个选择使剔除过程可辩护,但也使它不可完全复现——同一批数据交给另一组专家,边界可能略有不同。

4.3 胰岛素给药怎么折算成可比的量

这是全篇最容易写空的地方,也是最需要说清楚的地方。电子病历对胰岛素的记录方式,决定了「一条记录」和「一次给药」不是同一件事。

团注(bolus) 是瞬时事件。一条记录就是一个剂量,单位 U。它可能走皮下(BOLUS_INYECTION),也可能走静脉(BOLUS_PUSH)。在整理后的数据里,团注 101,057 条,其中皮下 91,756 条、静脉 9,301 条。

输注(infusion) 是持续事件。它不按「一次给药」记录,而按「状态变化」记录:开始泵入时记一条,速率改变时记一条,停止时记一条。每条记录带一个速率(U/hr)和一个时间戳。要知道某个时间窗内实际输注了多少,必须做三件事:

  1. 还原速率分段。 相邻两条记录之间的时间段,默认速率不变,等于前一条记录的速率。
  2. 填补缺失速率。 若某条记录没有写当前速率,取 ORIGINALRATE 列的值,含义是「自上次录入以来未改动」。
  3. 按持续时间积分。 一段输注量 = 该段速率 × 该段持续小时数。

这个折算的结果落在 INPUT_HRS 字段——注意它是速率,不是总量。总量需要使用者自己按时间窗积分。数据集官方没有提供一个「累计输注量」字段,也没有把团注与输注换算成某个统一的「总胰岛素当量」。这一点必须强调:任何声称本数据集内含「总胰岛素剂量」字段的说法都是错的。

团注与输注之间还有一层不可通约性。团注是一次性给入,药代动力学上表现为一个脉冲;输注是持续输入,表现为稳态。把两者的数值相加得到的「总剂量」,在药理学上没有明确含义,因为同样 10 U,一次性推注与 10 小时匀速输注的血药浓度曲线完全不同。论文在深入分析时选择只做短效团注,部分原因就在这里。

4.4 营养摄入的碳水折算:这份数据集不含此层

有一个常见的期待需要在这里澄清:血糖管理的完整闭环包括「进食碳水 → 血糖上升 → 胰岛素调整」,因此直觉上会希望数据集里有碳水摄入量,以便计算胰岛素-碳水比。

这份数据集没有营养或碳水字段。 它的 16 列与 21 列中都找不到任何进食、热量、葡萄糖输注的记录。作者也没有在论文中声称做过碳水折算。若研究问题需要碳水信息,必须回到 MIMIC-III 的输入表(INPUTEVENTS)自行取用葡萄糖输注与肠内营养记录,并按 ICUSTAY_ID 与时间戳对齐——这一步不在本数据集的责任范围内,且 MIMIC-III 的肠内营养记录在 MetaVision 与 CareVue 两期的字段并不一致。

同理,数据集也不含体重字段。按 kg 归一化的胰岛素剂量(U/kg)是重症血糖研究中的常用指标,但在这份数据上无法直接计算,必须从 MIMIC-III 的 CHARTEVENTS 中取体重记录再合并。这是使用时最容易被忽略的前置步骤。

4.5 配对规则的推导过程

五条规则不是从数据里跑出来的,而是从临床流程里推出来的。理解推导过程,比记住规则本身更重要。

问题的起点是:血糖与胰岛素分属两张表,一条胰岛素记录与一条血糖记录之间没有外键,只能靠时间和患者身份去关联。最朴素的做法是「取时间上最近的一条血糖」,但这样做会出错。

错在哪。 论文用 Table 8 做了直接演示。若不施加任何规则,短效团注的配对率高达 89.2%,看起来比施加规则时的 80.8% 更好。但这条路径把血糖低至 2 mg/dL 的读数与常规胰岛素团注配在了一起——临床上不可能出现「血糖 2 mg/dL 还给常规胰岛素」的情形,这说明不施规则时抓到的是时间上的巧合而非因果链。

规则的构造逻辑因此是「先定义什么算合理的配对,再倒推时间窗」。合理性来自两条指南依据:其一,糖尿病酮症酸中毒治疗中建议输注胰岛素期间每小时测一次血糖,这是 60 分钟的由来;其二,电子病历的录入存在延迟,需要额外余量,这是 30 分钟的由来。60 加 30 等于 90。

Rule 5 的特殊地位。 它不是一个配对规则,而是一个排除规则:血糖低于 90 mg/dL 时不与随后的胰岛素配对,理由是「没有临床医生会用常规胰岛素团注或输注去处理这么低的血糖」。它没有命中计数,因为它的作用是删除不合理配对,而不是建立新配对。这一条也说明作者意识到:规则系统的价值不仅在于连上该连的,也在于切断不该连的。

4.6 时间戳校正的两种失败模式

时间戳是整份数据里最脆弱的一环,作者处理了其中两种。

失败模式一:补录。 护士在测完血糖若干分钟后才在系统里录入,此时 CHARTTIME(录入时间)晚于实际采血时刻。作者以 STORETIME(护士记录核查时间)替代,条件是前者早于后者。涉及 44,926 条记录,中位延迟 25 分钟。这个处理把测量时间向前拨,使配对窗口的起点更接近真实。

失败模式二:跨出 ICU。 少数记录的给药时间落在 ICU 住院期之外。作者剔除了 16 条这样的胰岛素输入,占整理后条目的 0.01%,数量极小但性质重要——它说明时间戳与 ICUSTAY_ID 之间存在不一致,若不处理,这些记录会在按 ICU 住院聚合时被错配到别的住院段。

没有被处理的模式同样值得知道。胰岛素输注的速率变更若未被记录,第 4.3 节所述的速率分段就会错误地延续前一段速率;血糖测量若漏记,配对窗口内的空白会被 Rule 2 用后续读数填补,而这未必反映当时的临床判断。这两类遗漏在黑盒状态下无法检测,只能在解释结果时留出余地。

§5 数据质量:验证、敏感性与已知问题

5.1 官方做了哪些验证

项目页与论文都没有提供基准模型或评测分数,这里的「验证」指的是数据本身的质量验证,分三条线。

第一条,方法一致性。 Bland-Altman 分析,11,904 对同时或近时的指尖与实验室读数。结论是 30 分钟内平均偏差约 2 mg/dL,可以互换;1 小时内偏差仍小;超过 2 小时偏差显著放大。这条验证回答的是「GLCSOURCE 两种取值能否合并统计」。

第二条,配对规则敏感性。 同一批短效团注,在三种窗口设定下重新配对:90 分钟得 71,455 条(80.8%),60 分钟得 64,925 条(73.4%),不施规则得 78,881 条(89.2%)。关键不是配对率高低,而是配对后血糖分布是否稳定:90 分钟与 60 分钟两种设定下,配对血糖的中位数都是 173 mg/dL,四分位区间都是 150 到 211;不施规则时中位数降到 169,且最小值跌到 2 mg/dL。这说明收紧窗口主要丢弃的是时间差长的配对,对主体分布影响有限。

第三条,分布合理性。 Fig. 3 给出短效输注与短效团注的配对血糖-剂量联合分布。输注侧最常见的是 2 到 4 U/hr 对应 115 到 140 mg/dL,共 1,952 次;团注侧最常见的是 2 到 4 U 对应 140 到 165 mg/dL,共 8,333 次。两图的形态符合临床常识:血糖越高,给的胰岛素越多,且团注侧的血糖起点整体高于输注侧。

5.2 假设—支持—反对

假设 支持证据 反对证据 结论强度
90 分钟窗口是一组合适的配对边界 依指南的 60 分钟测糖间隔加 30 分钟录入延迟推导;敏感性分析显示收紧到 60 分钟配对率降 7.4 个百分点但中位血糖不变 窗口是共识推导而非拟合;不同医院、不同年代的测糖频率差异大,外部效度未验证 B
指尖与实验室读数可以合并统计 30 分钟内平均偏差约 2 mg/dL,11,904 对 超过 2 小时后偏差扩至中位 15 mg/dL;且两法的时间密度差异大,合并后会改变「何时有测量」的分布 B
速率缺失时「维持不变」的假设成立 作者据此补全 ORIGINALRATE,清洗后条目数与患者数自洽 没有任何验证数据说明缺失速率记录的比例与填补误差;护士改速率未记录时会系统性低估或高估输注量 C
中长效胰岛素配对率低是给药逻辑所致 中效未配对 75.7%、长效 66.0%,远低于短效;论文解释为基础胰岛素按固定方案给 未做替代解释的检验,例如是否部分源于给药记录本身的缺失 B
这批延迟记录代表录入延迟 作者给出 STORETIME 早于 CHARTTIME 的判据与中位延迟 25 分钟 未报告延迟的分布形状与极端值;也未见对校正前后配对结果差异的分析 B

5.3 已知问题清单

问题一,只覆盖 MetaVision 期。 2001 年到 2008 年初的 CareVue 记录被整体排除,理由是字段不足。后果是数据只覆盖 2008 年末至 2012 年这一窗口,在 MIMIC-III 的完整时间跨度中占不到一半。研究「血糖管理实践随时间演变」时,这份数据无法提供 Early 期的基线。

问题二,中长效配对偏弱。 这不是缺陷而是如实记录,但它限制了使用面:想研究中效或长效胰岛素的剂量反应,可用的配对样本只有短效的四分之一左右,且这些配对的规则命中结构也不同。

问题三,缺失率未披露。 各字段的缺失率官方文档未给出。可以确定的是,血糖侧不存在空值(清洗时已剔除),胰岛素侧的 INPUT 与 INPUT_HRS 互斥——团注行的 INPUT_HRS 为空,输注行的 INPUT 为空。除此之外的缺失情况需要使用者自行统计。

问题四,单位不统一。 INPUT 是 U,INPUT_HRS 是 U/hr,GLC 是 mg/dL。跨类型比较必须手工换算或分组建模,数据集没有提供归一化后的字段。

问题五,患者数与住院数存在小口径差。 项目页与论文在患者数上相差一人,在 ICU 住院数上相差四百余次。官方没有逐项解释,见 §8 的误读表与附录 A。

5.4 代码的可复现性

作者发布了两个 Jupyter notebook(Python 3.7),分别负责数据整理与配对;两个 MATLAB Live Script(需 R2019b 及以上),负责血糖统计与配对结果分析;一个 Functions 子目录供 MATLAB 脚本调用;以及两个 SQL 查询文件,分别抽取血糖与胰岛素。

代码的可复现性有一个重要前提:SQL 是针对 Google BigQuery 方言写的,因为 MIMIC-III 托管在 Google Cloud 上。想在本地 PostgreSQL 上跑,需要改写语法。此外,代码与数据同在一个 PhysioNet 项目内,同样需要通过 credentialed 认证才能访问——这意味着即便只是想看看作者的清洗逻辑,也得先完成认证流程。这一点在规划学习曲线时常被低估。

§6 怎么拿到:认证、许可与合规

6.1 三层门槛

获取这份数据的路径是一串串联的闸门,任何一道没过都拿不到文件。

顺序 闸门 内容 大致耗时性质
1 注册 PhysioNet 账号 填写真实姓名、机构、邮箱 即时
2 完成 CITI 培训 「Data or Specimens Only Research」课程 需数小时在线课程与考试
3 提交认证材料 签署 DUA,由所在机构背书 需人工审核,时间不确定
4 申请本项目访问 在项目页申请 credentialed access 与第 3 步通常一并处理

由于数据源是 MIMIC-III,实操上通常还要先通过 MIMIC 本体的认证。若已在 MIMIC 认证名单内,本项目的申请会顺畅得多;若完全从零开始,第一道门槛就要花上数天到数周,具体时长取决于机构审批速度,不属于数据集本身的性质。

6.2 许可条款的实际约束

许可名为 PhysioNet Credentialed Health Data License 1.5.0,配套的使用协议为 PhysioNet Credentialed Health Data Use Agreement 1.5.0。对使用者而言,实际约束可以归纳为四条。

不得尝试再识别。 即便数据已经去标识化,也不得通过与其他数据源交叉比对来还原个体身份。这一条是整套许可的核心,违约后果由机构承担。

不得再分发。 数据不能转给未认证的第三方,包括同事、合作者、学生。合作者需各自完成认证。

衍生结果需谨慎。 基于数据得出的统计量、模型参数可以发表,但不得包含可还原到个体的记录级信息。发布聚合表格时要检查小样本格。

用途限定。 仅限研究用途,不得用于商业目的或直接用于临床决策。这一条对想做产品的团队是硬约束。

6.3 谁拿不到,以及为什么这不是缺陷

这份数据没有公开直链、没有演示子集、没有 HuggingFace 镜像。对做快速原型的人来说,这确实降低了可用性;但从合规角度看,这是此类临床时序数据的通行处理方式。血糖读数的密度足以构成准指纹——一个人在 5 天住院里每 4 小时一次、连续 30 次的血糖值序列,配合胰岛素剂量与住院时长,其可识别性远高于孤立的单条检验值。因此受控访问不是保守,是必要条件。

想在动手之前先了解数据长什么样,可行的途径有三条:读数据论文的 Table 1 到 Table 9(分布、分位数、配对率都在里面);读项目页的字段说明(16 列与 21 列逐列有释义);读作者的 notebook(同样需认证,但若已通过 MIMIC 认证则一并可用)。

§7 能做什么:任务清单与最小可执行示例

7.1 任务清单

这份数据支持的研究方向可以按「需要配对表」与「只需要非配对表」分成两组。

强依赖配对表的方向。

  • 胰岛素剂量-血糖响应的描述性分析。 以配对血糖为自变量、胰岛素剂量为因变量,拟合分位数回归而非均值回归,因为剂量分布右偏严重(团注中位数 4.0 U,最大值 17.0 U)。
  • 按规则分层的稳健性检验。 只用 Rule 1 的配对重跑主分析,与全量结果对比。这是这套数据独有的能力——其他数据集不给规则编号,无法做这种分层。
  • 真实世界胰岛素抵抗的代理指标。 观察「同等血糖水平下,不同患者被给予的剂量差异」,将这种差异作为临床判断异质性的代理,而不是生理学上的胰岛素敏感性。
  • 血糖控制质量的时间序列刻画。 按 ICUSTAY_ID 聚合,计算每段住院的血糖均值、变异系数、高值占比,再与 LOS_ICU_days 关联。

只需非配对表的方向。

  • 血糖测量频率的实践研究。 什么情况下医生会加密测糖?这是纯流程问题,不需要配对。
  • 指尖与实验室两种路径的使用模式。 哪些科室、哪些时段更依赖床旁血糖仪。GLCSOURCE 字段足够回答。
  • 胰岛素给药类型的时间趋势。 输注占比在 2008 到 2012 年间是否上升,可用来描述泵的使用扩散。

不建议直接做的方向。 用这份数据做治疗因果推断而不做额外的设计(如工具变量、断点回归),基本会失败:配对关系是「医生看到血糖后给药」,存在强烈的适应证混杂,且数据不含 SOFA、合并症、合并用药等协变量,无法调整。论文自己在技术验证里做过一次逻辑回归,用的是另取的 SOFA 与糖尿病标志,说明这些变量不在本数据集内。

7.2 最小可执行示例:一次分层统计

下面这段伪代码演示最常见的入口——按规则分层,比较配对血糖的分布。它展示的正是这份数据相对于原始 MIMIC-III 的增量价值。

读取 glucose_insulin_pair.csv
保留 INSULINTYPE == "short" 且 EVENT 属于团注类的行
按 RULE 分组,分别计算 GLC_AL 的中位数与四分位距
再按 GLCSOURCE_AL 二次分组,检查指尖与实验室读数是否混在同一层里

三步各有陷阱。第一步里,EVENT 有两个团注取值(皮下与静脉),只筛一个会漏掉一半;第二步里,RULE 为空的行是未配对条目,参与分组会把缺失当成一个类别;第三步里,若某一规则下绝大多数配对来自指尖读数,则该层的结论只适用于床旁测量。

7.3 一个更贴近实际的示例:识别输注段

要算某次 ICU 住院的总输注量,需要把散落的记录拼成连续的段。

按 ICUSTAY_ID 与 STARTTIME 排序
找出 INFXSTOP == 0 的第一条,记下起点与速率
向后遍历,直到遇到 INFXSTOP == 1,记下终点
段内总量 = 速率 × (终点 − 起点) 的小时数
若中途出现新的 INFXSTOP == 0 且速率不同,则断成两段

这段逻辑与作者在 Methods 里描述的一致,但它成立的前提是速率在两次记录之间不变。如果某段里护士改了速率却未记录,算出来的总量会偏离。实操上建议的做法是:先统计每段的时长分布,把时长异常长(比如超过 24 小时没有任何记录变动)的段单独挑出来核对,因为这类段最可能是记录遗漏而非真的匀速输注。

7.4 与下游模型的衔接

若要把这份数据接入序列模型,需要先决定三件事。

事件粒度。 是以「每次给药」为一行,还是以「每小时」为一行。前者保留稀疏性但时间间隔不规则,后者规整但会产生大量插值。这份数据的天平倾向后者:它的时间戳已经过校正,正是为了让补全更可信。

缺失机制。 血糖不是按时测量的,而是按需测量的——血糖越高、病情越重,测得越勤。这意味着缺失不是随机的,任何把「没有测量」当作「血糖正常」的补全都会系统性低估高血糖。稳妥的做法是把「距上次测量的时长」作为一个显式特征输入,而不是让模型去猜。

单位处理。 团注与输注必须分开建模,或至少分开标准化后再拼接。把 U 与 U/hr 直接放进同一个特征维度,等于让模型去学一个不存在的换算关系。

§8 常见误读与引用陷阱

8.1 误读表

常见说法 实际口径 证据位置
数据集有 44,926 例 这个数是推定存在记录延迟的血糖读数条数,不是患者数、住院数或配对数 项目页 Methods 的时间戳假设段;论文 Methods
数据集约 9,600 名患者、约 1.1 万次 ICU 住院,共 4.5 万条记录 记录数与人群数被混成一个数字 同上
数据集包含营养摄入与碳水折算 不含任何营养、热量、碳水或体重字段 两表的 16 列与 21 列字段清单
数据集提供了「总胰岛素剂量」字段 只有 INPUT(团注剂量,U)与 INPUT_HRS(输注速率,U/hr),总量需自行按时间积分 项目页字段说明
数据集有低血糖标签 无任何事件标签,官方也未给低血糖数值定义 全文与全部字段;论文 Limitations
90 mg/dL 是低血糖的定义 是 Rule 5 的配对排除阈值,用于切断不合理配对 项目页 Rule 5;论文 Methods
91% 的胰岛素事件都配上了血糖 配对率 75.5%;80.8% 是短效团注在 90 分钟窗下的分项数字;89.2% 是不施规则的错误上界 论文 Table 3 与 Table 8
数据覆盖 MIMIC-III 的完整 2001 到 2012 年 只整理 MetaVision 期,约 2008 年末至 2012 年 项目页 Methods 与 Background;论文 Methods
数据是公开可下载的 credentialed access,需认证、DUA 与 CITI 培训,无公开直链、无演示子集 项目页 Access Policy 与 License
数据集自带基准分数或排行榜 无任何 benchmark、基线模型或排行榜 项目页与论文全篇
可以直接在 MIMIC-IV 上延长分析 MIMIC-IV 的 Item ID 与表结构不同,流程不可照搬 两库各自的表结构文档
交付文件与 MIMIC-III 的血糖子集等价 多了配对列、规则编号与 INFXSTOP 等构造字段,是加工产物 §3.2 与 §3.3 字段对照

8.2 技术陷阱

ID 混用。 三级标识中,SUBJECT_ID 是患者、HADM_ID 是一次住院、ICUSTAY_ID 是一次 ICU 住院。同一名患者可能多次入院、一次入院可能多次进 ICU。若用 SUBJECT_ID 聚合再除以人数,得到的「每人事件数」会因重复入院而偏高。分析单元默认应取 ICUSTAY_ID,需要患者级视图时先按 first_ICU_stay 筛选。

配对表行数不能相加。 pair 文件里配成对的血糖与胰岛素共享一行,因此「血糖条数 + 胰岛素条数」不等于行数。做计数统计前先确认口径,否则会重复计数。

GLC 与 GLC_AL 的语义差。 在一行里,GLC 是该行主事件的血糖值,GLC_AL 是配对侧的血糖值。若这一行本身就是血糖条目,两者可能指向同一条读数;若是胰岛素条目,GLC 为空而 GLC_AL 有值。混用会让血糖计数翻倍。

TIMER 不是统一时间。 它随行类型变化,有时是胰岛素开始时间,有时是血糖测量时间。用它排序没问题,用它做时间差计算会出错。

RULE 为空不等于数据损坏。 未配对的胰岛素条目与未参与配对的血糖条目在 RULE 列都是空值,这是设计使然。

中位数陷阱。 论文 Table 7 给出的剂量中位数在短效团注与中效团注之间只差约 4 倍,但均值差得更多,因为分布右偏。报告剂量时若只写均值,会给人一种「常规剂量 15 U」的印象,而实际中位数是 4 U。

§9 在生态中的位置

9.1 与 MIMIC 家族的层次关系

MIMIC 生态可以按「派生层级」分层看。

第一层是母库。 MIMIC-III 是 2001 到 2012 年的 ICU 数据库,MIMIC-IV 是其后继版本,覆盖 2008 到 2019 年。两者都是通用型电子病历库,包含全部门类。

第二层是派生整理资源。 这一层的共同特征是从母库取一个子集、清洗、重组,形成专题数据。血糖与胰岛素专题属于这一层。同一层里还有形态学标注、表型标注、护理事件提取等不同专题的派生资源,它们在库内各有条目。

第三层是特定任务的加工产物。 例如把心电波形与实验室血糖按时间对齐的资源,或把营养摄入做成宏量营养素时间序列的资源。这一层往往带有更强的任务约束,字段设计更贴近某类模型。

它落在第二层。上游是 MIMIC-III,下游可以被第三层的任务化数据集引用为血糖来源。

9.2 与其他血糖类资源的区别

同样是血糖数据,不同资源的差异在于「附带什么」。

资源类型 附带信息 适合的问题
本数据集 胰岛素给药及配对关系 血糖-胰岛素关联的实践研究
母库血糖子集 只有读数,无配对 血糖分布描述
心电-血糖配对资源 与血糖近时的心电波形 血糖对心电的影响
可穿戴血糖资源 连续监测、非 ICU 场景 长程趋势与生活方式
营养-血糖资源 宏量营养素摄入时间序列 碳水负荷与血糖响应

这几类不可替代。本数据集的独有价值在「配对关系」这一层,离开了胰岛素,它退化成一个血糖读数表;而离开了配对规则,它退化成一个更大的读数表。

9.3 在真实世界证据方法论中的位置

这份数据集的方法学贡献,可能比数据本身影响更大。它示范了一种做法:把数据整理的判断显式化,并连同判断结果一起发布。

常规的数据整理是把规则写在代码里,把结果发出去,使用者只能看到一个成品。审稿人或后来者问「为什么这条血糖配给了那次给药」,作者只能指向代码的某一行。本数据集把规则编号写进数据,使用者可以自己复算每个规则的命中,也可以按规则切片。这一步把「可复现」从「代码公开」推进到了「判断公开」。

这种做法在真实世界证据领域正在成为共识:FDA 与相关方法学文献反复强调,真实世界数据的关键弱点不是样本量,而是数据生成过程的不可见性。把整理过程做成可查询的字段,是对这一弱点的直接回应。

9.4 引用与署名

正式引用应使用 PhysioNet 项目页给出的条目,并注明版本号。作者列表按 PhysioNet 署名为三人。若引用的是方法学而非数据本身,应引用 Scientific Data 论文;若引用的是临床发现,应引用 2020 年 Scientific Reports 的那篇。三者是不同对象,混淆会误导溯源。

项目页提供的 BibTeX 条目以作者姓名的倒装形式书写,且期刊字段为 PhysioNet,这与常规期刊引用格式不同,属于平台惯例,不必自行改写。

§10 总结:谁该用、谁不该用

10.1 适用的情形

需要「血糖—胰岛素」成对记录的重症研究。 这是最直接的适用场景。若研究问题是「血糖在多高水平时会触发胰岛素追加」或「同等血糖下不同患者的给药差异有多大」,这份数据省去了最麻烦的配对设计。

需要研究电子病历数据整理方法学的人。 它把整理规则做成了可查询的字段,是「数据策展」这一主题下少见的、带完整判断记录的例子。

需要 MIMIC-III 血糖数据的教学场景。 两个 CSV、十几列,比原始 CHARTEVENTS 更适合课堂:它已经把「一次测量」和「一次给药」的边界划好了,学生可以直接进入分析环节,而不必先花两小时理解表结构。

10.2 不适用的情形

需要营养或碳水信息的研究。 数据集不含这一层,必须回母库自建。

需要按体重归一的剂量研究。 不含体重字段,同样需回母库合并。

跨 2001 到 2012 年的趋势研究。 只覆盖 MetaVision 期,Early 期缺失,无法做完整时间序列。

低血糖处置流程研究。 配对规则系统性排除了低血糖后的胰岛素给药,配对视图对这类问题是截断的。只能在非配对表上做描述,且要多加一层说明。

需要大规模公开数据做预训练的场景。 受控访问加八成不到的配对率,不适合作为预训练语料。

10.3 三句话

这份数据集的价值不在于它收录了多少血糖读数,而在于它用五条可审计的规则把胰岛素给药与前置血糖连接起来,并把这个判断连同结果一起发布——这一步使「血糖-胰岛素关联」从只能看结果变成了可以按规则切片复核。

它的主要限制来自数据源本身:只覆盖 MetaVision 期、不含营养与体重、不给低血糖数值定义,且中长效胰岛素的配对偏弱,这些都约束了可回答的问题类型。

对准备使用的人来说,最先要做的三件事是:完成认证并读透两个 notebook、确认分析单元用 ICUSTAY_ID 而非 SUBJECT_ID、把团注与输注分开处理而不是相加成一个「总剂量」。

附录 A:关键数字速查

指标 数值 口径说明
发布文件行数 603,764 项目页 Data Description;两表合计
患者数 9,517 / 9,518 前者为项目页,后者为论文;差一人未解释
ICU 住院数 11,724 项目页与论文 Data Records 一致
ICU 住院数(另一口径) 12,210 论文统计章的总 ICU stays
原始血糖条目 2,508,737 清洗前,覆盖 41,395 名患者
整理后血糖条目 536,868 覆盖人群同患者数主口径
原始胰岛素条目 151,201 覆盖 9,638 名患者
整理后胰岛素条目 145,694 覆盖人群与血糖侧相等
参与配对的胰岛素事件 145,678 剔除 16 条 ICU 外给药后
成功配对 110,011 配对率 75.5%
推定记录延迟条数 44,926 中位延迟 25 分钟
血糖均值 / 中位 147.8 / 134.0 mg/dL 全量,标准差 61.8
短效胰岛素占比 90.8% 整理后
团注 / 输注占比 69.4% / 30.6% 整理后
皮下 / 静脉(占团注) 63.0% / 6.4% 整理后
ICU 住院时长均值 / 中位 12.0 / 7 天 均值标准差 13.0

附录 B:字段速查

字段 单位 出现在
SUBJECT_ID / HADM_ID / ICUSTAY_ID — 两表
LOS_ICU_days 天 两表
first_ICU_stay 布尔 两表
TIMER / STARTTIME / ENDTIME / GLCTIMER 时间戳 两表
INPUT U 两表(团注行)
INPUT_HRS U/hr 两表(输注行)
INSULINTYPE short / intermediate / long 两表
EVENT BOLUS_INYECTION / BOLUS_PUSH / INFUSION 两表
INFXSTOP 0/1 两表
GLC mg/dL 两表
GLCSOURCE FINGERSTICK / BLOOD 两表
GLCTIMER_AL / GLC_AL / GLCSOURCE_AL 时间戳 / mg/dL / 枚举 仅配对表
RULE 1 至 5 仅配对表
Repeated 布尔 仅配对表

附录 C:使用前检查清单

  1. 确认已通过 PhysioNet 认证、签署 DUA、完成 CITI 培训。
  2. 确认分析单元是 ICUSTAY_ID,需要患者级时先筛 first_ICU_stay。
  3. 确认团注与输注分开处理,未把 U 与 U/hr 相加。
  4. 确认按规则分层检查过结论的稳健性。
  5. 确认若涉及低血糖,说明配对规则对低血糖后给药的系统性截断。
  6. 确认若涉及剂量归一,已从母库自取体重。
  7. 确认报告剂量时同时给出中位数与分布,不只写均值。
  8. 确认引用时注明了版本号与对应 DOI。

附录 D:未覆盖内容

以下内容在本次核验中未能确认,均属官方文档未披露,不做推测。

  • 两个 CSV 的具体字节大小(项目页 Files 区在核验环境下不可读)。
  • 各字段的缺失率。
  • 完整作者单位映射(PMC 正文未展开 Author information 区块)。
  • 中长效胰岛素异常值剔除的具体条数。
  • 9,517 与 9,518 一人之差、11,724 与 12,210 之差的确切来源。
  • 论文 Data Statement 中所载的另一个 DOI 与平台现行 DOI 的关系。

附录 E:检索路径模板

目标 路径
项目主入口 physionet.org/content/glucose-management-mimic/1.0.1/
版本 1.0.0 physionet.org/content/glucose-management-mimic/1.0.0/
数据论文 doi.org/10.1038/s41597-021-00864-4
临床论文 doi.org/10.1038/s41598-020-67630-1(2020 年 Scientific Reports 报告)
母库 physionet.org/content/mimiciii/1.4/
机读元数据 doi.org/10.6084/m9.figshare.13564187
认证与培训 physionet.org 的 credentialing 与 CITI 培训入口

附录 F:DAIMS 评估

DAIMS 按五个维度给数据资产打分,每维 1 至 10 分。

维度 评分 依据
D 可发现性 7 PhysioNet 项目页可被常规检索命中,有独立 DOI 与 RRID;扣分项是数据集无中文/英文品牌名,检索「MIMIC glucose」会先命中母库与 ECG 配对资源
A 可获取性 4 受控访问,需认证、DUA、CITI 三重前置;代码与数据同门禁,无演示子集,无法匿名试用
I 可互操作 7 标准 CSV,字段命名直观,三级标识可与 MIMIC 其他表直接关联;扣分项是单位混用、无归一化字段,且需回母库补体重与营养
M 元数据质量 8 16 列与 21 列逐列有释义,五条规则有命中计数,代码与方法学齐全;扣分项是缺失率未披露、两处人数口径差未解释
S 可持续性 9 PhysioNet 为国家级基础设施,MIT LCP 维护,版本迭代有记录;扣分项是仅有两次版本且 2021 年后无更新
综合 7.0 / 10 元数据与方法学透明度显著高于同类派生资源;可获取性被受控访问拉低,这属于临床时序数据的固有代价

编辑说明

本节非正文,仅记录事实来源与核验方式,供后续维护与交叉核对使用。

  • 核验时间:2026-10-18
  • 核验方式:PhysioNet 项目页 v1.0.1(标题、版本、DOI、许可、访问政策、Methods、字段说明、Release Notes)+ Scientific Data 2021 数据论文全文(PMC 全文,Table 1 至 Table 9 逐表核对)+ 库内 37 条 glucose/mimic 关键词命中条目逐行查重。
  • 双口径冲突的处理:
    1. 记录延迟占比:项目页写「占 2,508,737 的 1.8%」,论文写「占 536,868 的 8.4%」。两者分子同为 44,926,分母不同;正文只写条数与中位延迟,不采用任何一个百分比作为主结论。
    2. ICU 住院数:项目页与论文 Data Records 均为 11,724,论文统计章另有 12,210。正文以 11,724 为主,12,210 在附录 A 并列。
    3. 患者数:论文 Table 1、Table 2、Table 3 三处均为 9,518,项目页 Data Description 为 9,517。正文以 9,518 为主。
    4. 发布文件行数:603,764 与「血糖条数 + 胰岛素条数 = 682,562」不等,因配对行合并所致;不据此反推行数构成。
    5. DOI:v1.0.1 为 10.13026/517s-2q57,latest 指针为 10.13026/46zt-f692,论文 Data Statement 另载一个早期 DOI。正文采用 v1.0.1 的 DOI。
  • 未采用的说法:任务派发材料中的「44,926 例」经核实为延迟记录的血糖条数,正文未作为规模使用,并列入 §8 误读表。
  • 版本日志:v1(2026-10-18)首发。
  • 下次复核建议:2027-04,关注 PhysioNet 是否发布新版本、MIMIC-IV 侧是否出现等价的社区整理资源、以及是否有新论文引用本项目作为血糖来源。

相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • gossis-1 — 共享标签:电子健康记录 / 重症监护 / 真实世界数据 / 时序数据
  • clinical-trajectory-flow-icu — 共享标签:电子健康记录 / 重症监护 / 真实世界数据 / 时序数据
  • insulin4rl — 共享标签:电子健康记录 / 重症监护 / 真实世界数据 / 时序数据
  • immunosuppressive-annotations — 共享标签:电子健康记录 / 重症监护 / 真实世界数据 / 药物安全
  • mimic-eicu-fiddle-feature — 共享标签:电子健康记录 / 重症监护 / 真实世界数据 / 时序数据
  • thin — 共享标签:电子健康记录 / 重症监护 / 真实世界数据 / 药物安全
  • mdv — 共享标签:电子健康记录 / 真实世界数据 / 时序数据
  • hirid — 共享标签:电子健康记录 / 重症监护 / 时序数据
  • eicu-collaborative-legacy — 共享标签:电子健康记录 / 重症监护 / 时序数据
  • mimic-iv-ed-legacy — 共享标签:电子健康记录 / 重症监护 / 时序数据

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集