数据批次来源与分类

批次,说白了就是数据的一场“出身调查”。
你想想看,同一位患者在同一天,用不同检测平台测出来的结果,能直接拿来做交叉验证吗?
我个人习惯是,在动手校验之前,先把这批数据的身世摸清楚。

早期我接手一个大项目,数据从三个中心汇过来。
我以为只要格式统一就能跑校验。结果呢?
一个平台用的发光法,一个用酶联免疫,另一个直接是质谱。
嗯,那天的教训就是——批次分类没做好,后面全白干。

为什么批次分类如此重要

临床报告校验说白了就是“对比”。
对比的前提是“同质”。
如果两个批次的检测原理、试剂、时间窗口都不一样,
那它们之间的差值,到底是真差异还是系统偏移?

我这里有个经验:批次分类是校验的锚点。
锚点偏了,校验就变成数字游戏,毫无临床意义。

核心原则:批次交叉验证只允许在同源或严格校正后的数据间进行。
不同平台、不同试剂批号的数据,必须先经过溯源归类。

按检测平台分类

这是最直观的分类方式。
医院里常见的平台类型:

  • 化学发光免疫分析仪(如雅培 i2000、罗氏 e601)
  • 酶联免疫吸附试验(ELISA)(手工或自动化)
  • 特定蛋白分析仪(如贝克曼 IMMAGE)
  • 质谱平台(LC-MS/MS,用于治疗药物监测)
  • 即时检测(POCT)(血糖仪、血气分析仪等)

我曾经碰到一个案例:同一个项目的POCT结果和中心实验室结果偏差超过15%。
查了半天,原来是POCT用的校准品批号和中心实验室不一致。
你说,这叫数据的问题,还是分类的问题?

按时间批次分类

时间也是批次的一种。
比如同一天内跑完的样本算一个时间批次吗?
不一定。我建议分得更细:

  • 运行批次:一次开机连续完成的检测序列
  • 日间批次:同一日历天内完成的所有检测
  • 周/月批次:用于长期趋势监测的汇总单位
小经验:时间批次通常和试剂批次绑定。
如果试剂中途换批号了,该时间批次应该拆分为两个子批次。

为什么?试剂换了,哪怕品牌相同,批间差也可能改变。
这一点在血凝项目的交叉校验中特别敏感。

按试剂批次分类

这是最容易被忽略的维度。
很多校验方案只记录试剂名称,不记录批号。
但同一厂家的同一试剂,不同批号之间的差异,有时能超过不同厂家的差异。

我自己的做法:在数据入库阶段,强制字段“试剂批号”为必填项。

-- 数据表设计示例(简化)
CREATE TABLE lab_results (
    sample_id VARCHAR(20),
    test_item VARCHAR(50),
    result_value NUMERIC,
    platform VARCHAR(30),
    reagent_lot VARCHAR(20),  -- 试剂批号
    run_date DATE
);

有了这个字段,校验时就能按试剂批号分层做交叉比对。
如果发现同一个样本在两个批号下的结果有明显偏移,那就要报警了。

其他常见批次维度

除了上面三个,还有一些场景下的特殊分类:

维度说明典型场景
操作者批次不同技师的手工操作差异ELISA洗板、手工稀释
校准品批次标准品的批间差全自动生化分析仪校准
质控品批次质控材料的批号变更室内质控结果月度汇总
样本类型批次血清 vs 血浆 vs 全血凝血项目、血糖检测

这些维度不一定每次都用,但做交叉验证时,碰到异常数据先把它们列出来排查。

注意:不要一次性引入太多批次分类维度,否则校验逻辑会变得极其复杂。
一般先按平台+试剂批号作为主分类,遇到异常再展开到时间、操作者等维度。

下面这张图可以帮助你快速理清批次来源的分类逻辑:

数据批次来源与分类结构 数据批次来源分类框架 原始检测数据 🔬 检测平台 ⏰ 时间批次 🧪 试剂批次 化学发光 ELISA 质谱 运行批次 日间批次 周/月批次 主试剂批号 校准品批号 质控品批号 批次的交叉验证必须在同一叶节点层级或经过严格校正后进行 ⚠️ 不同颜色代表不同分类维度,不可直接混用

这张图展示的是我的常用分类逻辑。
从原始数据出发,按三个主要维度展开。每个维度下面又细分了常见子类。
你实际落地的时候,可以根据科室的检测项目增减分支。

比如,如果你们科室只做生化,那“检测平台”可能就只有一台贝克曼AU680。
但如果做免疫,平台就可能包括罗氏e411和雅培i2000,那就必须分开。

我曾见过一份校验报告,把两台不同厂家的设备数据混在一起做相关性分析。
结果r值高达0.98,但Bland-Altman图显示平均偏差差8%。
为什么?因为平台偏差被大样本量掩盖了。
所以,分类不是形式主义,是发现真实问题的入口。