Solved – Should I correct the p-value when testing Proportionnal Hazard assumption with cox.zph()

When testing the Proportionnal Hazard assumption in a cox model in R, you usually use the survival::cox.zph() function.

Output is something like this:

library(survival) my.cox.model = coxph(someFormula) cox.zph(my.cox.model) #               rho    chisq      p # x1:A     -0.01166   0.4931  0.483 # x1:B     -0.01135   0.4655  0.495 # x1:C      0.00799   0.2328  0.629 # x2        0.02412   2.0777  0.149 # x3        0.00239   0.0204  0.886 # x4        0.00463   0.0767  0.001 ** # GLOBAL         NA  37.5889  0.308 

But in doing so, I've made 7 tests in a row, so my alpha (I use 5%) may be broken and I could think there is a HP problem for x4 because of sole randomness.

Would it make sense to adjust these p-values for multiple comparisons ?

If yes, would a Bonferroni correction be OK ? And should I account the last line ("Global" test) as a hypothesis test ?

PS: The help ?cox.zph does not say anything about any correction.

You don't want to do multiple-comparison corrections for cox.zph() types of tests, as you are trying to protect yourself from something different than Type I errors.

When you are trying to disprove a null hypothesis, you want to convince a skeptical reviewer that your results are not simply false positives due to chance. Multiple-comparison correction is an important part of that effort to minimize Type I errors.

For testing the proportional hazards (PH) assumption, you want to convince a skeptical reviewer that a Cox model with its assumption of PH is a valid approach. In effect you would like to prove the null hypothesis of the cox.zph() test that PH holds. That isn't formally possible, so you need to be sensitive to any indications that PH is violated and take appropriate action in that case. Put another way, you want to err on the side of potential false-positives for violation of PH. Thus multiple-comparison corrections go in the wrong direction.

I at least start to worry if I find p-values below 0.2 or 0.1 in cox.zph(), as those values mean that there is only a 20% or 10% chance that such a deviation from true PH is due to chance. I immediately take action if I see "significant" p-values like yours for x4. You should certainly look at the plots of scaled Schoenfeld residuals over time that cox.zph() provides, to get a sense of what might be going on. Stratification on the variable(s) potentially violating PH can help.

Similar Posts:

Rate this post

Leave a Comment