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.