Tutorials › Competing Risks and Multi-State Models › Why Product-Integral Estimates Preserve Probability

Transition Intensities and Probabilities · Tutorial 293 of 699

Why Product-Integral Estimates Preserve Probability

Learn to verify that each Aalen–Johansen update is a probability matrix and prove that multiplying valid updates preserves that property.

Advanced 10 min read

What You'll Learn

  • Write the Aalen–Johansen event-time update from transition counts and risk-set sizes.
  • State the compatibility condition that prevents negative update entries.
  • Prove that each valid update has nonnegative entries and rows summing to one.
  • Show why products of valid updates remain probability matrices.
  • Diagnose how incompatible event counts can produce negative probabilities.
  • Distinguish probability preservation from assumptions needed for statistical validity.

Why Probability Preservation Matters

A transition-probability estimate should behave like a probability distribution: its entries should be nonnegative, and each row should sum to one. The Aalen–Johansen estimator is built by multiplying event-time update matrices. The key question here is algebraic: under what condition does each update have those probability properties, and why do they persist after multiplication?

The answer depends on a basic constraint from the risk sets. At an event time, the total number of observed transitions out of a state cannot exceed the number of people at risk in that state immediately before that time. When the transition counts and risk-set sizes satisfy this constraint, each update is a row-stochastic matrix, meaning it has nonnegative entries and every row sums to one. A product of such matrices has the same properties.

Event-Time Updates and Compatibility

Suppose there are \(K\) states, indexed by \(1,\ldots,K\). Use rows for origin states and columns for destination states. At event time \(t_m\), let \(Y_j(t_m)\) be the number at risk in state \(j\) immediately before \(t_m\), and let \(dN_{jk}(t_m)\) be the number of observed transitions from state \(j\) to state \(k\) at that time, for \(j\ne k\). The estimated transition-hazard increment from \(j\) to \(k\) is \(dN_{jk}(t_m)/Y_j(t_m)\) when \(Y_j(t_m)>0\).

Definition: The event-time Aalen–Johansen update matrix \(L(t_m)\) has off-diagonal entries \(L_{jk}(t_m)=dN_{jk}(t_m)/Y_j(t_m)\) for \(j\ne k\) with \(Y_j(t_m)>0\), and diagonal entries \(L_{jj}(t_m)=1-\sum_{k\ne j}dN_{jk}(t_m)/Y_j(t_m)\). If \(Y_j(t_m)=0\), a valid update requires no transitions out of \(j\) at \(t_m\); that row is set to the corresponding identity row. The counts are compatible with the risk sets when, for every state with \(Y_j(t_m)>0\), \(\sum_{k\ne j}dN_{jk}(t_m)\le Y_j(t_m)\), and all transition counts are nonnegative.

This condition allows multiple transition types to occur at the same recorded time. Their counts are added within each origin state before checking compatibility. In the usual single-jump setup, the counts represent distinct people making at most one transition out of their state at that instant. Risk-set sizes are measured just before the event time, so people who transition at \(t_m\) are included in the denominator for that time.

The diagonal is defined as the amount needed to make the row sum one. This is an algebraic part of the update, not a separate observed transition count. The compatibility condition ensures that this diagonal entry is not negative.

Worked Example: Checking a Simultaneous-Event Update

Consider three states, \(A,B,C\), and a hypothetical event time. Suppose the risk-set sizes just before the event time are \(Y_A=10\), \(Y_B=8\), and \(Y_C=6\). At that time there are 2 transitions from \(A\) to \(B\), 1 from \(A\) to \(C\), and 3 from \(B\) to \(C\). There are no transitions out of \(C\).

For state \(A\), the total outgoing count is \(2+1=3\le10\); for \(B\), it is \(3\le8\); for \(C\), it is \(0\le6\). The counts are compatible. The outgoing increment proportions are \(2/10\) and \(1/10\) from \(A\), and \(3/8\) from \(B\). Therefore,

$$ L(t_m)= \begin{pmatrix} 1-\frac{2+1}{10} & \frac{2}{10} & \frac{1}{10}\\ 0 & 1-\frac{3}{8} & \frac{3}{8}\\ 0 & 0 & 1 \end{pmatrix} = \begin{pmatrix} 0.7 & 0.2 & 0.1\\ 0 & 0.625 & 0.375\\ 0 & 0 & 1 \end{pmatrix}. $$

