Tutorials › Competing Risks and Multi-State Models › Worked Example: Predicting Risk From Cause-Specific Cox Models

Absolute Risk Prediction · Tutorial 117 of 699

Worked Example: Predicting Risk From Cause-Specific Cox Models

Use cause-specific Cox model estimates to calculate and interpret a profile’s predicted risk from each cause at two follow-up horizons.

Advanced 12 min read

What You'll Learn

  • Apply fitted cause-specific Cox models to a specified covariate profile
  • Adjust baseline cumulative hazard increments using cause-specific linear predictors
  • Calculate each cause’s contribution to cumulative incidence over successive intervals
  • Report cause-specific risks and event-free survival at two horizons
  • Check interval calculations for probability coherence and appropriate model support
  • Recognize when interval calculations need finer integration

From Fitted Cause-Specific Models to Absolute Risk

A cause-specific Cox model describes how covariates multiply a cause’s instantaneous event rate among people who remain event-free. An absolute-risk prediction asks a different question: for a person with a specified covariate profile, what is the probability of experiencing each event type by a chosen time? Answering it requires combining the fitted models for all causes with their baseline hazards. A cause-specific model’s hazard ratio alone is not that probability.

This tutorial works through those calculations at two horizons. The examples treat the fitted models and baseline hazard estimates as given; the target is a specified profile, not an average over a cohort. In each example, the reported baseline increments are defined on intervals where the cause-specific hazards are taken to be constant. This makes the interval risk calculation explicit. If the fitted baseline hazard estimates change materially within an interval, use a finer grid or numerical integration instead.

Definition: For causes \(k=1,\ldots,K\), a cause-specific Cox model is $$ \lambda_k(t\mid x)=\lambda_{k0}(t)\exp(\beta_k^\top x), $$ where \(\lambda_k(t\mid x)\) is the cause-\(k\) hazard at time \(t\) for covariate profile \(x\), \(\lambda_{k0}(t)\) is its baseline hazard, and \(\beta_k\) is the cause-specific coefficient vector. The cause-\(k\) cumulative incidence \(F_k(t\mid x)\) is the probability that cause \(k\) occurs by time \(t\), before any competing event. The event-free survival \(S(t\mid x)\) is the probability of having experienced no event by \(t\).

For a given profile, the cause-\(k\) hazard is multiplied by \(\exp(\beta_k^\top x)\). That multiplier can differ by cause. The adjusted hazard increments for all causes must therefore be combined to determine how much event-free probability remains available to each cause.

Interval Calculation and Its Justification

Suppose interval \(j\) has cause-\(k\) baseline cumulative hazard increment \(\Delta H_{k0,j}\). For profile \(x\), define the adjusted cause increment \(d_{k,j}(x)=\exp(\beta_k^\top x)\Delta H_{k0,j}\), and let \(d_j(x)=\sum_k d_{k,j}(x)\). Under constant cause-specific hazards within the interval, the probability of any event during that interval, conditional on being event-free at its start, is \(1-\exp[-d_j(x)]\). Within the interval, the fraction of this probability attributed to cause \(k\) is \(d_{k,j}(x)/d_j(x)\).

$$ \begin{aligned} q_j(x)&=1-\exp[-d_j(x)],\\ \Delta F_{k,j}(x)&=S(t_{j-1}\mid x)\,q_j(x)\frac{d_{k,j}(x)}{d_j(x)},\\ S(t_j\mid x)&=S(t_{j-1}\mid x)\exp[-d_j(x)],\\ F_k(t_j\mid x)&=F_k(t_{j-1}\mid x)+\Delta F_{k,j}(x). \end{aligned} $$

Here \(q_j(x)\) is the conditional any-event probability for the interval, and \(\Delta F_{k,j}(x)\) is cause \(k\)’s unconditional contribution to cumulative incidence by the interval’s end. It is unconditional because it includes the probability \(S(t_{j-1}\mid x)\) of reaching the interval event-free. The starting values are \(S(0\mid x)=1\) and \(F_k(0\mid x)=0\).

To justify the allocation, suppose each cause has a constant hazard \(\lambda_k\) within an interval of length \(L\). The total hazard is \(\lambda_\cdot=\sum_k\lambda_k\), so the conditional probability of any event is \(1-\exp(-\lambda_\cdot L)\). The probability density that the first event occurs at elapsed time \(u\) from cause \(k\) is \(\lambda_k\exp(-\lambda_\cdot u)\). Integrating over the interval gives

