HR really close to 1 but significant - how to interpret and report?

Hi, first of all, I want to thank all active members here, I found many useful tips and insights here, beside the fact that I learned a lot. :blush:

Now its time to ask a maybe „easy“ question, which came up, while I was analysing survival data.
The study is not that complex, I am using a ph cox model with 5 parameters and ph assumption is fulfilled.

Now my results showed, that 1 variable has a HR of 1.0003 (CI: 1.0001-1.0008). Corresponding to the CI it is significant.
The parameter is continuous and has the 2nd highest Chi2 in the model. Beside this, the histogram shows, that it is highly right-skewed, although I already log-transformed it cause of not normal distributed residuals.

Now my question: How do I interpret and report a HR so close to 1? (especially in this log-transformed case)

Could the restricted mean survival time (RMST) maybe be a „better“ measurement?

1 Like

I’m certain that is a meaningless hazard ratio. Were X=male/female, anti-logging \hat{\beta} to get an HR would have been OK. I’ll bet that the HR is the anti-log of a coefficient for a predictor whose range is very, very different from 0-1. That’s why I default to using inter-quartile-range HRs in the R rms package.

1 Like

Well I get it, and you are completely right.
The interpretation in the way for example 10 increase in the variable means x-hazard-increase would be definitely better than the one with 1 increase.
And meanwhile I also understood that it is the potency of hazard ratio in this computation.

But now I have two more question:

  • Is there any solution, how one can implement this inter-quartile-range HR into the use of ggforest?

  • Is there a way to transform the HR back to interpret it on the original scale of the logarithmized variable?

Thank you already for your time! :blush:

The R rms summary function and its plot method gives you a kind of forest plot with one axis per predictor showing a hazard ratio. You can probably program a transformation of the summary (full name summary.rms) function to send data to ggforest with some work.

It is best to present HR, but using a log scale for tick marks. plot(summary(...), antilog=TRUE) gives you that.

1 Like

Given how small this CI is, I suspect it’s artifactual. What is the sample size here? I once came across a case where misapplication of a clustered variance estimator resulted in an incredibly small CI.

I wouldn’t call it artifactual but would rather call it an inappropriate use of a [0,1] scale for a covariate in computing the HR.

1 Like

The sample size is 2490. 3 of the parameters in the model are categorical, then I have age as continuous and the one with the small hazard ratio (as a logarithmized one). :confused:

What is the range of values for the predictor on the logarithmized scale? You mentioned it was still strongly right-skewed.

1 Like

So you mean that a 0 vs 1 contrast was effectively infinitesimal, relative to the whole range of the covariate?

I do not know what you are measuring. However, check whether the scale is appropriate as the HR is per 1 unit increase in your scale. E.g. if your variable is lung volume measured in millilitres your HR and CI will be quite different compared to a model with lung volume measured in litres.