累积鞅残差上确界检验能否验证分组及协变量的比例风险?
累积鞅残差上确界检验与比例风险假定验证:分组&连续协变量的适用性
好问题!直接给结论:完全可以——累积鞅残差上确界检验(包括SAS PROC PHREG里ASSESS过程实现的版本)既能验证分组变量,也能验证连续协变量的比例风险(PH)假定。下面我分情况把细节说清楚,再附上实用的SAS代码示例:
1. 分组变量的PH假定验证
对于分组变量(比如治疗组/对照组、性别这类分类变量),累积鞅残差上确界检验的逻辑很清晰:
- 针对每个分组生成随时间变化的累积鞅残差曲线,检验这条曲线的波动是否显著偏离零水平线
- 如果检验的p值小于你设定的显著性水平(比如0.05),就意味着这个分组变量的风险率随时间发生了变化,PH假定不成立
在SAS中的实现也很直观:在PROC PHREG里用ASSESS语句加上PH选项,搭配残差绘图可以更直观判断:
/* 针对分组变量sex检验PH假定 */ proc phreg data=sashelp.lung; model time*status(0) = sex; assess ph / residuals=martingale plot; run;
运行后,结果窗口会输出上确界检验的统计量和p值,PLOT选项生成的残差曲线也能帮你直观观察分组的风险率随时间的变化趋势。
2. 连续协变量的PH假定验证
对于连续协变量(比如年龄、血压这类数值型变量),这个检验同样适用:
- SAS的
ASSESS过程会自动处理连续变量,要么通过平滑技术拟合残差随时间的变化趋势,要么支持你手动将连续变量分组后再检验(一般无需手动分组,过程会自动优化) - 如果检验显著,说明这个连续变量的风险率不是恒定的,PH假定被违反。这时候你可以考虑把连续变量转化为分组变量,或者给它加一个与时间的交互项来修正模型
单独检验连续变量的SAS代码示例:
/* 针对连续变量age检验PH假定 */ proc phreg data=sashelp.lung; model time*status(0) = age; assess ph(age) / residuals=martingale; run;
实用注意事项
- 别只看p值!一定要结合残差图:如果残差曲线明显偏离零水平线,哪怕p值接近显著,也能判断PH假定存在问题
- 上确界检验的优势是比单一时点的检验更敏感,能捕捉到风险率随时间变化的整体趋势
- 样本量较小时,检验效能会下降,建议搭配Schöenfeld残差检验一起使用,交叉验证结果更可靠
内容的提问来源于stack exchange,提问作者user3156942
相关产品推荐
相关产品推荐

