
简介本资源是一份面向医学研究人员、临床医生及药学专业人员的抗抑郁药物疗效评估建模方案聚焦于新型药物A/B与对照药物C在真实临床试验场景下的综合比较分析。资源基于双中心、三组每组525例、四时点1/3/6/12月随访设计围绕基线特征差异检验、婚姻状况与初始抑郁程度对疗效的影响机制、不适症状动态演变规律及药物综合推荐四大核心问题构建可复现的数学分析框架。压缩包含1个18KB的docx文档完整呈现赛题背景、数据逻辑、建模思路与结构化解答路径适用于开展药物疗效统计建模、临床数据解读或教学案例研讨。目前已有594人学习下载内容不涉及用药剂量与价格等干扰因素突出药物本体效果评估为科研立项、论文写作及临床选药提供严谨的方法论支撑与实证参考。1. 抗抑郁药物疗效与安全性评估为什么临床试验数据不能“直接拿来用”而必须建一套可复现、可审计、可扩展的综合评价系统某高校药理学实验室在推进一项新型抗抑郁药物A/B的II期临床试验后面临一个典型但棘手的问题原始数据分散在Excel表格、EDC系统导出的CSV、PDF版不良事件报告和脱失记录中统计师手动拼接基线表、用SPSS跑t检验、用R画森林图但每次审阅方如伦理委员会或合作药企提出“请单独展示HAMD减分≥50%亚组的QTcF变化趋势”时整个分析链就得重跑一遍——耗时48小时且无法追溯哪一步改了参数、哪一列被隐式过滤。这不是效率问题而是科学严谨性的断点。本项目标题所指的“综合评价系统”不是又一个可视化看板而是一套以临床终点为导向、以监管合规为边界、以分析可重现为刚性要求的端到端工作流它强制将疗效指标如HAMD、MADRS减分率、应答率、缓解率、安全性信号TEAE频次、实验室异常值、ECG参数漂移、自杀意念事件和混杂控制基线协变量校正、多重性调整、敏感性分析策略全部编码进结构化分析协议并通过自动化脚本驱动统计引擎执行。它适合正在开展或即将申报III期试验的药物研发团队、需要向监管机构提交独立统计分析计划SAP的CRO项目组以及承担真实世界证据RWE补充研究的医院临床研究中心——核心价值不在“快”而在“每一次输出都自带审计线索、每一次修改都留痕可逆、每一次复核都无需重新理解分析逻辑”。2. 构建疗效-安全性双轨评估框架从临床终点定义到分析模块拆解2.1 明确三类核心临床终点及其结构化表达方式抗抑郁药物评价绝非仅看“平均减分值”。FDA《抑郁症治疗药物开发指南》与NMPA《抗抑郁药临床试验技术指导原则》均强调分层终点体系。我们按证据强度与监管接受度将终点分为三类并在系统设计初期即固化其计算逻辑终点类型典型指标结构化表达要求关键约束说明主要疗效终点HAMD-17总分较基线变化值ΔHAMD、第8周缓解率HAMD≤7必须支持缺失值插补策略选择LOCF/BOCF/MICE、基线定义严格限定为筛选期最后1次有效评估ΔHAMD需同步输出95%CI及效应量Cohens d缓解率需分层报告全分析集/FAS vs 符合方案集/PPS关键次要终点MADRS减分率、临床总体印象改善量表CGI-I≤2比例、起效时间首次达HAMD减分≥20%的中位周数CGI-I需映射至有序分类变量1非常改善→7非常恶化起效时间需定义“连续两周维持”规则所有时间点终点必须支持重复测量模型MMRM禁止简单取最后一周值替代安全性核心终点TEAE发生率MedDRA SOC层级聚合、QTcF延长≥60ms受试者数、ALT/AST≥3×ULN例数、自杀相关事件C-SSRS主动报告被动筛查TEAE需强制关联用药暴露窗药物A/B vs C的给药天数、QTcF必须采用Fridericia公式校正实验室异常值判定必须绑定中心实验室参考范围不可用本地值提示所有终点定义必须写入endpoints.yaml配置文件而非硬编码在脚本中。例如hama_delta节点下明确声明imputation: lofc、baseline_window: [-3, 0]单位天确保统计师与程序员对“基线”理解完全一致。2.2 设计疗效与安全性双轨分析流水线模块化、可插拔、带版本锁系统不追求“一键出全表”而将分析拆解为6个原子模块每个模块独立运行、独立版本管理、独立测试验证。模块间通过标准化中间数据格式Apache Parquet schema.json传递避免CSV字符编码污染或列名大小写歧义# analysis_pipeline.py 示例双轨启动入口 from modules.efficacy import run_hamd_analysis, run_madrs_analysis from modules.safety import run_tea_summary, run_ecg_analytics from utils.data_loader import load_clinical_data if __name__ __main__: # 1. 加载并校验原始数据自动识别EDC导出格式 raw_df load_clinical_data(data/raw/edc_export_20240512.zip) # 2. 并行执行疗效轨主终点关键次要终点 hamd_results run_hamd_analysis(raw_df, configconfigs/hamd_v2.1.yaml) madrs_results run_madrs_analysis(raw_df, configconfigs/madrs_v1.3.yaml) # 3. 并行执行安全性轨TEAEECG实验室 tea_report run_tea_summary(raw_df, configconfigs/tea_v3.0.yaml) ecg_metrics run_ecg_analytics(raw_df, configconfigs/ecg_v1.2.yaml) # 4. 汇总生成监管级输出包含代码哈希、数据指纹、参数快照 generate_regulatory_package( efficacy[hamd_results, madrs_results], safety[tea_report, ecg_metrics], version_tagv1.4.2 )关键设计逻辑说明load_clinical_data()自动识别EDC导出包结构如Medidata Rave的subject.csvadverse_event.csvvital_signs.csv并执行基础清洗去重、ID标准化、日期格式归一。每个run_*函数接收config参数该YAML文件包含所有可调参数如min_adherence_rate: 0.8控制依从性阈值避免魔法数字。generate_regulatory_package()不仅打包结果表更生成audit_log.json记录本次运行所用Python版本、pandas/numpy/statsmodels精确版本、输入数据SHA256、配置文件MD5及随机种子若涉及模拟。这是应对监管核查的“后悔药”。2.3 配置驱动的统计方法库为什么把t检验、MMRM、Cox模型封装成配置项新手常误以为“统计方法选对就行”但实际落地中同一方法在不同场景下的参数组合差异直接决定结论是否成立。例如MMRM混合效应重复测量模型在抗抑郁试验中必须满足固定效应项必须包含time*trt交互项验证药物-时间动态效应协变量必须纳入基线HAMD、研究中心、既往抗抑郁药使用史缺失机制假设需显式声明默认MAR若怀疑MNAR则触发敏感性分析模块系统将这些规则编码为配置模板# configs/mmrn_hamd_v1.0.yaml model: type: mmrm formula: hama_score ~ trt * time baseline_hama center prior_ad_use (1|subject_id) missing_assumption: mar # 可选 mar / mnar_imputation / jump_to_reference covariance_structure: unstructured time_points: [0, 1, 2, 4, 6, 8] # 周数必须与数据中time列值严格匹配 sensitivity_analysis: enabled: true methods: [jump_to_reference, multiple_imputation]当统计师需要验证“若将缺失值按跳转至对照组均值处理结论是否稳健”只需将missing_assumption改为jump_to_reference并重跑系统自动调用预置的跳转逻辑无需重写模型代码。这种配置化本质是把统计专家的经验规则沉淀为可复用、可审计的资产。3. 数据治理从EDC原始导出到分析就绪数据集ADS的七步清洗链3.1 EDC导出数据的典型脏乱特征与自动化识别策略某次项目中EDC系统导出的adverse_event.csv出现三类高频问题ID错位subject_id列混入空格如 S001 、大小写不一致s001vsS001时间漂移start_date列为文本型2023-05-12T14:30:00Z但部分记录缺失时区标识解析后变成UTC时间而非本地研究时间术语不统一同一不良事件在不同研究中心录入为headache、Head Ache、cephalalgia而MedDRA编码未强制映射系统在load_clinical_data()中内置检测器# utils/data_validator.py def detect_edc_issues(df: pd.DataFrame, domain: str) - List[str]: issues [] if domain ae: # 检测subject_id标准化问题 if not df[subject_id].str.match(r^[A-Z]\d{3}$).all(): issues.append(subject_id format invalid: expect S001, got non-conforming values) # 检测日期列时区一致性 if start_date in df.columns: tz_count df[start_date].str.contains(rZ$|[\\-]\d{2}:\d{2}$).sum() if tz_count len(df) * 0.95: # 95%记录无时区 issues.append(start_date lacks timezone info in 5% records) # 检测MedDRA编码空缺率 if meddra_pt_code not in df.columns or df[meddra_pt_code].isnull().mean() 0.1: issues.append(meddra_pt_code missing in 10% AE records) return issues # 调用示例 raw_ae pd.read_csv(data/raw/ae.csv) errors detect_edc_issues(raw_ae, ae) if errors: raise DataValidationError(fEDC AE data failed validation: {errors})参数说明r^[A-Z]\d{3}$正则强制subject_id为1个大写字母3位数字如S001杜绝SUBJ-001等变体。rZ$|[\\-]\d{2}:\d{2}$匹配ISO 8601时区标识Z或08:00低于95%覆盖率即告警——因为抗抑郁试验中AE发生时间精度影响因果判断如服药后2小时内头痛是否归因于药物。10% MedDRA编码缺失阈值来自ICH E2B(R3)要求严重不良事件必须100%编码非严重事件允许≤5%容错但系统设更严标准。3.2 构建分析就绪数据集ADS七个不可跳过的清洗步骤ADS不是“干净数据”而是符合CDISC ADaM规范、带完整溯源元数据、支持监管核查的数据容器。我们固化七步清洗链每步生成独立中间Parquet文件并记录操作日志步骤操作输出文件示例关键校验点1. ID标准化subject_id去空格、转大写、加前缀TRIAL-ads/ae_id_standardized.parquet检查subject_id唯一性 与usubjid映射一致性2. 时间对齐将所有日期列转为datetime64[ns, UTC]按研究中心时区偏移校正ads/ae_time_aligned.parquet验证start_date ≤ end_date否则标记为逻辑错误3. 编码映射使用本地MedDRA 25.1词典将ae_term映射至pt_code、soc_codeads/ae_meddra_mapped.parquet对未映射术语生成unmapped_terms.csv供人工复核4. 剂量关联根据subject_idstart_date窗口关联用药记录中的drug_name与doseads/ae_with_dose.parquet确保AE发生时药物暴露窗内至少有1次给药记录5. 严重性分级按ICH E2A标准将ae_severity文本mild/moderate/severe转为数值1/2/3ads/ae_severity_numeric.parquet检查seriousness字段SUSAR标志与ae_severity逻辑一致性6. 合并多源关联实验室数据lab_test_nameQTcF、ECG数据ecg_parameterQTcFads/ae_with_qtc.parquet验证QTcF测量时间与AE发生时间间隔≤72小时才纳入分析7. ADS终版生成保留usubjid,aeseq,aeterm,aesoc,aehlgt,aept,aebodsys,aesev,aeser,aeacn,aestdtc,aeendtc,aeongo,aerelt,aetoxgr等ADaM必需变量ads/adsl_final.parquet运行adam-validator工具校验ADaM合规性如aeseq必须为整数序列注意所有步骤均启用--dry-run模式可预览变更行数与样本记录。例如step4_dose_link.py --dry-run输出Will link dose to 127 AE records; 3 AE have no matching drug exposure避免盲目执行导致数据丢失。3.3 安全性信号挖掘从频数统计到潜在风险识别的三层漏斗单纯报告“TEAE发生率23.5%”毫无价值。系统构建三层漏斗逐级聚焦高风险信号第一层SOC层级聚合监管汇报基础按MedDRA系统器官分类SOC统计各组TEAE例数/受试者数。关键不是总数而是相对风险RR与95%CI# safety/tea_summary.py def calculate_rr_by_soc(ae_df: pd.DataFrame, trt_col: str trt) - pd.DataFrame: # 构建2x2表[药物组AE例数, 药物组无AE例数] vs [对照组AE例数, 对照组无AE例数] pivot pd.crosstab( ae_df[trt_col], ae_df[aesoc], rownames[trt_col], colnames[aesoc] ).fillna(0) # 计算RR (a/(ab)) / (c/(cd)) rr_list [] for soc in pivot.columns: a pivot.loc[DrugA, soc] # 药物组AE例数 b len(ae_df[ae_df[trt_col]DrugA]) - a # 药物组无AE例数 c pivot.loc[Placebo, soc] # 对照组AE例数 d len(ae_df[ae_df[trt_col]Placebo]) - c # 对照组无AE例数 rr (a/(ab)) / (c/(cd)) if c*(cd) ! 0 else np.nan # Wilson得分法计算95%CI比Wald法更稳健 ci_lower, ci_upper wilson_ci(a, ab, c, cd) rr_list.append({soc: soc, rr: rr, ci_lower: ci_lower, ci_upper: ci_upper}) return pd.DataFrame(rr_list).sort_values(rr, ascendingFalse)参数说明wilson_ci()采用Wilson得分区间避免Wald法在小样本时CI越界如RR0.8, CI[-0.1,1.7]的玄学结果。输出按RR降序排列让“神经系统疾病SOC RR3.2 (1.8–5.6)”这类高信号一眼可见。第二层PT层级聚类发现新发信号对RR2且CI下限1的SOC下钻至首选术语PT用Jaccard相似度聚类若headache与migraine在药物组共现率显著高于对照组则提示“偏头痛样头痛”可能是新发机制相关信号。系统自动生成cluster_report.html高亮聚类内PT的共现OR值与p值Fisher精确检验。第三层个体病例深度剖析支持SUSAR判断对单个严重AE如QTcF延长≥60ms自动提取该受试者全周期数据用药史是否联用CYP3A4抑制剂实验室轨迹基线QTcF、每次服药后2h/24h/48h QTcF值ECG波形若存档DICOM调用ecg_analytics模块计算QT/RR斜率合并症是否有先天性长QT综合征病史输出case_12345_qtc_deepdive.pdf作为医学监查员撰写SUSAR报告的直接依据。4. 避坑抗抑郁药物分析中五个血泪经验换来的必踩雷区4.1 现象MMRM模型收敛失败报错ConvergenceWarning: Maximum number of iterations reached原因抗抑郁试验中HAMD评分本身存在“天花板效应”基线≤15分者占30%导致残差分布严重右偏而默认statsmodels.MixedLM使用高斯分布假设无法拟合偏态数据。更隐蔽的是部分研究中心录入HAMD时习惯四舍五入到整数造成离散化伪影。解决改用sklearn.mixture.GaussianMixture对残差建模或切换至rpy2调用R的nlme::lme并指定weightsvarPower()处理异方差在数据清洗阶段对HAMD增加hama_score_raw原始录入值与hama_score_adj经scipy.stats.yeojohnson变换后的正态化值双列模型配置中显式选择score_type: adj。4.2 现象QTcF延长分析中药物组与对照组的基线QTcF均值差异达12msp0.001原因基线QTcF测量未统一心率校正公式。EDC中混用BazettQTcB、FridericiaQTcF、Framingham三种公式而QTc字段未标注来源。某研究中心用QTcB高估延长另一中心用QTcF低估延长导致基线失衡。解决强制所有ECG数据导入时用原始QT与RR间期重新计算QTcFFridericia公式QTcF QT / RR^(1/3)在configs/ecg_v1.2.yaml中锁定qt_correction_formula: fridericia禁用其他选项基线平衡性检验必须用QTcF_recalculated而非原始qtcf字段。4.3 现象自杀意念事件C-SSRS报告率药物组显著高于对照组但医学监查员认为属“检测偏倚”原因药物组访视中研究者被要求每周期主动询问C-SSRS全部7个问题而对照组仅问第1题“过去一周是否有自杀想法”。这种结构化询问强度差异导致药物组检出率虚高。解决在ADS中新增c_ssrs_administration_mode变量full/screening_only并在分析模型中将其作为协变量敏感性分析必须包含analysis_excluding_full_admin子集即只纳入两组均执行screening_only的受试者。4.4 现象HAMD缓解率≤7分在药物组达65%但第8周HAMD均值仅降低11.2分与既往同类药物不符原因HAMD量表中“入睡困难”条目被某研究中心批量录入为“0”无困难但该中心同期PSQI睡眠质量指数显示受试者平均睡眠效率仅62%。核查发现研究者将“患者说‘睡得还行’”主观理解为“0分”而忽略量表定义中“0分无任何困难整夜安睡”。解决在数据清洗环节对HAMD各条目设置合理性规则引擎# rules/hama_consistency.py def check_sleep_consistency(hama_row: pd.Series) - bool: # 若hama1入睡困难0但psqi_sleep_efficiency 70则标记可疑 return not (hama_row[hama1] 0 and hama_row[psqi_se] 70)对标记为inconsistent的记录自动触发query_management_system生成质疑函Query要求研究中心提供原始访谈笔记。4.5 现象TEAE汇总表中“精神障碍SOC”下药物组例数是对照组3倍但细看发现70%为“失眠”与“焦虑”——而这两种正是抑郁症本身症状原因未执行“症状恶化vs药物不良反应”的鉴别流程。抗抑郁药起效前2周可能加重焦虑此时报告的“焦虑”应归为疾病波动而非TEAE。解决在ADS中强制添加ae_causality_assessment字段由医学监查员填写drug_related/disease_related/uncertainTEAE分析默认排除disease_related条目但生成disease_fluctuation_report.pdf单独呈现供DSMB数据安全监查委员会评估整体疾病活动度。5. 多重性控制与敏感性分析让P值不再“飘忽不定”的三重锚定策略5.1 主要终点的多重性控制为什么Bonferroni太粗暴而Gatekeeping更贴合临床逻辑抗抑郁试验常设多个共同主要终点如ΔHAMD与缓解率若简单用Bonferroni校正α0.025会过度惩罚真正有效的信号。我们采用递阶门控法Hierarchical Gatekeeping将终点按临床重要性排序第一关ΔHAMD均值差异最核心疗效信号第二关第8周缓解率功能恢复标志第三关CGI-I≤2比例医生全局评价只有前一关P值≤0.05才检验下一关。这符合临床决策逻辑——若药物连核心症状都未改善功能恢复便无从谈起。系统在configs/efficacy_v1.4.yaml中声明multiplicity: strategy: gatekeeping ordered_endpoints: - name: hama_delta alpha_allocated: 0.05 test_method: ttest_ind - name: remission_rate alpha_allocated: 0.05 # 仅当hama_delta通过才启用 test_method: chi2_contingency - name: cgi_i_improvement alpha_allocated: 0.05 # 仅当前两者通过才启用 test_method: fisher_exact执行逻辑run_hamd_analysis()先输出p_hama若p_hama 0.05则remission_rate分析直接跳过报告Not tested: gatekeeping condition not met若p_hama ≤ 0.05则run_madrs_analysis()启动并在结果中标注Tested under gatekeeping: α0.05避免误读为独立α。5.2 敏感性分析矩阵覆盖缺失机制、人群定义、模型假设的九宫格验证监管机构最关注“结论是否脆弱”。我们预设3×3敏感性分析矩阵覆盖三大不确定性维度缺失机制假设人群定义策略模型协变量集LOCF末次观测结转全分析集FAS基线HAMD研究中心MICE多重插补符合方案集PPS基线HAMD研究中心依从性≥80%Jump-to-Reference跳转至对照组均值修改的ITTmITT排除重大方案违背基线HAMD研究中心既往用药史基线QTcF系统通过配置驱动一键生成9份结果# 启动九宫格分析 python sensitivity_runner.py \ --missing-strategy lofc,mice,jump_ref \ --population fas,pps,mitt \ --covariates basic,extended,comprehensive输出结构sensitivity/lofc_fas_basic/含results.csv所有终点P值、forest_plot.pngΔHAMD效应量森林图、concordance_report.txt9份结果中ΔHAMD方向一致率。sensitivity_summary.html汇总表格标红显示“仅在1种场景下显著其余8种均不显著”的脆弱结论。提示concordance_report.txt是向DSMB汇报的关键附件。若ΔHAMD在9种场景中8种P0.05我们称其具有“鲁棒性”若仅在MICEPPSextended下显著则需警惕——这往往暴露数据质量问题如PPS人群被选择性剔除低依从者。5.3 真实世界证据RWE衔接如何让临床试验系统平滑对接外部数据库某次项目需用RWE验证“药物A在老年患者≥65岁中的QTcF风险”。系统预留RWE接入接口数据层支持加载OMOP CDM格式的保险理赔库condition_occurrence表映射抑郁诊断drug_exposure表映射药物A暴露measurement表映射QTcF值分析层复用ecg_analytics模块但将cohort_definition从“临床试验ID”切换为“OMOP概念ID”如condition_concept_id261668对应F32.9重性抑郁输出层生成rwe_qtc_validation_report.pdf与临床试验报告并列供监管交叉验证。关键适配点RWE中QTcF常缺失RR间期系统自动回退至Bazett公式QTcB QT / sqrt(RR)并在报告中显著标注“RWE分析基于QTcB与试验中QTcF不可直接比较”用倾向性评分加权PSW校正RWE混杂权重模型复用临床试验中验证过的协变量集年龄、性别、基线抑郁严重度、合并用药确保方法学一致性。6. 验证与交付一份能通过监管核查的分析包必须包含这五类实物6.1 分析包结构为什么code/目录下必须有reproduce.sh和environment.yml监管核查不看PPT只查“能否在另一台机器上重跑出同样结果”。我们的交付包强制包含regulatory_package_v1.4.2/ ├── results/ # 最终输出表CSV/PDF │ ├── efficacy_primary.csv # ΔHAMD、缓解率等主终点 │ ├── safety_summary.pdf # TEAE SOC汇总图 │ └── forest_plots/ # 各亚组森林图 ├── code/ # 可执行代码非notebook │ ├── reproduce.sh # 一行命令重跑全部分析 │ ├── environment.yml # conda环境定义含pandas1.5.3, statsmodels0.13.2 │ ├── analysis_pipeline.py # 主流程 │ └── modules/ # 各分析模块 ├── data/ # ADS终版Parquet格式含schema.json │ └── adsl_final.parquet ├── configs/ # 所有YAML配置带版本号 │ ├── hamd_v2.1.yaml │ └── ecg_v1.2.yaml └── audit_log.json # 本次运行的完整指纹含输入数据SHA256、代码git commit hashreproduce.sh内容必须可执行#!/bin/bash # 一行重跑conda env create -f code/environment.yml conda activate ads-v1.4 python code/analysis_pipeline.py set -e conda env create -f code/environment.yml conda activate ads-v1.4 python code/analysis_pipeline.py --data-dir data/ --config-dir configs/ --output-dir results/为什么不用requirements.txtenvironment.yml可锁定numpy1.21.6py39h20f2e39_0含build string确保BLAS库版本一致避免np.linalg.svd在不同机器结果微异reproduce.sh显式声明conda环境名ads-v1.4避免与用户本地环境冲突。6.2 代码可审计性三类强制注释与一处不可删除的日志所有.py文件必须包含模块级Docstring说明本模块解决的临床问题、输入数据契约、输出数据契约efficacy/hama_analysis.py: 计算HAMD-17总分变化值ΔHAMD及95%CI. Input contract: - DataFrame with columns: [usubjid, avisitn, hama_score, trt, baseline_hama] - avisitn must be numeric visit sequence (0baseline, 1week1, ...) Output contract: - Returns dict with keys: delta_mean, delta_ci_lower, delta_ci_upper, effect_size 函数级Type Hints明确参数类型与返回类型让mypy静态检查可捕获类型错误def calculate_hama_delta( df: pd.DataFrame, trt_col: str trt, baseline_col: str baseline_hama ) - Dict[str, float]:关键计算行注释解释为何用此公式引用指南条款# FDA Guidance (2019) Section 4.2.1: Use LOCF for primary endpoint imputation # when missingness 15% and MAR assumption holds df_filled df.groupby(usubjid).apply(lambda g: g.fillna(methodffill))一处不可删除的日志在analysis_pipeline.py末尾必须写入# Regulator-required audit trail: record exact command used with open(audit_log.json, r) as f: log json.load(f) log[command_used] .join(sys.argv) # 记录用户实际执行的命令如--data-dir /tmp/data --config v2.1 with open(audit_log.json, w) as f: json.dump(log, f, indent2)这是核查员第一眼要看的——若command_used显示--config v2.0但结果声称用v2.1则整包作废。6.3 交付物验证清单五项必检缺一不可在打包前运行validate_package.py进行最终校验检查项校验逻辑失败后果1. 数据指纹匹配比对audit_log.json中input_data_sha256与data/adsl_final.parquet实际SHA256打包中断提示“数据被篡改”2. 代码哈希一致计算code/目录下所有.py文件SHA256与audit_log.json中code_hash比对打包中断提示“代码与记录不一致”3. 配置版本兼容检查configs/hamd_v2.1.yaml中compatible_with_ads_version: v1.4是否匹配data/目录名报警告但继续打包需人工确认4. 结果表完整性确保results/efficacy_primary.csv包含本文还有配套的精品资源点击获取