Statistical & Clinical Analysis
Tarone’s Homogeneity Test Correction: Exact Asymptotic χ² Adjustment to Breslow-Day
Correct the conservative inefficiency of the Mantel-Haenszel Breslow-Day test using Robert Tarone’s (1985) score adjustment χ²_Tarone = χ²_BD - [Σ(a_k - E_k)]² / ΣVar_k.
Why SAS PROC FREQ and R DescTools print Breslow-Day WITH Tarone’s 1985 correction!
Robert E. Tarone (1985, Biometrika) proved a subtle mathematical flaw in the classic 1980 Breslow-Day homogeneity statistic χ^2_BD = Σ [(a_k - E_k(OR_MH))^2 / Var_k(OR_MH)]: because the Mantel-Haenszel pooled estimator OR_MH is NOT the conditional maximum likelihood estimator (where Σ(a_k - E_k) would equal 0 identically!), χ^2_BD does NOT converge asymptotically to a central χ^2_(K-1) distribution—it systematically overestimates χ^2!
Subtracting the squared total score residual divided by total asymptotic variance—Tarone’s adjustment Δ_T = [Σ(a_k - E_k)]^2 / ΣVar_k—restores exact χ^2_(K-1) asymptotic distribution: χ^2_Tarone = χ^2_BD - [Σ(a_k - E_k)]^2 / ΣVar_k! When χ^2_BD = 6.84 across K = 3 strata (df = 2, critical 5.991!) with Σ(a_k - E_k) = 4.20 and ΣVar_k = 14.50, Tarone’s penalty Δ_T = 1.2166 reduces the statistic to χ^2_Tarone = 5.6234 (< 5.991—reversing a false effect-modification rejection)!
| Stratified Homogeneity Input (K = 3, df = 2) | Tarone Adjustment Δ_T | Tarone-Corrected χ²_T | Homogeneity Decision (α = 0.05, Crit = 5.991) |
|---|---|---|---|
| χ²_BD = 6.84, Σ(a-E) = 4.20, ΣVar = 14.50 | 1.2166 | 5.6234 | Homogeneous (< 5.991 — Pool Safely) |
| Exact Conditional MLE Limit Σ(a-E) = 0 | 0.0000 | 6.8400 | Coincides with unadjusted χ²_BD |
| Invalid ΣVar <= 0 or Negative χ²_T | Error Guard | "Invalid Stratified Variance Inputs" | Numerical Consistency Guard |
Tarone-Corrected Homogeneity Chi-Square Statistic χ²_Tarone
Evaluates χ²_BD - [Σ(a_k - E_k)]^2 / ΣVar_k from Breslow-Day statistic B2, summed Mantel-Haenszel residual B3, and summed stratum variance B4.
=IF(OR(B2 < 0, B4 <= 0, B2 - (B3 ^ 2) / B4 < 0), "Invalid Stratified Variance Inputs", ROUND(B2 - (B3 ^ 2) / B4, 4))Tarone Score Non-MLE Penalty Term Δ_T = [Σ(a_k - E_k)]² / ΣVar_k
Quantifies how much OR_MH deviates from the conditional maximum likelihood score equation Σ(a_k - E_k) = 0.
=IF(B4 <= 0, "Invalid Stratified Variance Inputs", ROUND((B3 ^ 2) / B4, 4))Try the example
Use the original values or change them to test your understanding.