I'm using a cox proportional hazard model in R to see if a treatment variable (treatment or placebo) has effect on the survivaltime of patients. I intend to test this for each of my grouping variables (e.g. Age <60 or Age > 60).

I could do this by making two different subgroups of my dataset, as follows:

c.example1 <- coxph(Surv(time, status)~factor(treatment), data=lung[ lung$age.ind==0 ,])
c.example2 <- coxph(Surv(time, status)~factor(treatment), data=lung[ lung$age.ind==1 ,])

Each cox model gives me a P value telling me if there is a significant treatment effect. So far so good.

Now someone working with me on this problem suggested to use an interaction term to test the same thing. He feels this also gives answer to the same question, but requires less work (instead of two models, we build one):

c2.2 <- coxph(s ~ age + treatment + age:treatment, data=lung)

His idea is that the p value for our interaction term now tells us that if there is a significant effect for treatment in both subgroups. I thought it would only give information if the effect of age on treatment is different in the two subgroups. Not test is the effect of treatment is significant.

Is his interaction term approach the right one? If not, what is a good approach (besides coding two seperate models)?

Thanks for helping out!

  • $\begingroup$ Duplicate: stats.stackexchange.com/questions/157275/… $\endgroup$
    – DWin
    Commented Jun 24, 2015 at 3:45
  • $\begingroup$ The notion that "the p-value for our interaction term now tells us that if there is a significant effect for treatment in both subgroups" is wildly incorrect. It only reflects the implication of the data regarding the probability that the effects are different from each other across the groups. $\endgroup$
    – DWin
    Commented Jun 24, 2015 at 3:49

1 Answer 1


An alternative approach to consider is a stratified Cox PH model. In a stratified Cox PH model, separate baseline hazard functions are fitted for each level of the strata. If you want to consider people Age < 60 and Age > 60 as being subject to different underlying hazard functions then stratifying might be a useful option.

Guessing, based on your separate models, you would use

c.example1 <- coxph(Surv(time, status)~ treatment + strata(age.ind), data = lung)

to fit the stratified Cox PH model using age.ind as a factor to separate the two strata and hence their two baseline hazard functions.

  • $\begingroup$ Thanks for your input. By using strata we put more contraints on the model than if we would use two seperate cox models. We create two baselines but only allow for one coefficient to be estimated. The thing that puzzles me is that the P-values are very different. For the strata model I get a p value of almost one. Whilst for the two seperate cox models we get p values of about 0.6 for both. Any idea why this is? Also, I'm still not sure if the interaction approach can find if the treatment effect is present in each of the subgroups. Could you perhaps eloborate on that? $\endgroup$
    – Rogier
    Commented Jun 16, 2015 at 20:20
  • $\begingroup$ This isn't really my wheel house, but if the p values are such, why bother? There is no effect in either group, whichever way you analyse it. $\endgroup$ Commented Jun 16, 2015 at 20:38
  • 1
    $\begingroup$ The strata term introduces the implication that you are willing to assume that the effects should be averaged over the different strata and that you are considering the age-indicator to be a nuisance term. $\endgroup$
    – DWin
    Commented Jun 24, 2015 at 3:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.