Proving Nothing Happened: Testing for No Difference

The most expensive sentence in measurement is usually some version of "the difference wasn't significant, so there's no difference." A brand pauses a channel in ten markets for six weeks, the holdout–control gap comes back at p = 0.41, and the deck concludes the channel does nothing. The cheaper creative "performed the same" as the expensive one. The new bidding strategy "didn't hurt" conversion. Every one of these claims asserts an absence, and the test that produced it is structurally incapable of supporting that claim. A significance test can reject "no difference." It can never affirm it, because a large p-value conflates two states the decision desperately needs to distinguish: the difference is genuinely negligible and the data are too noisy to tell. Distinguishing them is a solved problem, twice over. Frequentist statistics flips the hypotheses: pre-specify the largest difference that would still count as "the same," then reject the hypothesis that the difference exceeds it (equivalence testing, TOST). Bayesian statistics puts posterior mass on the claim itself, either the probability that the difference lies inside a region of practical equivalence or a Bayes factor quantifying how much the data favor the null. Both routes share an uncomfortable feature the naive reading hides: proving nothing happened takes more evidence than proving something did.

A Machine That Cannot Say "Same"

The asymmetry is built into the logic of significance testing. Careless users did not put it there. A null-hypothesis test starts by assuming no difference, computes how surprising the observed gap would be under that assumption, and reports the surprise as p. Small p: the data are hard to reconcile with "no difference," reject. Large p: the data are compatible with no difference, along with a continuum of non-zero differences the same data are equally compatible with. Fisher (1935), who built the machine, was explicit about its one-way valve: "the null hypothesis is never proved or established, but is possibly disproved, in the course of experimentation." The test is an alarm. An alarm that stays silent is no certificate that nothing is burning, because the battery may simply be dead.

The battery, here, is power. When a test has an 80% chance of detecting the effect you care about, silence carries some information. When it has a 20% chance, silence is the expected outcome whether or not the effect exists, and reading it as absence is reading tea leaves. Altman and Bland (1995) compressed the point into the most-cited three-word slogan in applied statistics: absence of evidence is not evidence of absence. Greenland and colleagues (2016) rank the inversion ("no significant difference" read as "no difference") among the most common and most damaging p-value misinterpretations, and it survives because the sentence sounds like a finding. It is a description of the test, not the world.

⚠️ One p-value, two worlds

p = 0.41 arises from a difference of 0.1% measured with a standard error of 0.12%, a tight estimate of a genuinely negligible gap. It arises just as readily from a difference of 8% measured with a standard error of 10%, which is total ignorance across a range where fortunes change hands. The p-value cannot tell these apart because it was never designed to. It measures incompatibility with zero, not proximity to it. The confidence interval tells them apart instantly, which is why every route to an honest "no difference" claim, frequentist or Bayesian, runs through the width of the estimate rather than the verdict of the test.

There is also a subtler failure mode on the same road: treating "A was significant, B was not" as if the pair of verdicts established that A and B differ. That is the Gelman–Stern fallacy, covered in a companion post. This post is about the direct version: one comparison, one non-significant result, and the leap from silence to sameness.

What a Null Result Rules Out

The first honest question to ask of any non-significant result is: what could this test have seen? At 80% power the minimum detectable effect (MDE) is roughly \( 2.8 \times \mathrm{SE} \), the sum of the significance threshold (1.96) and the power requirement (0.84), times the standard error. Say a holdout test's standard error on lift is 4 percentage points. The test was built to notice a 11-point swing, so "no significant loss" is compatible with losing 8 points of sales, an outcome that would be catastrophic for the decision the test is supposedly informing. Stating the MDE next to every null result is the cheapest inferential hygiene available, and it is remarkable how many "the test showed no impact" slides cannot survive it.

Advertising is the canonical domain where this bites, because the signal-to-noise ratio of ad effects on sales is brutally low. Lewis and Rao (2015) analyzed twenty-five large digital ad experiments (millions of users each, run at firms with excellent data) and showed that even at that scale, confidence intervals on advertising ROI routinely spanned from strongly negative to wildly positive. Individual-level purchase variance is enormous relative to any plausible per-impression effect, so the experiments that would settle "does this campaign pay back" need sample sizes that most advertisers cannot buy. The corollary for smaller tests is grim. A six-week, ten-market holdout is almost guaranteed to return "no significant difference" for any channel that isn't heroic or terrible, and that silence gets reported as a finding.

The go-dark test, replayed 400 times

