3. 分析数据流设计
ADaM 数据集不是 SDTM 的简单改名或字段搬运,而是围绕“分析意图”重新组织的数据产品。SDTM 面向数据采集与监管递交,强调观测的标准化与可追溯;ADaM 面向统计分析与结果复现,强调分析单元、派生变量、分析时点与人群标记的明确性。因此,从 SDTM 到 ADaM 的核心工作,是建立一条可解释、可验证、可回溯的分析数据流:分析需求先被拆解为分析单元与派生规则,再映射到 SDTM 源变量,最终形成带追溯信息(如 SRCDOM、SRCVAR、SRCSEQ)的 ADaM 数据集。
一、映射逻辑:从“观测记录”到“分析记录”
映射逻辑的起点是分析需求,而不是 SDTM 域本身。以最常见的“不良事件发生率”为例,分析需求可拆解为:分析人群(如安全性分析集 SAFFL=Y)、分析单元(受试者-事件)、分析变量(AEDECOD、AESEV、AESER、AESTDTC)、分析时点(首次给药至末次给药后 30 天)。这些需求决定了 ADaM 中需要保留哪些记录、派生哪些变量。
映射通常分三类:直接映射、转换映射和派生映射。直接映射如 ADSL 中的 AGE 直接来自 DM.AGE;转换映射如将 SDTM 的字符型日期 AESTDTC 转换为数值型 ASTDT;派生映射如根据 AESTDTC 与 TRTSDT 计算 ASTDY(相对首次给药日)。派生映射必须写明算法、输入变量、边界条件与缺失处理,例如“若 AESTDTC 缺失或部分缺失,则 ASTDT 置空,ASTDY 置空,并在分析中按缺失处理”。
需要特别注意的是,ADaM 中的“一行”往往对应一个分析单元,而非一条 SDTM 记录。例如 ADTTE 中一行对应一个受试者-事件或删失,ADAE 中一行对应一个受试者-事件。这种粒度变化必须在映射逻辑中显式说明,否则后续统计程序容易误用。
二、分析需求拆解:把统计问题翻译成数据规则
分析需求拆解建议按“人群—单元—变量—时点—规则”五要素进行。以“主要疗效终点:第 12 周 HbA1c 相对基线变化”为例:人群为 FAS(FASFL=Y);分析单元为受试者-访视;变量为 AVAL、BASE、CHG、PCHG;时点为第 12 周(AVISITN=12);规则包括:基线定义为首次给药前最后一次非缺失值,若基线后多次测量取最接近计划时间点的一次,缺失值不插补但需标记 ANL01FL。
拆解结果应形成一份可执行的“分析需求—数据规则”对照表,作为 ADaM 编程与 QC 的共同依据。表中至少包含:需求编号、分析目的、人群条件、分析单元、目标变量、源域与源变量、派生算法、缺失处理、追溯字段。该表不是形式文档,而是后续数据流图与追溯设计的输入。
三、数据流图绘制:让映射关系可视化
数据流图应表达“源—处理—目标—追溯”四类信息。源侧列出实际使用的 SDTM 域与变量;处理侧列出关键派生步骤与判断条件;目标侧列出 ADaM 数据集与变量;追溯侧标注 SRCDOM、SRCVAR、SRCSEQ 等字段。下图以“ADSL + ADAE + ADTTE”为例,展示从 SDTM 到 ADaM 的分析数据流与追溯关系。
四、源数据追溯:让每个派生值都能“找到出处”
源数据追溯的目标是:给定 ADaM 中任意一条记录或任意一个派生变量,都能定位到其对应的 SDTM 源域、源变量和源记录序号。常用做法是在 ADaM 中保留 SRCDOM、SRCVAR、SRCSEQ 三个字段。例如 ADAE 中某条记录的 SRCDOM=AE、SRCVAR=AESTDTC、SRCSEQ=1023,表示该记录的 ASTDT 派生自 AE 域第 1023 条记录的 AESTDTC。
对于多源派生变量,追溯字段需要按“主源”填写,并在 Define-XML 或编程说明中补充完整算法。例如 ADTTE 的 CNSR 可能同时依赖 AE 和 LB,此时 SRCDOM 可填 AE 或 LB 中起决定作用的一个,并在注释中说明另一来源。追溯字段不是装饰,而是 QC 与监管核查的关键入口。
五、可复现性设计:从“能跑通”到“可重复”
可复现性要求同一份 SDTM 输入、同一份编程代码、同一份参数配置,在任何时间、任何合规环境中运行,都能得到完全一致的 ADaM 输出。实现要点包括:
- 版本锁定:记录 SDTM 版本、ADaM 版本、Define-XML 版本、SAS 或 R 版本、宏包版本。
- 参数外置:将人群定义、访视窗口、基线规则等写入独立参数文件或配置表,避免硬编码。
- 随机种子固定:若涉及插补或抽样,必须固定随机种子并记录。
- 运行日志与校验:每次运行输出记录数、变量数、缺失率、派生失败数,并与预期阈值比对。
- 双人独立编程:关键数据集采用独立编程 + PROC COMPARE 或等价比对,差异需逐条解释。
六、一个可执行的追溯与复现检查表示例
| 检查项 | 检查内容 | 判断标准 | 记录位置 |
|---|---|---|---|
| 映射完整性 | 每个 ADaM 变量是否有源域或派生算法 | 无未定义变量 | Define-XML / 映射表 |
| 追溯字段 | SRCDOM、SRCVAR、SRCSEQ 是否非空且可定位 | 关键数据集追溯覆盖率 100% | ADaM 数据集 |
| 人群标记 | SAFFL、FASFL 等与源数据判定一致 | 与独立编程结果一致 | ADSL 比对报告 |
| 日期派生 | ASTDT、ASTDY 与 TRTSDT 关系正确 | 无负值异常,缺失处理符合规则 | ADAE / ADLB 核查 |
| 可复现性 | 同输入同代码输出一致 | PROC COMPARE 无差异 | 运行日志与比对报告 |
分析数据流设计的最终交付物,不是一张图或一张表,而是一套“需求—映射—追溯—复现”的闭环证据链。只有当每个派生变量都能说清来源、每个分析单元都能对应到明确规则、每次运行都能被独立复现时,ADaM 数据集才真正具备支撑统计分析与监管递交的质量基础。