Correlation measures the degree of linear association between two variables, but it does not imply causation. The distinction between correlation and causality is fundamental in empirical research. There are several types of relationships between variables:
The key insight is that observational data can reveal correlations, but establishing causality requires either experimental design or careful econometric identification strategies.
There is a fundamental difference in how economists and data scientists approach modeling. These two paradigms have different goals, assumptions, and evaluation criteria.
The predictive approach explicitly manages the decomposition of expected prediction error:
\[ E[(Y - \hat{f}(X))^2] = \text{Bias}[\hat{f}(X)]^2 + \text{Var}[\hat{f}(X)] + \sigma^2_\varepsilon \]
A causal model prioritizes minimizing bias (unbiasedness of \(\hat{\beta}\)), even at the cost of higher variance. A predictive model accepts some bias if it substantially reduces variance, improving overall prediction accuracy.
In the potential outcomes framework, each unit \(i\) has two potential outcomes: \(Y_{1i}\) (outcome if treated) and \(Y_{0i}\) (outcome if not treated). The individual treatment effect is \(\tau_i = Y_{1i} - Y_{0i}\), which is never fully observable (the fundamental problem of causal inference).
We define three key population-level causal parameters:
The expected causal effect across the entire population:
\[ ATE = E[Y_1 - Y_0 | X] = E[Y_1 | X] - E[Y_0 | X] \]
This answers: "What is the average effect of the treatment if we randomly assigned everyone?"
The expected causal effect among those who actually received treatment:
\[ TTE = E[Y_1 - Y_0 | X, D=1] = E[Y_1 | X, D=1] - E[Y_0 | X, D=1] \]
This answers: "What was the effect of the treatment on those who were treated?" The counterfactual \(E[Y_0 | X, D=1]\) — what would have happened to treated units had they not been treated — is unobservable.
The expected causal effect among those who did not receive treatment:
\[ UTE = E[Y_1 - Y_0 | X, D=0] = E[Y_1 | X, D=0] - E[Y_0 | X, D=0] \]
This answers: "What would the effect have been on those who were not treated, had they been treated?" Relevant for policy questions about expanding a program.
Note that \(ATE = Pr(D=1) \cdot TTE + Pr(D=0) \cdot UTE\). The three parameters coincide only under constant treatment effects or random assignment.
The workhorse of empirical economics is Ordinary Least Squares (OLS) regression. Consider the linear model:
\[ Y_i = \beta_0 + \beta_1 D_i + X_i'\gamma + \varepsilon_i \]
where \(D_i\) is the treatment indicator and \(X_i\) is a vector of controls. OLS estimates \(\hat{\beta}_1\) as the causal effect of treatment. However, the OLS estimate is only valid if \(E[\varepsilon_i | D_i, X_i] = 0\) (exogeneity).
Internal validity means the estimated effect is truly causal within the study's context. OLS can fail due to:
A study can be internally valid but not externally valid (e.g., a perfectly designed RCT in a specific village may not generalize to national policy).
Big Data refers to datasets that are too large, too fast, or too complex to be processed by traditional database management tools. The "V's" of Big Data are: Volume, Velocity, Variety, and Veracity.
Kleinberg et al. (2015) identify a class of problems where prediction (not causal inference) is the binding constraint for policy. Examples: predicting which patients will benefit from surgery, which students will drop out, which loans will default. The policy action is known; the question is who to target.
In high-dimensional settings (\(p \gg n\) or many irrelevant features), OLS overfits. Regularization adds a penalty to the loss function:
\[ \hat{\beta} = \arg\min_\beta \left\{ \sum_{i=1}^n (Y_i - X_i'\beta)^2 + \lambda \cdot R(f) \right\} \]
where \(R(f) = \|\beta\|_\lambda\) is the regularization function:
The general Elastic Net penalty nests both: \(R(f) = \alpha\|\beta\|_1 + (1-\alpha)\|\beta\|_2^2\).
Athey and Imbens (2015) propose using ML methods for causal inference while maintaining valid statistical inference. Key ideas:
The fundamental principle: ML is used as a tool within a causal identification framework, not as a replacement for it.
A practical framework for deploying causal inference in business settings:
The ATE masks important heterogeneity. Treatment effects may vary systematically by subgroup:
\[ \tau(x) = E[Y_1 - Y_0 | X = x] \]
This is the Conditional Average Treatment Effect (CATE). Methods to estimate it include: subgroup analysis, causal forests (Athey & Imbens), Bayesian Additive Regression Trees (BART), and meta-learners (S-learner, T-learner, X-learner).
The Rubin Causal Model (RCM) formalizes causality through counterfactuals. For each unit \(i\):
The fundamental problem of causal inference: we only observe one potential outcome per unit, never both.
What we can observe from the data:
The naive comparison yields:
\[ E[Y_1|D=1] - E[Y_0|D=0] = \underbrace{E[Y_1 - Y_0|D=1]}_{TTE} + \underbrace{E[Y_0|D=1] - E[Y_0|D=0]}_{\text{Selection Bias}} \]
Only if selection bias equals zero (random assignment) does the naive comparison identify the TTE.
If, conditional on observed covariates \(X\), treatment assignment is independent of potential outcomes:
\[ (Y_0, Y_1) \perp D \,|\, X \qquad \text{(Conditional Independence Assumption / Unconfoundedness)} \]
Techniques: OLS with controls, matching, propensity score methods, inverse probability weighting.
If unobserved factors jointly determine treatment and outcome, we need special identification strategies:
DID exploits variation across groups and over time to estimate causal effects. It requires panel data (or repeated cross-sections): observations on treatment and control groups both before and after the intervention.
Let \(t=0\) (pre-treatment) and \(t=1\) (post-treatment). Let \(D=1\) (treatment group) and \(D=0\) (control group). The DID estimator is:
\[ \hat{\beta}_{DID} = \left(\bar{Y}_{1,1} - \bar{Y}_{1,0}\right) - \left(\bar{Y}_{0,1} - \bar{Y}_{0,0}\right) \]
where \(\bar{Y}_{D,t}\) is the mean outcome for group \(D\) at time \(t\). Equivalently, in a regression framework:
\[ Y_{it} = \alpha + \beta_1 D_i + \beta_2 Post_t + \beta_{DID} (D_i \times Post_t) + \varepsilon_{it} \]
The coefficient \(\beta_{DID}\) on the interaction term is the causal effect of interest.
The key identifying assumption is that, in the absence of treatment, the treatment and control groups would have followed parallel trends:
\[ E[Y_0^{t=1} - Y_0^{t=0} | D=1] = E[Y_0^{t=1} - Y_0^{t=0} | D=0] \]
This assumption cannot be tested directly (it involves counterfactuals), but it can be supported by showing parallel pre-trends in periods before treatment. If pre-trends diverge, DID is not credible.
Matching methods construct a counterfactual by pairing each treated unit with one or more "similar" control units based on observed covariates \(X\). The goal is to approximate the conditions of a randomized experiment by comparing units that look alike on observables.
Under the Conditional Independence Assumption \((Y_0, Y_1) \perp D | X\), matching identifies the ATT:
\[ ATT = E\left[Y_1 - Y_0 | D=1\right] = E\left[E[Y|D=1, X] - E[Y|D=0, X] \,|\, D=1\right] \]
For each treated unit \(i\), find the control unit \(j\) with the smallest distance \(\|X_i - X_j\|\) (Euclidean, Mahalanobis, or other metric). The matched estimator is:
\[ \hat{ATT}_{NN} = \frac{1}{N_1} \sum_{i: D_i=1} \left(Y_i - Y_{j(i)}\right) \]
Variants: matching with replacement, k-nearest neighbors, caliper matching (maximum allowed distance).
Divide the propensity score \(p(X) = Pr(D=1|X)\) into strata (e.g., quintiles). Within each stratum, treatment assignment is approximately random. Compute the treatment effect within each stratum and average across strata, weighted by the proportion of treated units:
\[ \hat{ATT}_{strat} = \sum_{s=1}^{S} \frac{N_{1s}}{N_1} \left(\bar{Y}_{1s} - \bar{Y}_{0s}\right) \]
Instead of selecting a single match, kernel matching uses a weighted average of all control units, with weights decreasing in the distance to the treated unit:
\[ \hat{Y}_{0i} = \frac{\sum_{j: D_j=0} K\left(\frac{p_i - p_j}{h}\right) Y_j}{\sum_{j: D_j=0} K\left(\frac{p_i - p_j}{h}\right)} \]
where \(K(\cdot)\) is a kernel function (Gaussian, Epanechnikov) and \(h\) is the bandwidth. This reduces variance compared to nearest-neighbor matching but introduces a bandwidth choice.
RDD exploits situations where treatment assignment is determined by whether a "running variable" \(x\) crosses a known cutoff \(x^*\). Near the cutoff, units just above and just below are nearly identical — creating a local randomized experiment.
The cutoff strongly predicts treatment but does not perfectly determine it. The probability of treatment jumps at \(x^*\) but does not go from 0 to 1:
\[ \lim_{x \downarrow x^*} Pr(D=1|X=x) \neq \lim_{x \uparrow x^*} Pr(D=1|X=x) \]
The Fuzzy RD is estimated via instrumental variables, using the indicator \(\mathbf{1}(x_i \geq x^*)\) as an instrument for \(D_i\):
\[ \tau_{FRD} = \frac{\lim_{x \downarrow x^*} E[Y|X=x] - \lim_{x \uparrow x^*} E[Y|X=x]}{\lim_{x \downarrow x^*} E[D|X=x] - \lim_{x \uparrow x^*} E[D|X=x]} \]
This identifies a Local Average Treatment Effect (LATE) for compliers at the threshold.
When the treatment \(D\) is endogenous (\(Cov(D, \varepsilon) \neq 0\)), we need an instrument \(Z\) that affects \(Y\) only through \(D\).
First stage: regress the endogenous variable on the instrument(s) and controls:
\[ D_i = \pi_0 + \pi_1 Z_i + X_i'\delta + \nu_i \]
Second stage: replace \(D_i\) with its predicted value \(\hat{D}_i\) in the structural equation:
\[ Y_i = \beta_0 + \beta_1 \hat{D}_i + X_i'\gamma + \varepsilon_i \]
The 2SLS estimator with a single instrument and no controls simplifies to the Wald estimator:
\[ \hat{\beta}_{IV} = \frac{Cov(Z, Y)}{Cov(Z, D)} = \frac{\text{Reduced form}}{\text{First stage}} \]
A structural model specifies the data-generating process through a system of causal equations derived from economic theory. Unlike reduced-form approaches, structural models make explicit assumptions about the mechanisms connecting variables.
A structural equation represents a causal mechanism, not merely a statistical association. For example:
\[ Y = f(X_1, X_2, \ldots, X_k, \varepsilon) \]
means that \(Y\) is generated by the variables \(X_1, \ldots, X_k\) and an unobserved shock \(\varepsilon\). This is fundamentally different from a predictive equation where \(Y\) is merely associated with the right-hand-side variables.
Key distinction: in a structural model, intervening on \(X_j\) (setting it to a value) changes \(Y\) according to the equation. In a predictive model, changing \(X_j\) may not change \(Y\) at all (if the correlation is driven by a confounder).
Consider the well-known spurious correlation: regions with more storks tend to have higher birth rates. A predictive model might find:
\[ \widehat{Births} = \alpha + \beta \cdot Storks + \varepsilon, \qquad \hat{\beta} > 0, \; R^2 > 0 \]
This model predicts well (knowing stork population improves prediction of births), but it does not explain anything causally. Culling storks would not reduce births.
The structural (causal) model recognizes that both variables are driven by a confounder — rural area size (or urbanization level):
The correct structural equations are:
\[ Storks = g(Rural, \nu_1) \]
\[ Births = h(Rural, \nu_2) \]
where \(Rural\) is the common cause. Conditioning on (or intervening on) storks has no causal effect on births.
This illustrates the fundamental limitation of prediction: a model that predicts well may be useless (or worse, misleading) for policy. Prediction answers "what will happen?" while explanation answers "what will happen if we do X?" — and these are very different questions.