Correlation vs causation

core 11 minexperimentationcausalityconfounding

The idea

Correlation answers "when I see X, do I tend to see Y?" Causation answers "if I make X happen, does Y change?" Analytics queries answer the first question; product and policy decisions need the second. The gap between them has exactly four inhabitants:

  1. Reverse causation — YY drives XX. (Retained users have more sessions in which to adopt features.)
  2. Confounding — some ZZ drives both. User engagement raises both feature adoption and retention, manufacturing a correlation between them with no causal arrow required.
  3. Selection / collider bias — conditioning on a common effect. Analyzing only active users, or only shipped experiments, creates correlations that do not exist in the full population.
  4. Chance — especially after scanning many metric pairs; correlation mining at dashboard scale guarantees spurious hits.

The observational data alone cannot distinguish these from real causation — that is not a sample-size problem, it is an identification problem. More rows sharpen the estimate of the wrong quantity.

Randomization is the clean solution: assigning treatment by coin flip severs every arrow from user attributes (measured or not) into treatment. Whatever differs between arms afterwards is treatment effect plus bounded chance. This is precisely why A/B tests are the currency of product decisions, and why "control for everything" is a weaker claim — regression, matching, and propensity scores can only balance confounders you observed, measured well, and thought to include. The unmeasured ones (taste, motivation, engagement) are usually the strongest.

When you cannot randomize, the quasi-experimental ladder, each rung buying credibility with an assumption:

Worked example

Feature adoption vs 90-day retention, 2,000 users. Within each segment, adopters retain 5 points better:

SegmentAdopters retainedNon-adopters retained
Power users80 / 100 (80%)600 / 800 (75%)
New users180 / 900 (20%)30 / 200 (15%)
Pooled260 / 1,000 (26%)630 / 1,000 (63%)

Pooled, adopters retain 37 points worse — Simpson's paradox. The mechanics: adopters are 90% new users (900 of 1,000), while non-adopters are 80% power users (800 of 1,000). The pooled comparison is dominated by who is in each column (user maturity, the confounder), not by what adoption does. Both directions of headline are available from the same table — "adoption cuts retention by 37 points!" and "adoption lifts retention 5 points in every segment!" — which is exactly why an interviewer loves this question.

Which number is right? For "what does adoption do, holding user type fixed?", the stratified +5. But even that is causal only if segment membership is the only confounder — unmeasured engagement within segments can still fake the +5. A randomized encouragement experiment answers the question without the caveat.

The r=0r = 0 trap, for completeness: correlation only detects linear association. XX symmetric about 0 and Y=X2Y = X^2 gives cov(X,Y)=E[X3]=0\text{cov}(X,Y) = \mathbb{E}[X^3] = 0 — perfectly dependent, zero correlation.

Cheat sheet

Four rivals to "X causes Y": reverse causation · confounding · selection/collider bias · chance (multiplicity).

MethodKey assumptionBreaks when
RCT / A/B testvalid randomization + no interferenceSRM, spillovers between arms
Diff-in-differencesparallel pre-trendsco-interventions, differential shocks
Regression discontinuitycomparability at cutoffmanipulation of the running variable
Instrumental variablesrelevance + independence + exclusion; monotonicity for LATEweak instrument, confounded instrument, direct path to outcome
Propensity/matchingno unmeasured confoundersalways plausibly — pair with sensitivity analysis

Simpson's paradox drill: subgroup direction can reverse in aggregate whenever group composition is unbalanced across a variable linked to the outcome. Decide stratified vs pooled by causal role: confounder → stratify; mediator/consequence of treatment → do not condition on it.

Gotchas: