Contents/ Part XIV · Correlation & Association/ Chapter 94

Correlation vs. Causation

A strong correlation feels like proof, and that feeling has launched countless bad decisions. A correlation has four main explanations, and only one of them is "x causes y." This chapter separates confounding, reverse causation, and coincidence, and uses partial correlation to expose a lurking variable.

⏱️ ~16 min read
🐍 Notebook included
📊 Chapter 94

Ice-cream sales and drownings rise together. Countries that eat more chocolate win more Nobel prizes. Neither is cause and effect. Learning to resist the pull of a tempting correlation is the difference between analysis and superstition.

≠
A correlation between x and y has four main explanations: x causes y, y causes x (reverse), a third variable causes both (confounding), or coincidence. The correlation number is identical in all four, so the data alone cannot establish causation.
⚠️
The chapter in one line

Correlation is evidence of association, never proof of cause. Only a randomized experiment, or careful causal reasoning, can establish that one variable drives another.

1

Four Reasons Two Things Correlate

When you see x and y move together, pause and run through the four explanations before reaching for "x causes y." The data look the same under all of them; choosing between them takes design or domain knowledge, not a bigger correlation.

The same correlation, four very different stories 1 · x causes y x y x really drives y 2 · y causes x x y reverse causation 3 · z causes both z x y confounding 4 · coincidence x y spurious / by luck

This single idea has saved more analyses than any formula. A high r tells you two variables are associated; it is silent on why. The job now is to tell the stories apart.

2

Confounding & Partial Correlation

The most common trap is a confounder: a lurking variable z that drives both x and y, so they correlate although neither causes the other. The cure is the partial correlation from the Correlation Coefficients chapter: hold z constant (by correlating the residuals after regressing it out) and watch the link collapse.

Control for the confounder, and the spurious link disappears z the common cause x y x and y correlate, but only through z raw corr 0.88 hold z constant partial corr ≈ 0

In the notebook, x and y both built from a hidden z correlate at 0.88, but the partial correlation controlling for z is about −0.02: there was never a direct link. Coloring the scatterplot by z makes the illusion visible, and a partial correlation near zero says z accounts for the link. Whether z is a confounder or a mediator depends on the order of events. A confounder comes before x and drives it, while a mediator is driven by x, and controlling for a mediator hides a real effect. This is also why randomized experiments (see Study Design & Data Quality) are the gold standard, randomization balances every confounder at once.

3

Reverse Causation & Spurious Correlations

Two more ways a correlation deceives. Reverse causation: the arrow points the other way. Spurious by chance: test enough unrelated pairs and some will correlate strongly by pure luck, the multiple-comparisons trap from the Significance, p-values & Errors chapter.

PitfallExampleThe tell
Reverse causation"More police, more crime", or does crime bring police?ask which direction is plausible in time
Confoundingice cream & drownings (driven by heat)
chocolate & Nobel prizes by country (national wealth)
partial correlation collapses
Spurious by chancetwo unrelated series found by searching thousands until a pair lines upno mechanism, and it vanishes on new data
Selection (collider) biastwo diseases linked only among hospitalized patients, because either one gets you admittedask how cases got into the data, and never condition on a common effect
Simpson's paradoxa trend reverses within every subgroupstratify on variables that come before the cause, never on mediators or colliders

In the notebook, 1,000 pairs of pure noise produce a luckiest correlation around 0.6, from nothing at all. The defenses are timeless: ask which direction is plausible?, demand a mechanism, check whether it replicates, and reserve causal claims for randomized experiments or careful causal inference.

4

Real-World Example: Ice Cream, Drownings & Temperature

The textbook case, in realistic daily data written for the book. Ice-cream sales and drownings rise together. Should we ban ice cream at the beach? We measure the raw correlation, then control for temperature, the lurking common cause.

📂 Dataset · correlation-vs-causation--confounding.xlsx

One row per day with temperature_f, ice_cream_sales, beach_visitors, and drownings.

CorrelationValueReading
ice cream & drownings (raw)0.58alarming, if taken at face value
temperature & ice cream0.87heat drives ice cream
temperature & drownings0.68heat goes with drownings
ice cream & drownings | temperature−0.03no direct link

