What is the Haldane Correction? Fixing Zero-Cell Probabilities

What is the Haldane Correction? Fixing Zero-Cell Probabilities

The Haldane correction (sometimes called the Haldane-Anscombe correction) adds a small constant — classically $0.5$ — to each cell of a contingency table before computing a ratio, log, or odds-based statistic. It is the standard fix for the problem that any cell containing zero observations makes an odds ratio either zero or undefined, and makes its log statistic $\pm \infty$.

The problem

In interaction testing between two categorical attributes, each cell of the contingency table records how often a particular pair of levels appeared together in observed choices. For attributes with many levels, or small samples, some cells inevitably contain zero observations.

The naive odds ratio for a $2 \times 2$ sub-table is:

$$\mathrm{OR} = \frac{n_{11} \cdot n_{22}}{n_{12} \cdot n_{21}}$$

If $n_{12}$ or $n_{21}$ is zero, the ratio diverges to infinity. If $n_{11}$ or $n_{22}$ is zero, it collapses to zero. Either way the test statistic becomes nonsensical and would, uncorrected, manufacture a highly “significant” interaction finding from what is actually a sparse-data artefact.

How the correction works

Haldane’s fix adds $0.5$ to every cell of the table before computing the statistic:

$$\mathrm{OR}_{\text{Haldane}} = \frac{(n_{11} + 0.5)(n_{22} + 0.5)}{(n_{12} + 0.5)(n_{21} + 0.5)}$$

This stabilises the estimator and its variance. The $0.5$ is a Bayesian-flavoured choice — equivalent to a Jeffreys prior of $\mathrm{Beta}(0.5, 0.5)$ on each cell probability — but any small positive constant achieves the same stabilising effect; $0.5$ is simply the convention.

Why it matters in conjoint

Interaction grids in CBC and ACBC studies routinely contain sparse cells, especially when prohibited combinations limit the design space or when a level is used sparingly. Running the interaction tests without a small-cell correction, then applying Benjamini-Hochberg on top, will cheerfully “discover” interactions driven entirely by individual zero cells. The correction has to happen before the multiplicity adjustment, not after.

How Ordeen uses it

Every interaction cell is pre-adjusted with the Haldane correction before its test statistic is computed, and only then is BH applied to the resulting $p$-value array. The result is interaction findings that reflect genuine signal rather than sparse-cell arithmetic.

Related terms

Benjamini-Hochberg · Conjoint analysis · Full methodology

Subscribe to this product here and start using it today!

ordeen

At Ordeen, our mission is to make AI useful, not just impressive. Because the future shouldn’t just be AI-powered. It should be data-backed and reality-checked.

Verified data first. AI last.

© 2026

All Rights Reserved