Skip to content

Spurious Correlation: Why Your Data Found a Pattern That Doesn't Exist

C. Pearson C. Pearson
/ / 5 min read

Nicolas Cage film releases correlate with drowning deaths. Per capita cheese consumption tracks suspiciously well with people dying tangled in their bedsheets. If you've seen Tyler Vigen's famous spurious correlations site, you've laughed at these. Then you've moved on and done the exact same thing in your own analysis without noticing.

A laptop displaying analytics with financial papers on a textured surface, captured in warm lighting. Photo by Tiger Lily on Pexels.

That's the problem. Spurious correlation isn't a punchline. It's a systematic failure mode, and it shows up in serious work every day.

What a Spurious Correlation Actually Is

Two variables can move together for three reasons: one causes the other, a third variable drives both, or pure coincidence. Spurious correlations cover the last two cases, though the word is most often used when coincidence is the culprit.

Given enough variables and enough time, coincidence is nearly guaranteed. If you measure 100 unrelated variables over 30 years, you will find correlations that look meaningful. Probability demands it. The data isn't lying to you exactly; you're just asking it to pattern-match, and it's very good at that job.

The Math Behind the Mirage

Here's a simple way to see the problem. With 100 independent variables and a significance threshold of p < 0.05, you'd expect roughly 5 × 99 / 2 ≈ 247 spurious "significant" pairs from chance alone. That's before you even add a real signal. The multiple comparisons problem makes this worse, but spurious correlation is a different beast: it can nail you even in a single comparison if the variables share a common trend.

Time series data is especially treacherous. Most economic, social, and biological variables trend upward over time: GDP, population, screen time, antibiotic resistance. Any two upward-trending series will correlate. Always. The correlation coefficient doesn't know, and doesn't care, that both variables just like growing.

This is why a strong positive correlation between a country's internet penetration and its obesity rate tells you almost nothing. Both went up. That's the story. The correlation is real in a technical sense and meaningless in every other sense.

A Diagnostic Flow Worth Following

graph TD
    A[Strong correlation found] --> B{Shared time trend?}
    B -- Yes --> C[Detrend or difference the series]
    C --> D{Correlation survives?}
    D -- No --> E[Spurious: trend artifact]
    D -- Yes --> F{Plausible mechanism?}
    B -- No --> F
    F -- No --> G[Likely spurious: coincidence]
    F -- Yes --> H{Confounders ruled out?}
    H -- No --> I[Possibly spurious: confounded]
    H -- Yes --> J[Worth investigating further]

None of the boxes on the right side say "causal." That's intentional.

Three Places This Actually Bites You

Feature selection in machine learning. When you screen hundreds of candidate features for correlation with your target variable, you will pick up noise. The features that survive look like signal. They often aren't. Cross-validation helps, but it doesn't fully protect you when the dataset itself has shared trends or when you've inadvertently leaked information about the test set.

Business dashboards. Someone notices that customer support ticket volume correlates with revenue growth across quarters. A hypothesis forms: better support drives sales. Maybe. Or both metrics track company size, which is tracking the economy, which is tracking year. Strip the common growth factor and the relationship might vanish entirely.

Genomics and neuroscience. With thousands of genes or brain regions, spurious correlations are not a theoretical concern. They are the dominant output of a naive analysis. The field learned this the hard way through a decade of unreplicable candidate gene studies, each one statistically significant and biologically plausible enough to publish.

What Actually Helps

First: detrend time series before correlating them. First-differencing is simple and effective. If the correlation requires the trend to exist, that tells you something.

Second: specify your hypothesis before you look at the data. Correlation hunting across a full dataset without a prior question is how spurious findings accumulate. Exploratory analysis is fine; just label it honestly and treat the findings as hypotheses, not conclusions.

Third: demand a mechanism. "These two things move together" is the start of a question, not the end of one. A plausible causal story doesn't prove causation, but the absence of any plausible story is a loud warning.

Fourth: replicate on held-out data from a genuinely different context. A correlation that only holds in your original dataset is probably a feature of that dataset, not the world.

The Deeper Issue

Statistical software will compute a correlation between any two columns you hand it. No alarm sounds. No warning appears. The number looks exactly as authoritative as a correlation that reflects something real.

Your model optimizes patterns. You are responsible for deciding which patterns deserve to exist. That's not a technical problem with a technical solution; it's an interpretive problem that requires you to know something about the world the data came from.

The variables don't know they're unrelated. Only you can know that, and only if you ask.

Get Mean Methods in your inbox

New posts delivered directly. No spam.

No spam. Unsubscribe anytime.

Related Reading