数据批次来源与分类
批次,说白了就是数据的一场“出身调查”。
你想想看,同一位患者在同一天,用不同检测平台测出来的结果,能直接拿来做交叉验证吗?
我个人习惯是,在动手校验之前,先把这批数据的身世摸清楚。
早期我接手一个大项目,数据从三个中心汇过来。
我以为只要格式统一就能跑校验。结果呢?
一个平台用的发光法,一个用酶联免疫,另一个直接是质谱。
嗯,那天的教训就是——批次分类没做好,后面全白干。
为什么批次分类如此重要
临床报告校验说白了就是“对比”。
对比的前提是“同质”。
如果两个批次的检测原理、试剂、时间窗口都不一样,
那它们之间的差值,到底是真差异还是系统偏移?
我这里有个经验:批次分类是校验的锚点。
锚点偏了,校验就变成数字游戏,毫无临床意义。
不同平台、不同试剂批号的数据,必须先经过溯源归类。
按检测平台分类
这是最直观的分类方式。
医院里常见的平台类型:
- 化学发光免疫分析仪(如雅培 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 全血 | 凝血项目、血糖检测 |
这些维度不一定每次都用,但做交叉验证时,碰到异常数据先把它们列出来排查。
一般先按平台+试剂批号作为主分类,遇到异常再展开到时间、操作者等维度。
下面这张图可以帮助你快速理清批次来源的分类逻辑:
这张图展示的是我的常用分类逻辑。
从原始数据出发,按三个主要维度展开。每个维度下面又细分了常见子类。
你实际落地的时候,可以根据科室的检测项目增减分支。
比如,如果你们科室只做生化,那“检测平台”可能就只有一台贝克曼AU680。
但如果做免疫,平台就可能包括罗氏e411和雅培i2000,那就必须分开。
我曾见过一份校验报告,把两台不同厂家的设备数据混在一起做相关性分析。
结果r值高达0.98,但Bland-Altman图显示平均偏差差8%。
为什么?因为平台偏差被大样本量掩盖了。
所以,分类不是形式主义,是发现真实问题的入口。