Field note · November 17, 2024

Pattern: Difference-in-differences

When a change hits one group and not another, compare the change over time rather than the levels. Any time-invariant difference cancels out.

1 min read ·Experimentation ·statistics experiments

The shape: (treated after − treated before) − (control after − control before). — that is Difference-in-differences, and it comes up more than it should.

When a change hits one group and not another, compare the change over time rather than the levels. Any time-invariant difference cancels out.

What makes it a pattern rather than a tip is that the wrong version is the one you write naturally. It reads correctly, it runs, and it returns something. The failure is in the result, not in the execution — which means the only defence is recognising the shape before you are in it.

Two datasets on this site have the shape built in: city-air-quality and world-indicators. Both are small enough to run the broken version, see the number, then run the corrected one and see it change.

It lives under measuring because the arithmetic is fine and the interpretation is not, which is the harder failure to catch — nothing about the output looks wrong.

The long-form treatment is in the course (causal-without-randomisation, correlation-and-confounding); the pattern page is the version to read at 4pm with a query open.

If you have a better formulation of this one, the repository takes issues. Several entries there are sharper than what we started with because someone pushed back.