Skip to main content

Tobit — Censored regression

Tobit handles a censored dependent variable — values are observed within a range but pile up (mass point) at a threshold. A classic example: spending on an item, overtime hours, investment — many observations are 0 while the latent variable could be negative.

Censored vs truncated

Censored (Tobit): the unit at the threshold is still observed (value piled at the threshold). Truncated (Truncated Regression): units beyond the threshold do not appear in the sample.


Model specification

Latent variable Yi=Xiβ+εiY_i^{*} = X_i \beta + \varepsilon_i, observed:

Yi={Yiif Yi>00if Yi0Y_i = \begin{cases} Y_i^{*} & \text{if } Y_i^{*} > 0 \\ 0 & \text{if } Y_i^{*} \le 0 \end{cases}

Estimated by MLE. OLS on censored data yields biased coefficients.


Running in EcoLab

  1. Modeling module → Limited dependent variable family → Tobit.
  2. Select YY (with a censoring threshold, e.g. piled at 0) and the XX variables; declare the threshold.
  3. Run; read coefficients + marginal effects (censored/uncensored); export the replication code.

Replication code

* ===== Tobit — Censored regression =====
* Lower-censored at 0
tobit y x1 x2, ll(0)

* Marginal effects on E[Y | Y > 0] (conditional on being uncensored)
margins, dydx(*) predict(e(0, .))

* Marginal effects on E[Y*] (latent variable)
margins, dydx(*)

* Upper-censored (e.g. at 100) — if needed
* tobit y x1 x2, ul(100)

Limitations

  • Sensitive to the normality & homoskedasticity assumptions of the error.
  • If the "participate or not" mechanism differs from the "how much" mechanism, consider Heckman (two-part/selection).

Video tutorial

Video Tutorial: Guide to running Tobit (censored regression) in EcoLab

See also