Arte SheetsLearn. Try. Understand.

Biostatistics & Survival Analysis

Tarone-Ware and Gehan-Breslow Weighted Log-Rank Survival Formula

Compare standard Mantel-Haenszel (w=1), Tarone-Ware (w=SQRT(n_j)), and Gehan-Breslow (w=n_j) weighted log-rank Z statistics across discrete failure risk sets.

Understand how risk-set weights shift power toward early vs late survival differences

At each distinct failure time j with total at-risk n_j, Arm 1 at-risk n_1j, total events d_j, and Arm 1 events d_1j, the hypergeometric expected events in Arm 1 are e_1j = d_j * (n_1j / n_j) with exact finite-population variance v_1j = n_1j*(n_j - n_1j)*d_j*(n_j - d_j) / ((n_j^2)*(n_j - 1)).

When a surgical or acute-care therapy protects patients strongly in the first months before hazard curves converge late in follow-up, unweighted log-rank (w_j = 1) gives equal weight to noisy late risk sets with tiny n_j, whereas Gehan-Breslow (w_j = n_j) can overweight heavy early censoring. Tarone and Ware (1977) compromise cleanly via w_j = SQRT(n_j): Z_TW = SUM(SQRT(n_j)*(d_1j - e_1j)) / SQRT(SUM(n_j * v_1j))!

Weighted Survival TestRisk-Set Weight w_jSquared Variance Weight w_j^2
Mantel-Haenszel Log-Rankw_j = 1 (Proportional hazards optimum)1
Tarone-Ware (1977)w_j = SQRT(n_j) (Balanced early/mid power)n_j
Gehan-Breslow Wilcoxonw_j = n_j (Strong early-event emphasis)n_j^2

Exact Hypergeometric Risk-Set Variance v_1j Formula

Include the finite-population tie factor (n_j - d_j) / (n_j - 1) so tied death times are handled without bias, guarding single-patient risk sets n_j <= 1.

=IF(B2 <= 1, 0, (C2 * (B2 - C2) * D2 * (B2 - D2)) / ((B2^2) * (B2 - 1)))

Tarone-Ware Z_TW vs Unweighted Log-Rank Z_LR Formula

Notice how cleanly w_j^2 = (SQRT(n_j))^2 = n_j simplifies the Tarone-Ware denominator to SQRT(SUMPRODUCT(B2:B5, G2:G5)). On our 4-stratum early-benefit trial, unweighted Z_LR = -1.8032 (< 1.96 two-sided), whereas Tarone-Ware Z_TW = -2.2957 and Gehan-Breslow Z_GB = -2.5017!

=LET(v_tw, SUMPRODUCT(B2:B5, G2:G5), IF(v_tw <= 0, "Zero Event Variance", ROUND(SUM(H2:H5) / SQRT(v_tw), 4)))

Try the example

Use the original values or change them to test your understanding.

Further reading