$$ \int_0^L \lambda_k\exp(-\lambda_\cdot u)\,du = \frac{\lambda_k}{\lambda_\cdot} \left\{1-\exp(-\lambda_\cdot L)\right\}. $$

Since \(d_{k,j}=\lambda_k L\), the hazard share \(\lambda_k/\lambda_\cdot\) equals \(d_{k,j}/d_j\), giving the stated allocation. This interval formula relies on constant cause hazards within the interval (or a suitable approximation). With fine intervals it is a practical way to integrate fitted hazards; it should not be mistaken for an exact allocation when the relative cause hazards vary substantially inside a wide interval.

Assumptions and inputs: The calculations require fitted cause-specific Cox models with an appropriate covariate specification and proportional hazards over the prediction range; baseline cumulative hazard estimates for every cause; a specified profile with the required covariates available; and event types that are mutually exclusive and correctly coded. The fitted estimates also need adequate follow-up support at the requested horizons. Model fitting must handle censoring under its required assumptions; prediction does not remove bias from informative censoring, misspecification, or unsupported extrapolation.

Worked Prediction at Two Horizons

Worked Example: Two Causes and a Nonreference Profile

Hypothetical data. Suppose a fitted model has two causes, relapse and death. For a specified profile \(x\), the cause-specific Cox multipliers are \(\exp(\beta_1^\top x)=1.50\) for relapse and \(\exp(\beta_2^\top x)=0.750\) for death. The estimated baseline cumulative hazard increments are:

Interval (years)Relapse baseline incrementDeath baseline increment
0 to 10.04000.0200
1 to 30.06000.0300

Assume the cause-specific hazards are constant within each listed interval for this calculation. The prediction horizons are 1 and 3 years.

Interval 1, from 0 to 1 year. The profile-adjusted increments are \(d_{1,1}=1.50(0.0400)=0.0600\) for relapse and \(d_{2,1}=0.750(0.0200)=0.0150\) for death. Thus \(d_1=0.0750\), and the interval any-event probability is \(q_1=1-\exp(-0.0750)=0.07226\). The cause shares are \(0.0600/0.0750=0.8000\) and \(0.0150/0.0750=0.2000\). Starting event-free, the one-year cumulative incidences are \(F_1(1\mid x)=1(0.0722565)(0.8000)=0.05781\) for relapse and \(F_2(1\mid x)=1(0.0722565)(0.2000)=0.01445\) for death. Event-free survival is \(S(1\mid x)=\exp(-0.0750)=0.92774\).

Interval 2, from 1 to 3 years. The adjusted increments are \(d_{1,2}=1.50(0.0600)=0.0900\) and \(d_{2,2}=0.750(0.0300)=0.02250\). Their sum is \(d_2=0.1125\), so \(q_2=1-\exp(-0.1125)=0.10640\). The shares are \(0.0900/0.1125=0.8000\) and \(0.02250/0.1125=0.2000\). At the start of this interval, survival is \(0.9277435\). Therefore,

$$ \begin{aligned} \Delta F_{1,2} &=0.9277435(0.1064027)(0.8000)=0.07897,\\ \Delta F_{2,2} &=0.9277435(0.1064027)(0.2000)=0.01974. \end{aligned} $$

Adding the interval contributions gives \(F_1(3\mid x)=0.0578052+0.0789715=0.1368\) for relapse and \(F_2(3\mid x)=0.0144513+0.0197429=0.03419\) for death. Survival at 3 years is \(S(3\mid x)=\exp[-(0.0750+0.1125)]=\exp(-0.1875)=0.8290\). The predictions are probabilities by the stated horizons for this covariate profile, conditional on the fitted model and its assumptions; they are not the cause-specific hazard multipliers.

A Second Profile and Horizon Check

Worked Example: Different Cause Multipliers

Hypothetical data. Consider another fitted pair of models and a profile with multipliers 2.00 for cause 1 and 1.50 for cause 2. Baseline increments for intervals 0–1 and 1–2 years are respectively \((0.0300,0.0100)\) and \((0.0500,0.0400)\), with cause 1 listed first. Assume hazards are constant within these intervals.

In the first interval, the adjusted increments are \(2(0.0300)=0.0600\) and \(1.50(0.0100)=0.0150\). The total is \(0.0750\), so \(q_1=0.0722565\); the shares are \(0.8000\) and \(0.2000\). Thus at year 1, \(F_1=0.0722565(0.8000)=0.05781\), \(F_2=0.0722565(0.2000)=0.01445\), and \(S_1=\exp(-0.0750)=0.92774\).

