Notes · methods
Hedges' g vs Cohen's d: the small-sample correction reviewers forget
2026-07-10
Most meta-analyses of clinical trials pool standardized mean differences, and most software defaults to Hedges’ g. Yet a surprising number of extraction spreadsheets compute Cohen’s d and call it g. That’s a mislabel a statistical reviewer will catch, and at small sample sizes, a real bias.
Why d is biased upward
Cohen’s d divides the mean difference by the pooled SD:
d = (M₁ − M₂) / s_pooled
Because the sample SD underestimates the population SD in small samples, d systematically
overstates the effect when trials are small. Hedges & Olkin (1985) derived the correction
factor:
J = 1 − 3 / (4·df − 1) where df = n₁ + n₂ − 2
g = J × d
Worked example
Two arms of 24 (df = 46), and suppose d = 0.170:
J = 1 − 3/(4×46 − 1) = 1 − 3/183 = 0.9836
g = 0.9836 × 0.170 = 0.167
That correction looks small. It isn’t always. At n = 10 per arm (df = 18), J = 0.9577: a
4.2% haircut on every small trial in your pool, all in the same direction. In a meta-analysis
whose small trials happen to skew positive (they usually do, since small-study effects are real),
skipping J inflates the pooled estimate exactly where it’s most fragile.
The variance follows
The correction has a matching large-sample variance for g:
Var(g) = (n₁ + n₂)/(n₁·n₂) + g²/(2·(n₁ + n₂))
This is the form the standard software (e.g. metafor’s SMD measure) uses. A common hand-rolled
mistake is applying J twice (once to the point estimate and again squared to a d-based variance)
or not at all. Use the g-based variance with the corrected g, once.
How to report it
One sentence in the methods: “Standardized mean differences were computed as Hedges’ g (small-
sample corrected).” And in your extraction records, keep d, J, and g as separate visible
steps rather than a single opaque number. The correction is exactly the kind of intermediate a
careful reader wants to be able to check.