A channel is paused and the true cost is a real sales loss (set by the first slider). Each dot is one replication of the same holdout test: the estimated lift difference, colored by what a significance reader would conclude. Most replications, under realistic noise, read "no significant difference." Each becomes a slide claiming the channel does nothing. Tighten the standard error (more markets, longer test) and watch the silence turn into detection.

−3.0
2.0
Reads "no sig. difference"
Detects the loss
MDE at 80% power
Verdict

The defaults set a genuine 3-point loss and a 2-point standard error. Roughly two replications in three come back "no significant difference." The test's MDE is 5.6 points, so it was never built to see a 3-point loss. The silence is a property of the design, manufactured before the first week of data arrived.

One tempting patch does not work: computing "observed power" after the fact, meaning the power the test would have had if the observed estimate were the truth. Hoenig and Heisey (2001) showed that observed power is a deterministic function of the p-value and adds exactly nothing. Every non-significant result has low observed power, by arithmetic, so "the result was null and observed power was low" is one fact stated twice. Power calculations belong to design, run against effect sizes that matter for the decision. After the data arrive, the honest summary of what the study ruled out is the confidence interval, and if that interval contains both zero and differences that would change the decision, the study is inconclusive, full stop.

Flipping the Null: TOST

If "no difference" is the claim you actually want to establish, frequentist logic has a clean fix: make "there is a difference" the null hypothesis, so that the machinery's one-way valve points in the direction you need. The catch is that "no difference exactly" is unprovable. No finite sample can distinguish a true difference of zero from one of 0.0001. So the claim has to be made falsifiable first, by choosing an equivalence margin \( \Delta \): the largest difference that would still count, for this decision, as "the same." Then test two one-sided null hypotheses (Schuirmann, 1987):

$$ H_{01}: \delta \le -\Delta \qquad \text{and} \qquad H_{02}: \delta \ge +\Delta, $$

