You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在SAS中如何使用PROC执行嵌套Cox回归模型的嵌套检验?

在SAS中比较嵌套Cox回归模型的方法

SAS中的PROC PHREG完全支持嵌套Cox回归模型的检验,你之前的代码失败是因为同一个PROC PHREG块中多个MODEL语句会覆盖上下文,TEST语句只会关联最后一个MODEL,而你的简化模型不含x3/x4,导致检验无效。

以下是两种正确的实现方法:

方法一:直接检验变量联合效应(等价于嵌套模型比较)

如果你的目标是检验“去掉x3/x4后的简化模型是否与全模型无差异”,本质就是检验这两个变量的联合显著性。只需拟合全模型,并用TEST语句执行检验(推荐指定似然比检验,比默认的Wald检验更适合嵌套模型):

proc phreg data=mydata;
  model time*event(0) = x1 x2 x3 x4; /* 拟合全模型 */
  /* 检验x3和x4的联合效应,/ lr 指定似然比检验(默认是Wald检验) */
  test x3 x4 / lr;
run;

输出结果中会给出似然比统计量、自由度和P值,若P值小于显著性水平(如0.05),则拒绝原假设,说明全模型更优。

方法二:分别拟合模型后计算似然比检验

如果你需要手动对比两个模型的拟合统计量,可以分别拟合全模型和简化模型,提取-2 Log L值后计算似然比统计量:

步骤1:拟合两个模型并保存拟合统计量

/* 拟合全模型,保存-2对数似然值 */
proc phreg data=mydata;
  model time*event(0) = x1 x2 x3 x4;
  ods output FitStatistics=full_model_fit;
run;

/* 拟合简化模型,保存-2对数似然值 */
proc phreg data=mydata;
  model time*event(0) = x1 x2;
  ods output FitStatistics=reduced_model_fit;
run;

步骤2:计算似然比检验结果

data lr_test_result;
  /* 合并两个模型的-2 Log L统计量 */
  merge full_model_fit(where=(Label='-2 Log L') rename=(Value=full_2ll))
        reduced_model_fit(where=(Label='-2 Log L') rename=(Value=reduced_2ll));
  
  /* 似然比统计量 = 简化模型-2LL - 全模型-2LL */
  lr_statistic = reduced_2ll - full_2ll;
  /* 自由度 = 全模型比简化模型多的变量数(这里是2个:x3、x4) */
  df = 2;
  /* 计算P值(卡方分布) */
  p_value = 1 - probchi(lr_statistic, df);
  
  label lr_statistic='似然比统计量' df='自由度' p_value='P值';
run;

/* 输出检验结果 */
proc print data=lr_test_result noobs;
run;

关键说明

  • 嵌套模型比较优先使用似然比检验,它比Wald检验更可靠,尤其是当样本量不大或系数估计值较大时。
  • 若使用TEST语句未加/ lr选项,默认输出Wald检验结果,虽然也能用于联合检验,但适用性不如似然比检验。

内容的提问来源于stack exchange,提问作者J.Z.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:42:30