亚组分析(森林图)
这个方法是做什么的
回答“这个治疗(或暴露)的效应在不同人群里是否一致”。模块在总体和每个亚组水平内分别估计暴露效应——二分类结局给 OR,生存结局给 HR(Cox,Efron 法处理并列时间),连续结局给均值差——可同时校正协变量;再在全样本中检验“暴露 × 亚组变量”的交互作用,给出 P 交互,并对多个亚组变量的 P 交互做 Holm 校正作为补充。结果以亚组表和森林图呈现,森林图最上方是总体效应。
第一张卡列出每个亚组两臂的例数与事件数。事件太少时估计极不稳定,模块按固定规则把这些亚组标为“不可估计”(Logistic/Cox 每臂事件少于 5,线性回归每臂少于 3 例),而不是给出一个看似“无效”的结果。
需要准备什么数据
- 放入结局变量Y:1 个
- 放入[定量]生存时间(可选)(可选):定量变量(数值)
- 放入[二分类]暴露/分组变量:1 个,定类变量(分组/标签)
- 放入[定类]亚组变量:至少 1 个,定类变量(分组/标签)
- 放入校正协变量(可选)(可选):不限
数据要求
- 数据表至少 40 行。
- 单列缺失率不超过 30%。
- 不接受取值全都一样的列(零方差列没有可分析的变异)。
- 「放入[二分类]暴露/分组变量」必须正好是 2 个类别。
- 「放入[定类]亚组变量」的类别数需在 2~10 之间。
以上条目由系统从该方法的校验规则直接生成,与上传数据时的实际拦截规则一致。
什么时候用它
- 随机对照试验或队列研究的亚组分析,制作论文中的亚组森林图
- 检验某个因素是否修饰暴露效应(效应修饰 / 交互作用)
- 在预先设定的几个亚组中展示疗效的一致性
示例数据为 600 例随机分组研究,按性别、年龄组、糖尿病和地区做亚组,并校正基线风险评分。总体 HR=0.756(p=0.013),四个亚组变量的 P 交互均大于 0.05。
暴露变量必须恰为两个水平,参照水平默认取排序后的第一个(示例为安慰剂),可在控件中指定。模型类型默认自动判定:放入生存时间即走 Cox,结局为两个取值走 Logistic,连续结局走线性回归;也可以手动指定,例如同一份生存资料只看“随访期内是否发生事件”时改选 Logistic。校正协变量在每个亚组模型和交互作用检验中都会同时纳入。
什么时候不要用它
- 想找出所有与结局相关的因素:那是多因素建模问题,用「单因素与多因素回归」。
- 亚组变量是连续变量(年龄、BMI):先按临床切点分组,或直接看暴露效应随连续变量如何变化,用「限制性立方样条(RCS)」更充分地利用信息。
- 需要按多个分层合并效应(如多中心的分层 OR):用「分层卡方分析」得到 Mantel-Haenszel 合并 OR 与齐性检验。
- 各亚组来自不同研究、只有汇总数据:用「通用效应量Meta(亚组/回归)」做亚组 Meta 分析。
容易误读的地方
- 只能用 P 交互判断效应是否不同。 一个亚组 p<0.05、另一个 p>0.05,并不说明两组效应不同——示例中年龄小于 65 岁亚组 HR=0.652(p=0.005)、65 岁及以上亚组 HR=0.893(p=0.503),但年龄组的 P 交互为 0.141,正确结论是“未发现年龄修饰疗效”。
- 交互检验的功效很低。 检测交互作用所需样本量通常是检测主效应的数倍,P 交互不显著不能证明各亚组效应相同;示例数据生成时确实让糖尿病患者的疗效减弱,但 600 例下 P 交互仍为 0.263。
- 检验的亚组越多,假阳性越多。 检验 K 个亚组变量时,即使疗效完全一致,也约有 1−0.95^K 的概率至少出现一个 P 交互小于 0.05;第四张卡的 Holm 校正 P 可作为参考。报告时须写明一共检验了多少个亚组。
- 预先设定与事后发现的亚组可信度不同。 Wang 等(2007,NEJM)建议说明亚组是否在方案中预先设定、交互作用的生物学合理性,以及结果是否在其他研究中重复;事后发现的亚组差异只能作为假说。
- 稀疏亚组不要硬报。 标为“不可估计”的亚组在森林图中只保留标签、不画点;把它与相邻水平合并后重跑,比报告一个区间极宽的估计更有意义。同理,亚组变量的水平不宜过细(模块上限 10 个水平),年龄、病程这类连续量应按事先确定的临床切点分组,而不是看了数据再挑切点,否则交互作用检验的 p 值会被严重高估其可信度。
- 亚组内为常数的协变量会被自动移除。 例如按性别分亚组时又把性别放进协变量,或某个协变量在某一亚组内只有一个取值,该亚组模型会去掉它再拟合,因此不同亚组的校正集合可能不完全相同;协变量最好选与亚组变量无关、在各亚组内都有变异的因素。
报告里有什么
- 输出结果一:数据概览与亚组样本量
- 输出结果二:亚组分析结果表
- 输出结果三:亚组森林图
- 输出结果四:交互作用检验与多重比较
- 输出结果五:结论与学术表述
森林图:最上方为总体效应,其下为各亚组效应;虚线为无效线(HR=1)。