Course
In statistics and machine learning, a pattern is not the same thing as an answer.
You've probably seen the chart linking ice cream sales to drowning rates, or the one connecting Nicolas Cage movies to swimming pool deaths. They grab your attention and are memorable, but they’re clear examples that correlation doesn’t mean causation. Also, they're so overused that they miss why this problem matters in your work.
You can think of spurious correlation as an apparent relationship between two variables that isn't caused by any real connection. It’s connected just by coincidence or a hidden variable you aren’t monitoring. If you treat it as valuable information, you'll waste time chasing patterns that don’t make sense and don’t translate to the real world.
In this article, I'll walk you through why spurious correlations happen, how to spot it, and how to avoid basing decisions on it.
But what is correlation anyway? Read our blog post on Measuring Relationships in Data to learn the different types of correlation coefficients and their applications.
What Is a Spurious Correlation?
A spurious correlation is an apparent statistical relationship between two variables that isn't caused by any real connection between them.
The correlation value itself is real. When you run the analysis, you get a value that looks meaningful and reasonable. Nothing about the calculation part is wrong or made up, and that’s exactly what the problem is.
What's missing is causation.
Nothing about one variable is making the other one happen. They might move together for reasons that have nothing to do with each other, or for no real reason at all. That difference between what the data shows and what's actually going on is what spurious correlation is all about.
Why Spurious Correlations Happen
Spurious correlations can almost always be explained by a couple of mechanisms, and once you know what to look for, you won’t trust correlation blindly.
Confounding variables
A confounder is a hidden variable that influences both things you're measuring.
Take the classic ice cream and drowning example. Ice cream sales don't cause drownings. Hot weather drives both - more people buy ice cream, and more people swim, which means more drownings happen.
Temperature is the confounder here. If your data isn’t monitoring it, it’s easy to miss.
Coincidence
Sometimes two variables move together for no reason at all.
If you run enough comparisons across enough datasets, some of them will line up just by chance. This is exactly how the Nicolas Cage and swimming pool deaths correlation happens - two unrelated time series that happened to trend together over the same years.
With enough variables in play, some amount of random alignment stops is expected.
Common trends
Some variables just move together over time, and that overlap can look like a relationship even when there isn't one.
Think of population, GDP, internet usage, and plastic production. A lot of these have grown for decades. If you compare any two of them, you'll get a strong correlation, simply because they're both trending upward.
But they only share direction and there isn’t any connection between the variables themselves.
Sampling bias
A spurious correlation can also come from the data you collected, not the world it's supposed to represent.
If your sample doesn't reflect the population you're studying, you can end up with a relationship that exists only in your dataset. Survey customers exclusively through an app, for example, and you'll find "app usage" correlates with all sorts of things. It’s not because app usage causes them, but because your sample is biased toward people who use apps.
Examples of Spurious Correlation
Spurious correlation is more common than you think. Here's how to spot it and what to do about it.
Classic statistical examples
The ice cream and drowning correlation is the one everyone knows. Ice cream sales and drowning deaths rise and fall together, but neither one causes the other. Hot weather is the confounder and drives both at the same time.
The Nicolas Cage example is different. His movie output over the years correlates with the number of pool drownings in the same period, and there's no confounder involved at all. It's a coincidence - two unrelated trends that happened to line up.
Both examples prove the point of spurious correlation, but unfortunately, you won’t see it as clearly in real-world cases.
Business and research examples
In business analytics, spurious correlations tend to hide behind numbers that look like they belong together.
Imagine a company tracks weekly marketing spend and weekly revenue over two years. You can use this Python code to follow along:
import numpy as np
import pandas as pd
np.random.seed(42)
weeks = 104
# Seasonal effect
seasonality = 10 * np.sin(np.linspace(0, 8 * np.pi, weeks)) + 20
marketing_spend = seasonality + np.random.normal(0, 2, weeks)
revenue = seasonality * 50 + np.random.normal(0, 30, weeks)
df = pd.DataFrame({
"week": range(1, weeks + 1),
"marketing_spend": marketing_spend,
"revenue": revenue
})
print(df["marketing_spend"].corr(df["revenue"]))
Output: 0.9707905810711147
You'll get a strong positive correlation between marketing_spend and revenue. It's tempting to read that as "marketing spend increases revenue," and maybe it does, but the code above doesn’t prove it. Both variables are being driven by the same seasonal demand cycle. If the company spends more during the same week's demand is naturally high, the correlation shows up whether or not the marketing itself is doing anything.
This is a common mistake in a lot of business analytics.
Things like customer behavior and marketing outcomes move with the seasons, the economy, or a dozen other hidden factors. Two metrics correlating doesn't tell you which one, if either, is responsible.
Machine learning examples
Machine learning models don't know what "cause" means. They just find whatever pattern gets the error metric down, and if a shortcut works on the training data, the model will take it.
For example:
- Background reliance: An image classifier trained to spot cows learns to associate green pastures with "cow," not the animal itself. If you show it a cow on a beach, it fails.
- Demographic and geographic proxies: A model trained on historical data picks up zip code as a proxy for income or race, even when neither variable is in the training set.
- Dataset artifacts: A medical imaging model learns that scans from one hospital's older machine correlate with disease, because that hospital treated more severe cases, not because the machine's output reveals anything about the disease itself.
Here's the same idea, built as a synthetic example you can run yourself. A model predicts loan default risk, and zip_code acts as a proxy for income, which is the variable that actually matters.
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
np.random.seed(42)
n = 1000
# Zip code correlates with income, income drives default risk
zip_code = np.random.choice([1, 2, 3], size=n)
income = 80000 - zip_code * 15000 + np.random.normal(0, 5000, n)
default_risk = (income < 40000).astype(int)
df = pd.DataFrame({"zip_code": zip_code, "income": income, "default": default_risk})
model = LogisticRegression()
model.fit(df[["zip_code"]], df["default"])
print(model.score(df[["zip_code"]], df["default"]))

