Quant Memo
Core

Effect Size and Cohen's d

A $p$-value only tells you an effect is probably not zero; effect size, most commonly Cohen's d, tells you how big it actually is — in standardized units that let a huge, noisy sample and a small, clean one be compared honestly.

Prerequisites: One-Sample and Two-Sample t-Tests, The Student's t Distribution

Two backtests both report "statistically significant, p<0.01p < 0.01." One found a strategy that beats its benchmark by 0.02% a year; the other found one that beats it by 8% a year. Significance alone cannot tell them apart — with enough data, even a genuinely tiny, economically meaningless difference clears a pp-value threshold. What you actually want to know is how big the difference is, measured on a scale you can reason about. That is effect size, and Cohen's d is its most common form.

An analogy: grading on a curve versus grading in raw points

Saying "Strategy A beat Strategy B by 3 percentage points a year" sounds informative until you ask: 3 points relative to what? If year-to-year noise in that market typically swings 30 points, a 3-point edge is a rounding error lost in the static. If typical noise is only 1 point, a 3-point edge is enormous and rare. Cohen's d is the answer to "relative to what": it reports a gap not in raw units, but in units of the data's own natural noise — like grading on a curve instead of reporting a raw score, so a gap of "0.3" means the same thing whether you're comparing test scores, drug doses, or trading strategies.

The formula, one symbol at a time

Let xˉ1\bar{x}_1 and xˉ2\bar{x}_2 be the two group means being compared (for instance, average returns under two strategies), and let sps_p be the pooled standard deviation — a blended measure of how noisy the data is within each group. Cohen's d is:

d=xˉ1xˉ2spd = \frac{\bar{x}_1 - \bar{x}_2}{s_p}

In plain English: take the raw gap between two averages and divide it by how much the individual data points naturally bounce around within each group. A dd of 1.0 means the two group means are a full standard deviation apart — a large, visually obvious gap. Cohen's own rough guideposts, still widely used as a starting intuition: d0.2d \approx 0.2 is a "small" effect, d0.5d \approx 0.5 "medium," d0.8d \approx 0.8 "large" — though what counts as practically meaningful always depends on the specific field and stakes.

Distribution · normal
-2.000.002.00μvalue →
Within ±1σ 68.3%mean μ 0.00std σ 1.00

Picture two bell curves like the one above, shifted apart along the horizontal axis. Cohen's d is exactly how many standard-deviation widths that shift spans — a small dd means the two curves mostly overlap; a large dd means they barely touch.

Worked example 1: computing d for two strategies

Strategy A's monthly returns average 1.2% with standard deviation 3.0%; Strategy B's average 0.9% with standard deviation 2.8%, both estimated from large enough samples that the two standard deviations can be pooled by a simple average: sp=(3.0+2.8)/2=2.9s_p = (3.0+2.8)/2 = 2.9.

d=1.20.92.9=0.32.9=0.103d = \frac{1.2 - 0.9}{2.9} = \frac{0.3}{2.9} = 0.103

A dd of about 0.10 is a small effect by Cohen's guideposts — the two return distributions overlap heavily despite the 0.3-point difference in their averages, because month-to-month noise (2.8–3.0%) dwarfs the gap between them.

Worked example 2: same raw gap, different noise, different d

Now compare Strategy C, averaging 1.2%, against Strategy D, averaging 0.9% — the identical 0.3-point raw gap as above — but both are much steadier, with standard deviations of only 0.4% each, so sp=0.4s_p = 0.4.

d=1.20.90.4=0.30.4=0.75d = \frac{1.2-0.9}{0.4} = \frac{0.3}{0.4} = 0.75

The exact same raw 0.3-point gap now registers as a large effect, because the underlying noise is so much smaller. This is the entire point of standardizing: raw gaps are meaningless without knowing the scale of the noise they're competing against, and Cohen's d bakes that comparison in automatically.

d = 0.10 (small) d = 0.75 (large)
Left: two return distributions with d = 0.10 overlap almost entirely — hard to tell apart. Right: two distributions with d = 0.75 are shifted far enough apart to barely overlap — a visually obvious gap.

Effect size measures how big a difference is, in noise-standardized units; a pp-value only measures how confident you are that the difference isn't exactly zero. A tiny effect can be highly statistically significant with enough data, and a huge effect can be statistically insignificant with too little — always report both, never one without the other.

What this means in practice

Reporting only a pp-value from a strategy backtest invites exactly the confusion the two worked examples show: with a long enough history, even a strategy whose true edge is a rounding error can produce a small pp-value, simply because the sample is huge. Reporting Cohen's d alongside it forces the honest question — is this edge actually large relative to the strategy's own noise, or is it statistically detectable but practically irrelevant? This is also the standard input to power calculations: before running a test, researchers use an assumed effect size to work out how much data they will need to reliably detect it at all.

Cohen's small/medium/large guideposts were calibrated for behavioral-science research and are not universal physical constants — a d=0.2d=0.2 "small" effect in a high-frequency trading strategy, applied at enough size and turnover, can be enormously profitable, while a d=0.8d=0.8 "large" effect on an illiquid or costly-to-trade signal may be worthless after transaction costs. Effect size measures statistical magnitude relative to noise; it does not by itself measure economic or practical significance, which always requires converting back into the units that actually matter — dollars, basis points, Sharpe ratio — for your specific application.

Related concepts

Practice in interviews

Further reading

  • Cohen, Statistical Power Analysis for the Behavioral Sciences, ch. 2
  • Ellis, The Essential Guide to Effect Sizes, ch. 1
ShareTwitterLinkedIn