For the second interval, the adjusted increments are \(2(0.0500)=0.1000\) and \(1.50(0.0400)=0.0600\), totaling \(0.1600\). The conditional any-event probability is \(1-\exp(-0.1600)=0.14786\), with cause shares \(0.1000/0.1600=0.6250\) and \(0.0600/0.1600=0.3750\). The unconditional contributions are \(\Delta F_1=0.9277435(0.1478562)(0.6250)=0.08573\) and \(\Delta F_2=0.9277435(0.1478562)(0.3750)=0.05144\). At year 2, the cumulative incidences are \(F_1=0.0578052+0.0857329=0.1435\) and \(F_2=0.0144513+0.0514397=0.06589\). Survival is \(\exp[-(0.0750+0.1600)]=\exp(-0.2350)=0.7906\). The second interval’s cause shares differ from the first interval’s, so carrying forward the first interval’s allocation would give incorrect risks.

Diagnostics, Alternatives, and Limitations

At every horizon, the cause-specific cumulative incidences and event-free survival should satisfy \(S(t\mid x)+\sum_k F_k(t\mid x)=1\), apart from rounding. Each incidence should be nonnegative and nondecreasing over time, and each must be between 0 and 1. In the first worked example, at 3 years, the rounded values sum to \(0.8290+0.1368+0.03419\), approximately 1. These checks can reveal an omitted cause, a calculation error, or incompatible quantities.

The fitted baseline estimates are commonly reported as cumulative-hazard steps at event times, rather than as hazards constant over broad periods. For such estimates, risk can be computed by integrating \(S(u\mid x)\lambda_k(u\mid x)\) over time, using an appropriately fine numerical grid or the corresponding event-time increments. The interval formula above is exact under its stated within-interval assumption and is a useful approximation on a sufficiently fine grid. If cause-specific hazard patterns change sharply, broad-bin hazard shares can misallocate risk even when the total event probability is reasonable.

Cause-specific Cox predictions are model-based and profile-specific. A nonparametric Aalen–Johansen estimate is an alternative for estimating cumulative incidence in observed groups without specifying Cox covariate effects. A Fine–Gray model is another regression strategy, aimed directly at the subdistribution hazard. These approaches answer related but distinct modeling questions; neither makes a cause-specific Cox hazard ratio an absolute risk. Uncertainty in predicted risks also matters, especially when baseline estimates are imprecise; the earlier material on uncertainty in absolute-risk predictions addresses interval estimation.

Useful warning signs include predictions requested beyond observed follow-up, implausibly large multipliers for profiles far from the data, non-proportional effects, sparse events for a cause, and missing profile covariates. Probability coherence alone is not evidence that the model is well calibrated. Check follow-up support, model fit, covariate coding, and baseline hazard estimates before interpreting a precise-looking prediction.

Common pitfall: A common error is to calculate each cause’s risk as \(1-\exp[-H_k(t\mid x)]\) separately. Those values act as if each cause were the only possible event and can double-count people who would experience a competing event first. Instead, calculate event-free survival using the hazards of all causes together, then allocate the probability of an event over each interval to its causes.

Check Your Understanding

Answer each question using the interval calculation and assumptions stated above.

  1. If two adjusted increments in an interval are 0.0300 and 0.0200, what is the conditional probability of any event in that interval, given event-free status at its start?
  2. If the interval begins with survival 0.9000 and the increments are 0.0300 for cause 1 and 0.0200 for cause 2, calculate each cause’s interval contribution.
  3. Why is the cause-1 hazard multiplier alone insufficient to report cause 1’s cumulative incidence?
  4. What should be checked if \(S(t\mid x)+F_1(t\mid x)+F_2(t\mid x)\) is materially different from 1?

Solutions. (1) The total increment is \(0.0500\), so \(q=1-\exp(-0.0500)=0.04877\). (2) The shares are \(0.0300/0.0500=0.6000\) and \(0.0200/0.0500=0.4000\). The contributions are \(0.9000(0.0487706)(0.6000)=0.02634\) and \(0.9000(0.0487706)(0.4000)=0.01756\). (3) A multiplier gives a relative cause-specific hazard, not an absolute probability; absolute risk also depends on the baseline hazards and competing causes. (4) Check that every cause is included, increments and multipliers were applied consistently, survival was updated using the total hazard, and rounding is not responsible for the discrepancy.

Clinical Biostats