8.7 Does this give us causality?

We have controlled for prior record. Is 0.136 the effect of attending class?

Not necessarily, and the reason is worth setting out precisely rather than as a caution.

Where bias comes from

Suppose the true population model is

\[y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + u\]

but we omit \(x_2\) and estimate

\[y = \alpha_0 + \alpha_1 x_1 + e\]

What does \(\hat{\alpha}_1\) estimate? Write the relationship between the two explanatory variables as a regression of its own,

\[x_2 = \delta_0 + \delta_1 x_1 + \eta\]

and substitute into the true model:

\[ \begin{aligned} y &= \beta_0 + \beta_1 x_1 + \beta_2(\delta_0 + \delta_1 x_1 + \eta) + u \\[4pt] &= (\beta_0 + \beta_2\delta_0) + (\beta_1 + \beta_2\delta_1)x_1 + (\beta_2\eta + u) \end{aligned} \]

Matching this against \(y = \alpha_0 + \alpha_1 x_1 + e\) gives

\[\alpha_1 = \beta_1 + \beta_2\delta_1\]

So the short regression estimates the true coefficient plus a bias term:

\[\text{bias} = \beta_2 \delta_1 = \big(\text{effect of } x_2 \text{ on } y\big) \times \big(\text{relationship between } x_2 \text{ and } x_1\big)\]

This is omitted variable bias, and the formula says something immediately useful. The bias is a product of two things, so it vanishes if either is zero. An omitted variable is harmless unless it both affects \(y\) and moves with \(x_1\).

The sign of the bias is the product of the two signs.

\(\beta_2\) \(\delta_1\) Bias in \(\hat{\alpha}_1\)
\(+\) \(+\) Upward
\(+\) \(-\) Downward
\(-\) \(+\) Downward
\(-\) \(-\) Upward

This can often be signed from knowledge of the subject even when the variable cannot be measured, which makes it possible to say which way an estimate is likely to be wrong.

Checking the arithmetic

The decomposition is exact in a sample, not merely a statement about expectations. We can verify it on the grades data.

long <- coef(unrestricted)

d_cum <- coef(lm(cum_gpa ~ attendance, data = students))[2]
d_adm <- coef(lm(admission_score ~ attendance, data = students))[2]

round(c(short_regression = coef(restricted)["attendance"],
        long_coefficient = long["attendance"],
        bias_via_cum_gpa = long["cum_gpa"] * d_cum,
        bias_via_adm     = long["admission_score"] * d_adm,
        reassembled      = long["attendance"] +
                           long["cum_gpa"] * d_cum +
                           long["admission_score"] * d_adm), 6)
#>  short_regression.attendance  long_coefficient.attendance 
#>                     0.188952                     0.136012 
#>     bias_via_cum_gpa.cum_gpa bias_via_adm.admission_score 
#>                     0.061295                    -0.008356 
#>       reassembled.attendance 
#>                     0.188952

The simple regression coefficient reassembles exactly: 0.136 of attendance, plus 0.062 arriving through prior GPA, less a small amount through admission score. The gap between 0.189 and 0.136 is not a mystery. It is a quantity we can name and compute.

Prior GPA biased the simple regression upward because both signs were positive: better students attend more (\(\delta_1 > 0\)) and better students earn higher grades (\(\beta_2 > 0\)).

Admission score worked the other way. Its coefficient is positive, but in these data students with higher admission scores attend slightly fewer classes, so its contribution is negative and small.

What the controls did and did not do

The controls removed the bias from prior GPA and admission score. They did nothing about anything else.

Motivation is not in the model. Neither is interest in the subject, nor health, nor how far a student lives from campus, nor whether they hold a job.

Every one of these plausibly affects grades, and every one plausibly moves with attendance. Each contributes its own \(\beta_2\delta_1\) to the estimate, and the formula does not care that we cannot measure it.

So 0.136 is a better estimate than 0.189 in a specific and limited sense: two named sources of bias have been removed. It is not the causal effect of attendance, and the regression output cannot tell us how far from it we are.

Multiple regression controls for what is measured. Omitted variable bias is caused by what is not.

Adding controls narrows the gap between the estimate and the causal effect without ever closing it, and nothing in the output reports how much remains.

The other three ways CLRM4 fails

Omission is the most common threat, and it is not the only one. The zero conditional mean assumption also fails when:

  • The functional form is wrong. If earnings rise with experience and then flatten, a model linear in experience is misspecified, and the misspecification lands in \(u\).
  • Variables are measured with error. A variable recorded imperfectly is not the variable the model refers to, and the difference goes into the error term.
  • \(y\) and \(x\) are determined together. Regressing quantity on price estimates neither the demand curve nor the supply curve, since the observed pairs are where the two meet.

Each has its own remedy, and this book returns to them.

It is worth being clear about what has and has not changed since Unit 7.

Multiple regression is a real advance. It is the reason economists can report returns to education that are not simply the fact that educated people differ from uneducated ones in a dozen other ways.

It is also not enough. The comparison it makes is between observations alike in the variables we happened to measure, and the variables we most want to hold fixed — ability, motivation, the quality of a school — are usually the ones no survey records.

Closing that gap requires a different kind of idea, and the second half of this book is about where such ideas come from.