The raw correlation is a real 0.58, but coloring the scatter by temperature gives it away: hot days cluster top-right, cold days bottom-left. Heat drives both, with hot days bringing more ice cream and more drownings. Control for temperature and the partial correlation collapses to −0.03: ice cream and drownings have no direct relationship. Banning ice cream would not save a single swimmer; the cause is the heat. That is confounding caught red-handed.

5

Causation in Machine Learning & AI

The correlation-causation gap is one of the deepest issues in applied machine learning.

Idea (this chapter)In ML / AI it becomesExample
Prediction vs intervention"Will it happen?" vs "What if we act?"a model predicts churn but can't say what fixes it
ConfoundingSpurious features / shortcut learninga model keys on a background artifact, not the object
Controlling for variablesCausal inference & DAGsdo-calculus, propensity scores, instruments
RandomizationA/B tests as causal gold standardthe only clean way to measure a feature's effect
🤖
Why this matters for AI research

A predictive model learns correlations, which is enough to forecast but not to tell you what will happen if you intervene. A model can predict that customers who contact support churn more, without support causing churn. Acting on correlations alone is how teams ship features that move a metric the wrong way. The remedies are this chapter at scale: randomized experiments (A/B tests) to measure true effects, and the field of causal inference (DAGs, do-calculus, propensity scores) to reason about cause when experiments are impossible. Confounding also explains shortcut learning, when a model latches onto a spurious cue that happens to correlate with the label in training but fails in the wild.

🐍

Expose a confounder in Python

The companion notebook lists the four explanations, manufactures a confounded correlation and dissolves it with a partial correlation, shows how noise breeds spurious correlations, and loads correlation-vs-causation--confounding.xlsx to debunk the ice-cream-and-drownings link by controlling for temperature.

📓 View Notebook (code & outputs) ▶ Open in Colab ⬇ View / Download on GitHub

View opens the rendered notebook instantly (no setup). Open in Colab runs & edits it live in your browser. To run locally, install numpy, pandas, scipy, matplotlib, seaborn, statsmodels, and openpyxl and launch jupyter notebook.

🎓 Key Takeaways

  • ✓Correlation has four main explanations: x→y, y→x, a confounder z→both, or coincidence, and only the first means x causes y.
  • ✓Confounding is caught with a partial correlation: control for z and a spurious link collapses.
  • ✓Watch for reverse causation (which way does the arrow point?) and spurious-by-chance (many comparisons, no mechanism).
  • ✓Worked example: ice cream & drownings correlate 0.58, but the partial correlation given temperature is −0.03, the heat causes both.
  • ✓In ML/AI: models learn correlations (prediction), not interventions; use A/B tests and causal inference for cause.
6

Practice Challenges

Five short challenges, beginner to intermediate. Try them with SciPy and statsmodels before checking the solutions.

1

Manufacture a confounded correlation

Make z drive both x and y; show x and y correlate although neither causes the other.

Hint: x = 2z + noise, y = 1.5z + noise.
2

Control for the confounder

Compute the partial correlation of x and y given z and show it collapses toward 0.

Hint: correlate the residuals after regressing each on z.
3

Spurious by chance

Across 1,000 unrelated 30-point pairs, find the largest |r| that appears by luck.

Hint: pure noise still produces sizeable correlations sometimes.
4

Partial-correlation formula

Verify the residual method matches rxy.z = (rxy − rxzryz) / √((1−rxz²)(1−ryz²)).

Hint: compute the three pairwise r's and plug in.
5

Debunk the ice-cream link

Load correlation-vs-causation--confounding.xlsx; show the raw correlation and the partial correlation controlling for temperature.

Hint: regress ice cream and drownings on temperature, correlate residuals.
✅
Check your work

A fully-worked solutions notebook walks through all five challenges, each verified in code. Try them yourself first, then compare.

📓 View Solutions ▶ Open Solutions in Colab ⬇ View / Download on GitHub
7

Quiz: Test Yourself

Eight quick questions on correlation vs. causation. Answer them, hit Check Answers, and keep refining until you score 100%. Your progress is saved, so you can hop back to the chapter and return anytime.

🏁
That completes Correlation & Association

You can now measure a relationship (covariance, correlation) and resist over-claiming cause. Regression Analysis turns these relationships into a model that predicts, starting with Simple Linear Regression.