Every entry is nonnegative. The row sums are \(0.7+0.2+0.1=1\), \(0.625+0.375=1\), and \(1=1\). Thus this update is a probability matrix.

Why Each Compatible Update Is a Probability Matrix

The verification can be made row by row. For a state \(j\) with \(Y_j(t_m)>0\), each off-diagonal entry is nonnegative because it is a nonnegative count divided by a positive risk-set size. Compatibility gives

$$ L_{jj}(t_m) =1-\frac{\sum_{k\ne j}dN_{jk}(t_m)}{Y_j(t_m)} \ge 0. $$

The row sum is exactly

$$ \sum_{k=1}^{K}L_{jk}(t_m) = 1-\sum_{k\ne j}\frac{dN_{jk}(t_m)}{Y_j(t_m)} +\sum_{k\ne j}\frac{dN_{jk}(t_m)}{Y_j(t_m)} =1. $$

For a state with \(Y_j(t_m)=0\), the stipulated identity row is also nonnegative and sums to one. Hence every row of \(L(t_m)\) has nonnegative entries summing to one. This proves that a compatible event-time update is row-stochastic.

The proof uses the actual risk-set counts at each event time; it does not require event times to be distinct across transition types. If several types occur at one time, their outgoing counts are included together in the same row sum. That is precisely why compatibility must be checked for the total outgoing count from each state, rather than separately for each transition type.

Why Products Preserve the Property

Let \(A\) and \(B\) be two \(K\)-by-\(K\) row-stochastic matrices. Every entry of their product is nonnegative, because

$$ (AB)_{ij}=\sum_{\ell=1}^{K} A_{i\ell}B_{\ell j}\ge0. $$

For row \(i\), its sum is

$$ \sum_{j=1}^{K}(AB)_{ij} =\sum_{j=1}^{K}\sum_{\ell=1}^{K}A_{i\ell}B_{\ell j} =\sum_{\ell=1}^{K}A_{i\ell}\left(\sum_{j=1}^{K}B_{\ell j}\right) =\sum_{\ell=1}^{K}A_{i\ell}=1. $$

The middle equality uses the fact that every row of \(B\) sums to one. Thus \(AB\) is row-stochastic. Applying the same argument repeatedly proves the result for any finite product of valid event-time updates.

With event times \(t_1<\cdots<t_M\), the Aalen–Johansen product through \(t_M\), under the row-origin convention, is \(L(t_1)L(t_2)\cdots L(t_M)\). If every event-time count is compatible with its risk sets, every factor is row-stochastic, so the full product is row-stochastic as well. This is the probability-preservation result: every entry of the product is nonnegative, and each of its rows sums to one.

Worked Example: Multiplying Two Valid Updates

Suppose the first event-time update for hypothetical states \(A,B,C\) is

$$ L(t_1)= \begin{pmatrix} 0.8&0.2&0\\ 0&0.5&0.5\\ 0&0&1 \end{pmatrix}. $$

It could arise from 1 transition from \(A\) among 5 at risk and 2 transitions from \(B\) among 4 at risk, with no transitions out of \(C\). The outgoing totals, 1 and 2, do not exceed the respective risk-set sizes. At the second event time suppose the update is

$$ L(t_2)= \begin{pmatrix} 1&0&0\\ 0.25&0.75&0\\ 0&0.2&0.8 \end{pmatrix}. $$

For example, its nonzero outgoing increments can come from 1 transition among 4 at risk in \(B\) and 1 among 5 at risk in \(C\); both are compatible. The product is calculated in time order:

$$ L(t_1)L(t_2)= \begin{pmatrix} 0.8(1,0,0)+0.2(0.25,0.75,0)\\ 0.5(0.25,0.75,0)+0.5(0,0.2,0.8)\\ (0,0,1)L(t_2) \end{pmatrix} = \begin{pmatrix} 0.85&0.15&0\\ 0.125&0.475&0.4\\ 0&0.2&0.8 \end{pmatrix}. $$

For instance, the second row is \((0.125,0.375,0)+(0,0.1,0.4)=(0.125,0.475,0.4)\). The three row sums are \(0.85+0.15=1\), \(0.125+0.475+0.4=1\), and \(0.2+0.8=1\); all entries are nonnegative. The calculation illustrates the closure proof for two factors.

When Compatibility Fails

