1
$\begingroup$

I have a survival dataset that I'm working with in R. I can generate a KM curve and also a table of survival and time values.

My question is, given a point on the survival curve (let's say 0.8 survival at 400 days), and a coefficient/hazard ratio from a cox model, how do I calculate how much to increase/decrease the survival value?

My goal is to be able to take the survival curve and adjust it up/down by an arbitrary hazard ratio/coefficient.

$\endgroup$

1 Answer 1

1
$\begingroup$

In general, a continuous-time survival function $S(t)$ is related to the corresponding cumulative hazard function $\Lambda (t)$ by:

$$S(t) = \exp (-\Lambda (t)). $$

If you have a baseline survival curve $S_0(t)=\exp(-\Lambda_0(t))$ and want to estimate the corresponding survival curve for a particular hazard ratio $\text{HR}$ with respect to that baseline under proportional hazards, you first multiply the baseline cumulative hazard function by that hazard ratio. That gives you:

$$S(t|\text{HR}) = \exp(-\text{HR} \space \Lambda_0(t)) = S_0(t)^\text{HR}$$

So if baseline survival is 0.8 at 400 days and the hazard ratio is 2, the corresponding 400-day survival is $0.8^2=0.64$.

In practice, you are likely to get better results if you let well vetted software do these calculations for you. Note that the Kaplan-Meier survival curve for a baseline comparison group, for example an untreated control group, is not the same as that calculated from the baseline hazard estimated by your Cox model, which pools information from all cases and could have incorporated other outcome-associated covariates. You can ask the software to give you those refined estimates, along with confidence intervals, via functions having names like survfit or predict.

$\endgroup$
1
  • $\begingroup$ Thank you! I wanted to experiment with rejection sampling to see how it compares with using other methods of simulating survival times, but I couldn't figure out how to adjust the survival curve. $\endgroup$ Commented Aug 11, 2022 at 21:10

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.