0
$\begingroup$

I am fitting a cox proportional hazards model looking at mortality. I have a number of covariates and a specific predictor of interest (inflammation), and I am also looking at how the effect of inflammation on mortality varies between two groups (Frail participants vs. Non-frail participants). Thus far, I have been stratifying by frailty status. As such, I have three different models:

overall_model.fit <- coxph(Surv(Follow_Up, Mortality) ~ Age + Sex + Assessment_Center + Smoking + Education + Ethnicity + Education + Inflammation, overall_df)

frail_model.fit <- coxph(Surv(Follow_Up, Mortality) ~ Age + Sex + Assessment_Center + Smoking + Education + Ethnicity + Education + Inflammation, frail_df)

non_frail_model.fit <- coxph(Surv(Follow_Up, Mortality) ~ Age + Sex + Assessment_Center + Smoking + Education + Ethnicity + Education + Inflammation, non_frail_df)

The sum of the frail and non-frail groups is the total set of participants, which is the "overall" model. My supervisor has told me that rather than stratify, I should get point estimates for the frail and non-frail "groups" from an interaction model:

interaction_model.fit <- coxph(Surv(Follow_Up, Mortality) ~ Age + Sex + Assessment_Center + Smoking + Education + Ethnicity + Education + Inflammation + Frailty + Inflammation*Frailty, overall_df)

Where I assign levels of frailty (i.e. Frail or Non-frail, 1 or 0) and see how the model estimate changes for different levels of inflammation (e.g. -1SD Inflammation, Mean Inflammation, +1SD Inflammation). Thus far, I have been trying to do this using predict.coxph - however, this has been problematic because predict.coxph compares the "newdata" field to the model means. Therefore, the levels that I set for each covariate have an impact on the risk of mortality (e.g. someone with no education has a higher mortality risk than someone with a university degree, but I have to set one of these levels). Worse, since the point estimates are relative to this mean, the results of predict.coxph do not tell me how the risk of mortality changes per unit increase/decrease in my predictor - it only tells me what the point estimate is for a given participant with those values of covariates relative to the mean. How can I get point estimates similar to the output of summary(coxph.model) (i.e. per unit increase/decrease in the predictor, Inflammation) for different levels of another predictor (i.e. frail or non-frail)?

I hope that this question makes sense.

$\endgroup$

1 Answer 1

1
$\begingroup$

With a Cox model you can readily get point estimates and confidence intervals of (log)-hazard ratios associated with different combinations of predictor values. In your model with the interaction (which is preferable to the separate models), the value of the interaction coefficient Inflammation:Frailty is specifically the extra log-hazard associated with Inflammation when there is also Frailty (and vice-versa). That log-hazard (or the hazard ratio obtained by exponentiating it) is typically of most interest and is unaffected by the values that you choose for other predictors.

For illustration you can choose any sets of predictor values that make sense in you population of interest. Yes, the absolute estimates of survival will change depending on your choices. The hazard ratios associate with Inflammation, Frailty, and their interaction won't change.

$\endgroup$
4
  • $\begingroup$ Thank you for your comment! I think that I understand this conceptually - the impact of inflammation and frailty on mortality is separate from the other covariates when calculating hazard, i.e. in the model, a one unit increase in inflammation will have the same impact on hazard regardless of ethnicity, education, etc. Perhaps I am missing something simple, but I still do not understand how I can readily get point estimates and confidence intervals for inflammation at different levels of frailty. Can I just get this from summary(model)? Or is there something else I should do? $\endgroup$
    – womy
    Commented May 7, 2023 at 13:15
  • $\begingroup$ For example, if the hazard associated with inflammation is 0.900 and hazard of the interaction term between inflammation and frailty is 0.100, I can probably derive the impact of inflammation in the frail and non-frail groups. However, is there a way to get R to provide this value to me for the frail and non-frail groups specifically? It would be quite helpful to get this point estimate (and associated confidence interval) generated. Thanks! $\endgroup$
    – womy
    Commented May 7, 2023 at 13:49
  • 1
    $\begingroup$ @womy when there's an interaction the summary(model) often isn't of much help. For overall estimates of significance of a predictor involved in interactions, you need a test that evaluates all terms associated with it. That can be done, for example, via the Anova() function in the R car package. For point estimates and confidence intervals for particular scenarios you need to use post-modeling tools like those in the R emmeans package. The rms package in R does useful post-modeling analysis for models built within that package, which I find particularly helpful for survival analysis. $\endgroup$
    – EdM
    Commented May 7, 2023 at 15:30
  • $\begingroup$ Thank you so much, I will try out these packages. I appreciate your help! $\endgroup$
    – womy
    Commented May 7, 2023 at 16:26

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.