each at level \( \alpha \). Reject both and you have affirmatively concluded \( -\Delta \lt \delta \lt +\Delta \): the difference, whatever it is, is too small to matter. This is the two one-sided tests procedure, TOST, and it is the standard of evidence behind every generic drug on the market. Bioequivalence approval requires demonstrating that generic and brand pharmacokinetics agree within a pre-registered margin (the FDA's 80–125% window), not that a difference test came back silent. Lakens (2017; Lakens, Scheel, and Isager, 2018) did the field service of translating the machinery into a practical workflow for everyday two-group comparisons.

TOST has a convenient dual form. Rejecting both one-sided hypotheses at \( \alpha = 0.05 \) is exactly the statement that the 90% confidence interval lies entirely inside \( (-\Delta, +\Delta) \). One picture then holds the whole inferential situation: an interval, a zero line, and two margin lines. Out of that picture come four possible verdicts instead of two. A difference can be significant and equivalent, which means a real but trivial gap, precisely measured. Significant and not equivalent is a difference that matters. Non-significant and equivalent is the honest "no difference." And non-significant and not equivalent is the underpowered quadrant, where the only defensible conclusion is that the data don't know. The naive reading collapses the last two quadrants into one, and they could not be more different.

Four verdicts, one picture

The estimated difference between two groups with its 90% interval (thick, the TOST interval) and 95% interval (thin). Shading marks the equivalence region \( (-\Delta, +\Delta) \). Equivalence is declared when the thick interval sits entirely inside that shaded band. A difference is declared when the thin interval excludes zero. Move the estimate, its precision, and the margin, and find all four quadrants, including the two the naive reading can't tell apart.

0.6
0.70
2.0
p, difference test
p, TOST equivalence
90% CI
Verdict

At the defaults the difference test is silent (p ≈ 0.39) and TOST affirms equivalence (p ≈ 0.023): the interval is narrow enough to bound the difference inside ±2. Now triple the standard error. The difference test is still silent (same naive conclusion), but equivalence fails. Same p > 0.05, opposite epistemic states.

Deep diveWhy 90%, not 95%, and where the margin comes from

TOST at \( \alpha = 0.05 \) uses a 90% interval, and this is not a discount. The procedure is an intersection-union test: equivalence is declared only when both one-sided tests reject, and the overall type-I error of an intersection-union test is the maximum of the component errors rather than their sum. The worst case sits at a boundary (\( \delta = \pm\Delta \)) where only one of the two tests is ever close to rejecting. So each side runs at the full \( \alpha \), which packages into the \( 1 - 2\alpha \) interval, and no multiplicity correction is needed. Using a 95% interval would only make the test needlessly conservative (Wellek, 2010, treats the general theory).

The margin is where the statistics stops and the subject matter starts. In pharmacology it comes from clinical judgment about therapeutic windows, and in psychology Lakens and colleagues (2018) recommend the smallest effect size of interest, anchored either to theory or to what the field can measure. Commerce should take it from economics: the point at which the difference would change the decision. A margin chosen after seeing the data is a rationalization, and the same forking-paths logic that invalidates a hunted p-value invalidates a hunted \( \Delta \). Pre-register it, and derive it from the decision rather than from what the test can deliver.

The Price of Proving Nothing

Equivalence has an arithmetic that surprises people who are used to sizing difference tests: it usually costs more. To detect a difference of size \( \Delta \) with 80% power you need \( \Delta / \mathrm{SE} \approx 2.8 \). To declare equivalence within \( \pm\Delta \) when the true difference is exactly zero you need \( \Delta / \mathrm{SE} \approx 2.93 \), because the 90% interval, of half-width \( 1.645\,\mathrm{SE} \), must fit inside the band with room for sampling noise. Similar, so far. But the true difference is rarely exactly zero, and here the cost curve turns vicious: the 90% interval has to fit into the band left over between the truth and the nearer margin, so the required sample grows like the inverse square of that remaining gap. That is roughly three times the detection budget when the truth sits at half the margin, and more than twelve times at three-quarters. Proving that a difference is negligible is cheap only when it is negligible with room to spare.

Detecting a difference vs. certifying its absence

Two power curves against sample size (log scale), for the same margin \( \Delta \). One is the standard difference test's power to detect a true difference of exactly \( \Delta \). The other is TOST's power to declare equivalence when the truth sits at some fraction of the margin, set by the second slider. Slide the truth toward the margin and watch the equivalence curve march right. The certificate of absence gets expensive precisely when absence is least true.

2.0
50%
n for 80%: detect Δ
n for 80%: equivalence
Cost ratio
Verdict

With the truth at half the margin, certifying "no difference that matters" costs about 3× the sample of detecting a full-margin difference. At 75% of the margin, over 12×. TOST also has an honest floor the naive reading lacks: below a minimum n (where 1.645 × SE > Δ), its power is exactly zero. A too-small study cannot conclude equivalence, whereas the naive reading gets more confident of "no difference" the less data it has.

That last property deserves a sentence of appreciation, because it is the whole point. Under the naive reading, shrinking the sample helps the "no difference" conclusion: noise manufactures silence, and silence gets read as sameness. Under TOST, shrinking the sample destroys the conclusion, because with \( 1.645\,\mathrm{SE} \gt \Delta \) the 90% interval cannot fit inside the band no matter where it lands, and the procedure simply refuses to certify. A method for proving absence must get harder to satisfy as the data get worse. That is the test of whether your "no difference" pipeline is real.

ROPE, HDIs, and Bayes Factors

The Bayesian toolkit attacks the same problem from the other side: instead of engineering a rejection machine that points the right way, put a posterior distribution on the difference and interrogate it directly. Two instruments dominate practice, and they answer subtly different questions.

The first is the Bayesian sibling of TOST. Define a region of practical equivalence (ROPE) around zero (the same decision-derived \( \pm\Delta \) as before) and read the posterior against it (Kruschke, 2018). The continuous summary is \( P(|\delta| \lt \Delta \mid \text{data}) \), the posterior probability that the difference is negligible, which is a number a stakeholder can use directly. The discrete decision rule mirrors TOST's geometry: accept practical equivalence when the 95% highest-density interval falls entirely inside the ROPE, reject it when the HDI falls entirely outside, and withhold judgment otherwise. With flat priors the two procedures nearly coincide. That correspondence is reassuring, because it means the real split was never frequentist against Bayesian. It was bounding the difference against reading silence.

The second instrument has no frequentist counterpart at all. The Bayes factor compares how well two models predicted the data: a point null \( \delta = 0 \) against an alternative that spreads \( \delta \) over a prior (Rouder et al., 2009; Jeffreys, 1961). Where a p-value can only fail to reject the null, \( \mathrm{BF}_{01} \) can accumulate evidence for it, because data tightly concentrated near zero are better predicted by the null model than by an alternative that wagered on effects that never materialized. For the normal case the computation collapses to one line via the Savage–Dickey ratio, the posterior density at zero over the prior density at zero (Wagenmakers et al., 2010). Dienes (2014) makes the practical case. A Bayes factor turns a non-significant result from a shrug into a graded statement that separates "the data support no effect" (\( \mathrm{BF}_{01} \gt 3 \)) from "the data are simply insensitive" (\( \mathrm{BF}_{01} \approx 1 \)).

One dataset, three Bayesian readings

The posterior for the difference (solid) under a zero-centered prior (dashed), with the ROPE shaded and the 95% HDI drawn beneath the curve. At zero, two dots mark the Savage–Dickey ratio: posterior density over prior density at \( \delta = 0 \) equals \( \mathrm{BF}_{01} \). Move the data and the prior, and watch the three readouts (ROPE probability, HDI decision, Bayes factor) agree, disagree, and expose their sensitivities. In particular, widen the alternative's prior with the data held fixed and watch \( \mathrm{BF}_{01} \) grow. That is the Jeffreys–Lindley effect. A vague alternative is a bad gambler, and the null wins by forfeit.

0.8
1.00
3.0
2.0
P(|δ| < Δ | data)
95% HDI vs ROPE
BF01 (Savage–Dickey)
Verdict

At the defaults the three readings tell one graded story: 91% of the posterior sits in the ROPE (probably negligible), the HDI still pokes past the boundary (don't certify yet), and BF01 ≈ 2.4 (weak evidence for the null). Now set τ to 15. The data haven't changed, but BF01 climbs past 10, and "strong evidence for the null" has been conjured purely by widening the alternative. A Bayes factor is partly a referendum on the alternative you wrote down. The ROPE probability barely moves, because it is a statement about the posterior rather than a model contest.

Deep diveWhen the Bayes factor and the ROPE disagree

The two instruments formalize different questions, and the figure lets you drive them apart. The Bayes factor is a model comparison: it asks whether the data were better predicted by "exactly zero" or by a specific spread of alternatives, so it rewards the null whenever the alternative wasted prior mass on effects the data ruled out, including when the estimate is small but clearly nonzero. The ROPE probability is an estimation statement: it asks where the difference actually lies, margin in hand, and it does not care whether zero-exactly was a good bet. Kruschke and Liddell (2018) argue the estimation framing serves decisions better. Tendeiro and Kiers (2019) catalogue the ways null-hypothesis Bayes factors get misused in practice: vague default priors that guarantee null-friendly verdicts, and BF thresholds read as posterior probabilities. A useful discipline: if you cannot defend the alternative's prior as a real prediction of effect sizes, you are not entitled to the Bayes factor's verdict for the null. The ROPE's only subjective input is the same decision margin TOST already required, which makes it the sturdier default for applied work. The Bayes factor earns its keep where its question is the real one, namely cumulative evidence for a theory that predicts no effect. There it does something nothing frequentist can: it can be monitored as data accrue and stopped when the evidence is strong, without the error-rate contortions optional stopping inflicts on p-values (Rouder, 2014).

Which Tool for Which Claim

The instruments line up by the claim you need to make, and by what you must specify in advance to be entitled to it.

Definition: four claims of absence, four instruments

"The study couldn't have seen it anyway." Report the MDE and the confidence interval. This is a confession of insensitivity rather than a finding of absence, and it should be stated whenever the interval spans decision-relevant differences. Required in advance: nothing, which is why it is the floor and not the ceiling.

"The difference is bounded inside what matters." TOST, or equivalently the 90% CI inside \( (-\Delta, +\Delta) \). Its one-sided cousin, the non-inferiority test, covers the case where only one direction can hurt you. Required in advance: the margin. This is the regulatory standard for a reason. It is the weakest claim that still asserts something about the world.

"The difference is probably negligible, with probability attached." Posterior \( P(|\delta| \lt \Delta) \) and the HDI-vs-ROPE decision. Same margin as TOST, plus a prior on the difference. In exchange you get the number stakeholders actually want, along with clean sequential monitoring. This is the framework-native reading.

"The data are evidence that the effect is truly absent." The Bayes factor against a defensible alternative. Required in advance: an alternative prior you are willing to own as a scientific prediction. The strongest claim, the most assumptions, the most abusable. It is also the only one that supports "this mechanism does not exist" rather than "this difference is small."

Two disciplines apply across all four. The margin is a decision quantity, fixed before the data are seen. A margin tuned after the fact inherits every pathology of the garden of forking paths. And a null claim earned in one analysis does not survive selection across many: screen twenty channels for "no loss when cut" and the winning null is as cursed as the winning effect.

# illustrative
# WRONG: silence read as sameness
p = ttest(holdout, control).p          # p = 0.41
# "no significant loss: cut the channel"   <- underpowered silence, not absence

# RIGHT, floor: say what the test could see
mde = 2.8 * se                          # the smallest loss this test could detect
ci  = (d - 1.96 * se, d + 1.96 * se)    # spans break-even?  then it's inconclusive

# RIGHT, frequentist: equivalence within a pre-registered margin
p_tost = max(1 - cdf((d + margin) / se),    # H01: loss beyond -margin
             cdf((d - margin) / se))        # H02: gain beyond +margin
equivalent = p_tost < 0.05             # == 90% CI inside (-margin, +margin)

# RIGHT, Bayesian: probability the difference is negligible
p_rope = P(abs(delta) < margin | data)  # posterior mass in the ROPE
bf01   = post_pdf_at_0 / prior_pdf_at_0 # Savage-Dickey: evidence FOR the null

What It Means for Media

Media measurement produces claims of absence at an industrial rate, and almost all of them are the naive kind. "We went dark in Denver and nothing happened." "The cheaper creative performed the same." "Cutting the retargeting budget had no effect on conversions." Each one is a budget decision wearing a p-value, and each one should be re-read with the machinery above, starting with the question the geo test's design already answered: what loss could this test have detected? Six weeks and ten markets typically buys an MDE of several points of sales, so a channel driving a 2–3% lift (a perfectly good channel) will read "no significant difference" most of the time. Lewis and Rao's arithmetic says this is the default condition of ad measurement rather than a fixable sloppiness. The tests that would separate "nothing" from "normal-sized effect" are bigger than the tests people run. Silence is cheap. Bounded silence costs markets and weeks.

The saving grace is that media, unlike psychology, gets its equivalence margin handed to it by accounting. Pausing a channel saves its spend \( S \). The pause is profitable exactly when the forgone contribution margin is smaller than \( S \), so the break-even lift \( \Delta^* = S / m \) (with \( m \) the margin per incremental unit) is the non-inferiority margin. Media reads that number off the ledger the CFO already owns, with no convention borrowed from pharmacology. "Going dark was fine" then becomes a testable, one-sided claim: the lower confidence bound on the loss stays inside break-even, or the posterior probability that the loss exceeds \( \Delta^* \) is small. This framework runs the Bayesian version natively. The experiment feeds the model, and the model's posterior prices the pause against the saved spend, so a holdout can come out net-positive once saved dollars are counted. Before a single market goes dark, the design tools state the assurance of reaching a verdict. An underpowered test gets declined rather than run and misread. And when the posterior can only say "somewhere between fine and painful," the honest output is that interval plus the longer, wider test that would shrink it, because adstock smears a pause's cost past a short window and biases exactly these tests toward comforting silence.

The deepest habit worth breaking is grammatical. "No significant difference" is a sentence about a test. "The difference is between −1.2 and +0.8 points, inside break-even" is a sentence about the world. Decisions deserve the second kind. If the analysis cannot produce one, with no margin, no bound, and no posterior, then it has not found that nothing happened. It has found nothing, which is not the same thing at all.

Takeaways

  • A significance test is a one-way valve: it can reject "no difference" but never affirm it. p > 0.05 conflates "genuinely negligible" with "too noisy to tell," and only the confidence interval distinguishes them.
  • Read every null result against its minimum detectable effect (≈ 2.8 × SE at 80% power). An underpowered test returns "no significant difference" by design, whatever the truth, and Lewis–Rao shows ad experiments live in this regime by default. Post-hoc "observed power" is a function of p and adds nothing.
  • To claim absence, flip the null: pre-register an equivalence margin Δ and run TOST, which declares equivalence when the 90% CI sits inside (−Δ, +Δ). Four verdicts replace two, and "non-significant and not equivalent" is the inconclusive quadrant the naive reading hides.
  • Proving nothing costs more than finding something: equivalence at a truth of half the margin needs ~3× the sample of detecting a full-margin effect, and TOST's power drops to exactly zero when the data are too thin. The naive reading, perversely, only gets more confident.
  • The Bayesian pair: ROPE probability P(|δ| < Δ) with the HDI decision rule (the estimation answer, sturdy and margin-driven), and the Bayes factor BF01. The Bayes factor is the only tool that accrues evidence for the null, and it is also partly a referendum on the alternative's prior, since vague alternatives forfeit to the null via Jeffreys–Lindley.
  • Margins are decision quantities fixed in advance. In media they come from economics: break-even lift Δ* = saved spend / unit margin turns "going dark was fine" into a one-sided non-inferiority claim the CFO can audit.
  • A defensible absence claim states a bound, not a verdict: "the loss is inside break-even with 95% probability," never "the difference wasn't significant."

References