Arte SheetsLearn. Try. Understand.

Statistical & Psychometrics

Woolf Inverse-Variance Pooled Odds Ratio & 95% CI (Meta-Analysis)

Synthesize multi-center 2×2 case-control or trial strata via Barnet Woolf’s (1955) inverse-variance log-odds weighting w_i = 1 / (1/a + 1/b + 1/c + 1/d) and Wald 95% confidence bounds.

Exact precision weighting of log-odds ratios across multi-site epidemiological strata!

Barnet Woolf (Annals of Human Genetics, 1955) pioneered inverse-variance fixed-effect meta-analysis for 2×2 contingency tables by showing that each stratum’s log-odds ratio y_i = LN((a_i * d_i) / (b_i * c_i)) has asymptotic variance v_i = 1/a_i + 1/b_i + 1/c_i + 1/d_i! Weighting each study by inverse variance w_i = 1 / v_i yields the minimum-variance pooled estimator OR_Woolf = EXP(SUMPRODUCT(y, w) / SUM(w)) with standard error SE = SQRT(1 / SUM(w)) and 95% confidence interval EXP(LN(OR_Woolf) ± 1.95996 * SE)!

Synthesize three hospital case-control strata ([24,12,15,25], [30,18,20,32], [18,10,12,20]): Woolf inverse-variance pooling yields OR_Woolf = 2.9483 with 95% lower confidence bound 1.7347 (> 1.00, statistically significant association)—and alerts analysts to apply Haldane-Anscombe +0.5 continuity correction whenever any cell count hits 0!

Multi-Site Synthesis CohortPooled OR_Woolf95% Lower Confidence LimitZero-Cell Guard
Baseline 3-Hospital Cohort (a1 = 24)2.94831.7347 (Significant > 1.0)All cells > 0
Stronger Site-1 Exposure (a1 = 36)3.37802.0085Precision weight w1 increases
Any Zero Cell Count (MIN <= 0)"Apply 0.5 Haldane Cell Correction"Prevents #DIV/0! in 1/aContinuity Guard

Woolf Inverse-Variance Pooled Odds Ratio OR_Woolf

Exponentiates SUMPRODUCT(F2:F4, G2:G4) / SUM(G2:G4) where F2:F4 hold stratum log-odds ratios LN((a*d)/(b*c)) and G2:G4 hold Woolf weights 1 / (1/a + 1/b + 1/c + 1/d).

=IF(MIN(B2:E4) <= 0, "Apply 0.5 Haldane Cell Correction", ROUND(EXP(SUMPRODUCT(F2:F4, G2:G4) / SUM(G2:G4)), 4))

Lower 95% Confidence Bound on Pooled Odds Ratio

Computes EXP(LN(OR_Woolf) - 1.95996 * SQRT(1 / SUM(G2:G4))).

=IF(MIN(B2:E4) <= 0, "Apply 0.5 Haldane Cell Correction", ROUND(EXP((SUMPRODUCT(F2:F4, G2:G4) / SUM(G2:G4)) - 1.95996 * SQRT(1 / SUM(G2:G4))), 4))

Try the example

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

Further reading