# assessment_only 与 all 实验及分析方案 ## 1. 实验目的 补充现有四级 extra-information 证据链: 1. `disease_only`:疾病事件、相对患病时间和 sex;无 extra-info token。 2. `smoking_alcohol_bmi`:疾病史、sex、smoking/alcohol/BMI token。 3. `assessment_only`:疾病史、sex、65项常规体格、肺功能、血液、尿液和生化指标 token。 4. `all`:疾病史、sex、全部265项体检和暴露信息 token。 所有配置均不使用 CHECKUP。额外信息以独立 token 注入,并使用各自的 assessment 时间。 所有连续变量均强制使用训练子集拟合的 RobustScale;训练与评估不设置未标准化对照或兼容模式。 目标是区分: - 疾病史本身能够提供多少未来疾病信息; - 常规体检在疾病史之外增加多少信息; - 生活方式、社会经济、心理和环境暴露在完整体检之外增加多少信息; - 额外信息对疾病预测和死亡预测是否具有不同作用。 ## 2. 固定模型 所有新增实验固定为: ```text TrajMixer + all_future + relative + Weibull + timed disease history + sex ``` 仅改变 `extra_info_types_file`: - `extra_info_types_assessment_only.txt` - `extra_info_types_all.txt` 每种配置运行 seed 42、43、44。 ## 3. A6000 48GB 设置 | 配置 | Batch size | 原因 | |---|---:|---| | assessment_only | 256 | 最多65个 extra-info token,48GB余量充足 | | all | 128 | 最多265个 extra-info token,relative RBF attention 显存随总序列长度平方增长 | 当前训练代码为 FP32/TF32,并未使用 AMP。若 `all batch=128` 在极端长序列 batch 上出现 CUDA OOM,降为64,不自动重试,避免同一配置产生多个不完整 run。 batch size 是 `all` 与其他模型之间的潜在训练差异。代码会按 batch size 自动缩放学习率,但最终报告仍需明确记录该差异。若 `all` 的结果处于模型选择临界区,再补 seed 42 的 batch-size sensitivity,而不是预先扩大实验矩阵。 ## 4. 主要比较 ### 4.1 常规体检的增量价值 ```text assessment_only − disease_only ``` 回答常规器官功能检测指标在疾病序列之外提供多少信息。 ### 4.2 全部信息相对常规体检 ```text all − assessment_only ``` 回答生活方式、社会经济、心理和环境暴露是否在常规体检之后仍有增量价值。两组使用完全相同的疾病事件、Landmark 和随访边界,仅 extra-info token 集合不同。 ### 4.3 全体检相对紧凑变量集 ```text assessment_only − smoking_alcohol_bmi ``` 回答65项常规体检是否优于紧凑的 smoking/alcohol/BMI 输入。 ### 4.4 全部信息相对紧凑变量集 ```text all − smoking_alcohol_bmi ``` 衡量从当前最终模型扩展到全部 extra information 的最大增益。 ### 4.5 既有比较 保留: ```text smoking_alcohol_bmi − disease_only ``` 与新增结果共同形成完整的信息增量路径。 ## 5. 评估指标 疾病和死亡分开分析。 ### 判别能力 - Landmark AUC; - 各 horizon AUC; - disease cell win rate; - 三个 seed 的均值、标准差和方向一致性。 ### 概率与似然质量 - IPCW Brier; - 固定时点 IPCW NLL; - 连续时间 point-process NLL; - Expected/Observed ratio; - calibration-in-the-large; - calibration slope; - 校准曲线。 ### 复杂度与稳定性 - 参数量; - 每个 epoch 运行时间; - 峰值显存; - 三个 seed 的性能波动; - 缺失值较多的 extra-info 类型是否造成训练不稳定。 ## 6. 配对和汇总方法 - replicate unit 为 seed; - 按相同 `seed × label_code × sex × horizon` 配对; - 每个比较使用三个 seed 共同存在的 cell; - 先在 seed 内汇总,再计算三个 seed 的均值和样本标准差; - AUC 越高越好; - Brier、NLL及绝对校准偏差越低越好; - 不以单个 seed 或单个 horizon 决定模型。 ## 7. disease_only 比较的评估边界 所有配置均从同一疾病/死亡事件流构造历史、查询点、随访终点和 censoring,并且都不使用 CHECKUP。不同配置只改变 extra-info token,因此可以在共同支持集上把差异解释为额外信息的增量价值。 ## 8. 决策规则 1. 如果 `assessment_only` 已达到 `all` 的绝大部分性能,并且校准更稳定,优先选择 `assessment_only`,因为它与器官功能重建目标一致且解释更清楚。 2. 如果 `all` 在疾病和死亡 AUC、Brier、NLL上均稳定优于 `assessment_only`,则将 `all` 作为性能上限模型,但不直接作为器官负担教师模型。 3. 如果 `all` 只提高 AUC而恶化 Brier/NLL或 seed 波动明显,不升级最终模型。 4. disease-only Timed 仍是生成纯疾病来源器官负担分数的教师模型;assessment/all 实验用于界定疾病史遗漏的信息,而不是改变该分数的纯疾病定义。 ## 9. 运行与后续评估 训练: ```bash bash train_extra_info_assessment_all_multiseed_linux.sh --gpus 0 ``` 多GPU: ```bash bash train_extra_info_assessment_all_multiseed_linux.sh --gpus 0,1,2 ``` 训练完成后,现有扫描脚本分别生成 AUC 和 calibration/Brier/NLL。合并分析时,将新增 `assessment_only` 和 `all` 两个配置纳入主 Timed 表,不纳入 disease-history Ordered/Set 专表。