An interactive walk-through — built around your exact setup: a binary outcome, a binary treatment, and dummy controls / fixed effects.
Jump to: Short answer The saturated-model result S-curve vs. line Heteroskedasticity Marginal effects What to actually do
When the outcome and all the regressors are binary, the usual reasons to prefer logit/probit mostly evaporate — and in the special-but-common case of a saturated dummy model, the LPM, logit, and probit return the exact same predicted probabilities. So for your design the choice is driven far more by interpretation and inference than by "which model is correct."
The textbook complaints about the LPM (predictions outside [0,1], wrong functional form, heteroskedasticity) are real in general, but each one is either harmless or easily fixed in a dummies-only setting. The sections below let you see exactly when each issue bites and when it doesn't.
All regressors binary + every interaction included → the model is saturated.
A model is saturated when it has one free parameter for every distinct combination of the regressors (i.e. every "cell"). With binary x₁ and x₂ that's four cells: (0,0), (0,1), (1,0), (1,1), and a saturated model is β₀ + β₁x₁ + β₂x₂ + β₃(x₁·x₂).
Here's the key fact: any model that fits a separate parameter per cell — LPM, logit, or probit — can do nothing but reproduce the observed proportion of 1's in each cell. There is no functional form left to disagree about. So the three models give identical fitted probabilities, all of them inside [0,1] by construction.
Drag the observed share of y=1 in each cell and watch all three models return the same fitted probability:
| Cell (x₁, x₂) | Observed | LPM | Logit | Probit | Agree? |
|---|
Away from the saturated case — e.g. with a continuous regressor, or dummies entered additively — the LPM models the probability as a straight line, while logit/probit push a linear index through a CDF so the fitted probability bends to stay inside [0,1]. The straight line has no such guardrail.
x where the LPM predicts a probability below 0 or above 1 — impossible values. Push the curve toward the extremes and the line increasingly misfires; keep the action in the 10–90% band and the line tracks the S-curve closely.For a binary outcome the variance is mechanically tied to the mean: Var(y | x) = p(x)·(1 − p(x)). Since the LPM lets p change with x, the error variance changes with x too — homoskedasticity is violated by construction. This doesn't bias the coefficients, but it makes the default OLS standard errors wrong.
p = 0.5 (a coin flip is the noisiest) and shrinks to zero as p approaches 0 or 1. Because it isn't flat, you must use heteroskedasticity-robust standard errors with an LPM. That's a one-line fix (vce(robust) / HC1), and it makes large-sample inference valid again.This is the most substantive difference. The LPM forces the effect of a regressor to be the same everywhere (the coefficient). Logit/probit let the marginal effect depend on where you are on the curve: ∂p/∂x = β₁·p(1−p) for logit — biggest near p = 0.5, vanishing near 0 or 1.
It genuinely doesn't matter — all three give the same predicted probabilities. Use the LPM for the clean interpretation (coefficients = differences in probability), and report robust standard errors. This is exactly your described setup, so an LPM is a perfectly defensible default.
The models can diverge. The practical guidance: