Biostatistics & Clinical Trials
O’Brien-Fleming vs Pocock Group-Sequential Interim Boundary Formula
Compute O’Brien-Fleming information-scaled critical Z boundaries and Lan-DeMets cumulative alpha spending alpha*(t) across interim Data Monitoring Committee looks.
Protect final analysis alpha by demanding high Z hurdles at early interim looks
Peeking at a Phase III trial four times at Z = 1.96 inflates two-sided Type I error from 5.0% to over 12.6%! Pocock (1977) uses a flat hurdle Z_Poc = 2.361 across all K = 4 looks, which pays a heavy penalty at final analysis (needing p < 0.0182 instead of 0.05). O’Brien and Fleming (1979) scale critical hurdles inversely with the square root of information fraction t_k = d_k / D_max: Z_OBF(t_k) = C_OBF / SQRT(t_k), keeping the final analysis hurdle at t = 1.00 almost untouched (C_OBF = 2.0243 for K = 4 equally spaced looks at two-sided alpha = 0.05)!
Similarly, Lan and DeMets (1983) approximate O’Brien-Fleming for arbitrary unscheduled calendar looks via cumulative two-sided alpha spending alpha_LD(t) = 4 - 4 * Normal_CDF(z_{alpha/4} / SQRT(t)) (for two-sided alpha = 0.05, z_{0.0125} = 2.241403). Verify at t_1 = 0.25 (25% of target events, d_1 = 100 of 400): Z_OBF(0.25) = 2.0243 / 0.50 = 4.0486, and Lan-DeMets spends virtually zero alpha (0.00003 < 0.0001) early so 99.9% of your alpha budget remains preserved for final readout!
| Information Fraction t_k = d_k / D_max | O’Brien-Fleming Z_OBF | Lan-DeMets Cumulative 2-Sided Alpha Spent |
|---|---|---|
| Interim Look 1 (t = 0.25, 100/400) | 2.0243 / SQRT(0.25) = 4.0486 | 0.0001 (Ultra-conservative early bar) |
| Interim Look 2 (t = 0.50, 200/400) | 2.0243 / SQRT(0.50) = 2.8628 | 0.0031 (vs Pocock flat Z = 2.361) |
| Interim Look 3 (t = 0.75, 300/400) | 2.0243 / SQRT(0.75) = 2.3375 | 0.0193 |
| Final Analysis (t = 1.00, 400/400) | 2.0243 / SQRT(1.00) = 2.0243 | 0.0500 (Full two-sided 5% exhausted) |
O’Brien-Fleming Interim Critical Z Boundary Formula
Compute information fraction t_k = MIN(1, d_obs / D_max) and divide boundary constant C_OBF by SQRT(t_k), guarding zero events.
=LET(d_obs, B2, d_max, B3, c_obf, B4, IF(OR(d_obs <= 0, d_max <= 0, d_obs > d_max), "Invalid Information Fraction", ROUND(c_obf / SQRT(d_obs / d_max), 4)))Lan-DeMets O’Brien-Fleming Cumulative Two-Sided Alpha Spending Formula
Evaluate Lan and DeMets’s (1983) exact two-sided O’Brien-Fleming spending function alpha_LD(t) = 4 * (1 - Normal_CDF(z_{alpha/4} / SQRT(t))) with z_{0.0125} = 2.2414027, which evaluates to 0.00305 at t = 0.50 and hits 4 * 0.0125 = 0.05000 identically at final readout t = 1.00.
=LET(d_obs, B2, d_max, B3, IF(OR(d_obs <= 0, d_max <= 0, d_obs > d_max), "Invalid Information Fraction", LET(t_inf, d_obs / d_max, z_arg, 2.2414027 / SQRT(t_inf), u_1, 1 / (1 + 0.2316419 * z_arg), ph_1, 0.3989422804014327 * EXP(-0.5 * z_arg^2) * u_1 * (0.31938153 + u_1 * (-0.356563782 + u_1 * (1.781477937 + u_1 * (-1.821255978 + 1.330274429 * u_1)))), ROUND(4 * ph_1, 5))))Try the example
Use the original values or change them to test your understanding.