The risk-set condition is not a technical nicety. Without it, the diagonal entry defined by the Aalen–Johansen update can be negative, so the update is not a probability matrix. For example, suppose a hypothetical state \(A\) has \(Y_A=4\), but the recorded counts at one event time are 3 transitions from \(A\) to \(B\) and 2 from \(A\) to \(C\). The total outgoing count is \(5>4\), and the update row would be

$$ \left(1-\frac{3+2}{4},\frac{3}{4},\frac{2}{4}\right) =(-0.25,0.75,0.5). $$

Its entries sum to one, but one is negative. A row sum of one alone is not enough: nonnegativity is also necessary. Such a result points to incompatible inputs or an invalid construction—for example, a risk set that was counted incorrectly, duplicated transition counts, or denominators that do not match the event-time convention. It should prompt a data and implementation check, not be repaired by silently truncating the negative entry.

Worked Example: Diagnosing an Invalid Update

A hypothetical analysis reports \(Y_A=4\) immediately before a tied event time, with 3 transitions from \(A\) to \(B\) and 2 from \(A\) to \(C\). Check whether this can define a valid update and identify the diagnostic.

Compatibility check. The total outgoing count is \(3+2=5\), which exceeds \(Y_A=4\). The update is therefore incompatible with the risk set.

Computed row. The transition proportions are \(3/4=0.75\) and \(2/4=0.5\). The diagonal formula gives \(1-0.75-0.5=-0.25\), so the row is \((-0.25,0.75,0.5)\).

Conclusion. Although the row sums to one, it has a negative entry and cannot represent a probability distribution. The counts, risk-set definition, and handling of ties must be reconciled before using the product estimator.

Scope, Diagnostics, and Alternatives

Probability preservation is a finite-sample algebraic property; by itself, it does not establish that the estimated probabilities are unbiased, consistent, or scientifically appropriate. Statistical validity still depends on the study design, state definitions, observation process, and assumptions needed for estimating transitions from the observed data. In particular, a perfectly row-stochastic product can still estimate a poorly defined target if the states or time origin are wrong.

Useful checks at each event time are straightforward: verify that the risk-set size is positive wherever an outgoing event is recorded; check that counts are nonnegative; compare total outgoing counts with the corresponding risk-set sizes; and inspect every update row for nonnegative entries and a sum of one. Then verify the same properties for the final product, allowing for small rounding discrepancies if displayed values have been rounded. If a violation appears, inspect the unrounded calculations and event-time risk sets before drawing conclusions.

The product-integral construction combines transition increments in a single matrix update at each event time and retains the probability constraints by construction when its inputs are compatible. In contrast, estimating several transition or endpoint probabilities separately does not automatically enforce that they form a joint probability distribution. For example, treating a competing event as censoring in a separate Kaplan–Meier calculation targets a different quantity from a cumulative probability that accounts for competing events. These approaches answer different questions; the row-stochastic property is not a reason to treat them as interchangeable.

The result also has limits. It proves that the computed rows remain probability distributions, not that each entry is the true transition probability. It relies on the specified update formula and compatible counts; other ways of smoothing or modifying transition increments need not yield nonnegative updates. The crucial distinction is between preserving probability algebraically and estimating the intended probability accurately.

Key takeaway: If, at every event time and in every origin state, total outgoing transition counts do not exceed the risk-set size, the Aalen–Johansen update is row-stochastic. Products of those valid updates remain row-stochastic, so their entries are nonnegative and each row sums to one.

Check Your Understanding

Answer these questions to check the compatibility condition and the probability-preservation argument.

  1. For one state, \(Y_j=12\), with 4 transitions to one destination and 3 to another at the same time. Is the update compatible? What is the diagonal entry?
  2. Why is it necessary to check the total outgoing count across destinations, rather than checking each transition count separately?
  3. Two event-time updates are row-stochastic. What properties of their product follow, and why?
  4. A computed update row sums to one but contains an entry of \(-0.1\). Is it a valid probability update? What should be checked?

Solutions. 1. Yes: \(4+3=7\le12\), and the diagonal is \(1-7/12=5/12\). 2. Separate checks could each pass while the combined outgoing count exceeds the risk set, making the diagonal negative. 3. Every product entry is a sum of products of nonnegative entries, so it is nonnegative; summing across a product row gives one because the rows of both factors sum to one. 4. No. Nonnegativity fails even though the row sum is one; check the event counts, risk-set size, and tie handling against the update definition.

Clinical Biostats