Skip to main content

Truncated Regression

Truncated Regression is used when the sample only contains observations satisfying a threshold — units outside the threshold do not appear at all in the data (unlike Tobit, where threshold units are still observed with a piled value).

Truncation biases OLS

Under truncation, the in-sample error distribution no longer has zero mean ⇒ OLS is biased. A truncated (MLE) estimator is required to correct this.


Model specification

For lower truncation at aa, the likelihood is based on the distribution conditional on Y>aY > a:

f(YiYi>a)=ϕ ⁣(YiXiβσ)σΦ ⁣(Xiβaσ)f(Y_i \mid Y_i > a) = \frac{\phi\!\left(\frac{Y_i - X_i\beta}{\sigma}\right)}{\sigma \, \Phi\!\left(\frac{X_i\beta - a}{\sigma}\right)}

Estimated by MLE.


Running in EcoLab

  1. Modeling module → Limited dependent variable family → Truncated.
  2. Select YY, the XX variables; declare the truncation threshold and direction (upper/lower).
  3. Run; read the corrected coefficients; export the replication code.

Replication code

* ===== Truncated Regression =====
* Lower-truncated at 0 (observations with y ≤ 0 are absent)
truncreg y x1 x2, ll(0)

* Upper-truncated at a threshold — if needed
* truncreg y x1 x2, ul(100)

* Marginal effects
margins, dydx(*)

Limitations

  • Requires correct knowledge of the threshold and truncation mechanism.
  • Sensitive to the normality assumption of the error.

Video tutorial

Video Tutorial: Guide to running Truncated Regression in EcoLab

See also