比例风险测试:cox.zph()

testing for proportional hazards: cox.zph()

我对 cox.zph 显示的内容感到困惑。我在 documentation for the finalfit package 中遇到了这个测试,在“比例风险测试”标题下有一小段内容,这表明测试与特定变量相关的风险不会随时间变化的假设。

我 运行 它通过使用代码,但信息似乎暗示我想要一条从零开始的直线(我在图中有),并且假设检验不应该有显着的变量不同于零(我没有)。这似乎是一个矛盾:有没有人知道我在这里可能出错的地方。

matt_sfit1 <- coxph(Surv(matt_tmove_cen, matt_moved_cen)~
                matt_ncdem + flood_risk_simple + pre_matt.yr + CurrentAge + distance_bi + percap.inc.k + employment + rentership + pop.change + pop.den.k,
                data=matt_timeadd)

matt_sfit1 %>% cox.zph()
                      chisq df                      p
matt_ncdem         39.22057  1   0.000000000378530830
flood_risk_simple  28.56281  1   0.000000090707709686
pre_matt.yr         7.96306  1              0.0047742
CurrentAge          5.83612  1              0.0157004
distance_bi       141.75756  1 < 0.000000000000000222
percap.inc.k       58.80923  1   0.000000000000017372
employment         30.16208  1   0.000000039740433777
rentership          8.69457  1              0.0031916
pop.change         36.13011  1   0.000000001845730660
pop.den.k           9.56108  1              0.0019875
GLOBAL            281.42991 10 < 0.000000000000000222

matt_sfit1 %>% cox.zph() %>%  {zph_result <<- .} %>% plot(var=5)

比例性测试非常重要。如果比例风险假设被拒绝,这意味着利息的影响随时间变化,并且您正在查看的 'pooled' 系数实际上是不同基础值的平均值。

您报告的第一个测试概述了 PH 假设是否成立,即兴趣的影响是否随时间保持不变。图形检查可以提供信息来检测 'when' 这种变化的发生(例如,协变量可能对 earlier/later 产生更强的影响;从理论的角度来看,有时可以预期这一点)。我认为选择的 y-scale 隐藏了 non-horizontal 行。我会尝试通过移除观察点来隔离平滑曲线。您必须在 plot 中指定 resid=FALSE 参数。 这两个测试应该给你一个连贯的结果。

过去的话题(其中 here and here)提供了关于如何解决问题的极好的指导。