Machine learning example model score
This model can predict default risk using zip_code alone, without ever seeing income. On this dataset, it works, but if you give it a new city where the zip code and income pattern isn’t true, the model's accuracy will drop.
That's the problem with shortcut learning.
A model built on a spurious correlation can score well on training data and still fail the moment it meets an environment where that correlation doesn't apply.
How to Detect a Spurious Correlation
The bad news is that you can't eliminate spurious correlations, but you can build habits that catch most of it.
Here are a couple of practical tips:
- Investigate confounding variables: Before trusting a correlation, ask what else might be driving both variables. Temperature and seasonality are common suspects.
- Use domain knowledge: If a relationship doesn't make sense given what you know about the subject, don't let the statistic override that instinct.
- Visualize the data: A scatter plot or time series chart often shows a shared trend or an obvious outlier that a correlation coefficient hides.
- Run additional statistical tests: Partial correlation or checking if the relationship holds across different subgroups can confirm or break a correlation.
- Design experiments when possible: Randomized controlled trials remove confounders, since you control which group gets which treatment.
Long story short, a correlation coefficient tells you two things moved together. Whether that means anything is still your call to make.
Spurious Correlation vs Other Statistical Concepts
A couple of terms get used interchangeably with spurious correlation, and it causes a lot of confusion. In this section, I’ll show you what these statistical concepts are and how they differ.
Spurious correlation vs confounding
Confounding is one specific cause of a spurious correlation. It isn't a synonym for it.
Confounding happens when a third variable influences both variables you're measuring, creating a relationship that looks direct but isn't. Temperature can be confounding because it drives both ice cream sales and drownings.
Spurious correlation is the broader category. It covers confounding, but it also covers coincidence, sampling bias, and shared trends over time, none of which involve a hidden third variable. The Nicolas Cage example isn't confounding at all, since there's no variable connecting movie output to pool deaths. It's just a chance. But it's still spurious.
So every confounded relationship is spurious. Not every spurious relationship is confounded.
Spurious correlation vs causation
A spurious correlation and a causal relationship can produce the same scatter plot. The difference is what's happening underneath it, and that difference changes what you can do with the data.
Here’s a table summarizing the differences:
| Spurious correlation | Causation | |
|---|---|---|
| Relationship | No real connection between the variables | One variable directly influences the other |
| Interpretation | Misleading if treated as meaningful | Reflects a real mechanism |
| Predictive usefulness | Unreliable outside the original dataset | Holds up with new data, assuming the mechanism doesn't change |
| Ability to support causal claims | None | Supports causal claims, provided it's established through proper methods |
A spurious correlation never implies causation, no matter how strong the correlation coefficient looks. Proving causation takes controlled experiments or established causal inference methods that go beyond a single statistical test.
How to Reduce the Risk of Spurious Correlations
In itself, being able to detect a spurious correlation after the fact is useful. But it’s much better if you can build a workflow that avoids one in the first place.
Here’s what you should do in this workflow:
- Collect better data: A lot of spurious correlations start with a sample that doesn't represent what you're trying to study. Before you analyze anything, check that your data collection covers the right population with the right conditions.
- Use randomized experiments when possible: Randomization is the best defense against confounding, since it spreads hidden variables evenly across groups. If you can run an A/B test instead of relying on observational data, do it.
- Validate on new datasets: A correlation that only shows up in one dataset is a sign that something is wrong. Test whether the relationship holds on data from a different time period, by a different person, a different population, or a different source before you trust it.
- Perform causal analysis: Techniques like controlling for confounders or causal graphs let you go beyond "these two things move together" and test whether one is actually influencing the other.
- Include domain expertise: Someone who understands the subject matter will often catch a spurious relationship a statistical test won't. If a correlation doesn't hold up against domain knowledge, question it before you build on it.
Truth be told, none of these steps guarantee you'll catch every spurious correlation, but when combined, they reduce the odds of building a conclusion or a model that’s unreliable.
Conclusion
A high correlation coefficient might seem like an answer, but for more experienced data professionals, it's actually a question.
The number tells you two things moved together. It doesn't tell you why, and treating it as proof of causation is how wrong assumptions get made, research gets misread, business decisions go wrong, and models fail the moment they see new data. What’s behind the numbers is more important than the actual numbers.
That's why the strongest conclusions never come from statistics alone, but from a combination of statistics and domain knowledge. When you use both, you'll end up with conclusions that hold up outside the dataset that produced them.
If you find the concept of correlation and spurious correlation confusing, explore our palette of Probability and Statistics courses. We cover everything from introduction to experimental design and hypothesis testing.

I'm a data science editor with contributions to research articles in scientific journals. I'm especially interested in linear algebra, statistics, R, and the like.

