信息速览
这是一份把「医生看血糖、开胰岛素」这件事逐条还原成时间戳记录的数据集。它从 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)和一个时间戳。要知道某个时间窗内实际输注了多少,必须做三件事:
- 还原速率分段。 相邻两条记录之间的时间段,默认速率不变,等于前一条记录的速率。
- 填补缺失速率。 若某条记录没有写当前速率,取 ORIGINALRATE 列的值,含义是「自上次录入以来未改动」。
- 按持续时间积分。 一段输注量 = 该段速率 × 该段持续小时数。
这个折算的结果落在 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:使用前检查清单
- 确认已通过 PhysioNet 认证、签署 DUA、完成 CITI 培训。
- 确认分析单元是 ICUSTAY_ID,需要患者级时先筛 first_ICU_stay。
- 确认团注与输注分开处理,未把 U 与 U/hr 相加。
- 确认按规则分层检查过结论的稳健性。
- 确认若涉及低血糖,说明配对规则对低血糖后给药的系统性截断。
- 确认若涉及剂量归一,已从母库自取体重。
- 确认报告剂量时同时给出中位数与分布,不只写均值。
- 确认引用时注明了版本号与对应 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 关键词命中条目逐行查重。
- 双口径冲突的处理:
- 记录延迟占比:项目页写「占 2,508,737 的 1.8%」,论文写「占 536,868 的 8.4%」。两者分子同为 44,926,分母不同;正文只写条数与中位延迟,不采用任何一个百分比作为主结论。
- ICU 住院数:项目页与论文 Data Records 均为 11,724,论文统计章另有 12,210。正文以 11,724 为主,12,210 在附录 A 并列。
- 患者数:论文 Table 1、Table 2、Table 3 三处均为 9,518,项目页 Data Description 为 9,517。正文以 9,518 为主。
- 发布文件行数:603,764 与「血糖条数 + 胰岛素条数 = 682,562」不等,因配对行合并所致;不据此反推行数构成。
- 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 — 共享标签:电子健康记录 / 重症监护 / 时序数据
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

