I have an instrumental variable (IV) problem where both the endogenous variable $y_2$ and the independent variable $y_1$ are binary. Thus, I need a generalised linear model in both stages. Using the probit link function $Φ^{-1}$, the equations for the first and second stage, respectively, might look as follows:

$$ Φ^{-1}(y_2) = z_1 + z_2 + z_3 $$ $$ Φ^{-1}(y_1) = z_1 + y_2 + z_3 $$

with $z_1$ and $z_3$ being exogenous control variables and $z_2$ a valid instrument for $y_2$.

I cannot do the standard heckit model as not only my first but also my second stage is probit. "Forbidden regression" (i.e. using standard 2SLS) is also not a great way out.

Does anybody know how to fit such a model? If there is a solution, I am particular interested in a step-by-step explanation which can be implemented relatively easy in R (or Stata).


The Adult Wooldridge (Econometric Analysis of Cross Section and Panel Data 2001) describes the precise mathematical solution in section 15.7.3. The required maths to calculate the maximum likelihood estimators is certainly not trivial. The bi-probit implementation in STATA can solve the model. I am not aware of any implementation in R.

If the instrument $z_2$ is discrete, the LATE method described in the book Mostly Harmless Economics (2008) in section 4.4 and 4.5 is an option worth exploring. Basically, LATE assumes that the instrument randomly classifies observations into groups and gives each group a different treatment. Thus, LATE simulates randomised control trials. LATE is particularly easy if the instrument is binary.

Finally, the book Mostly Harmless Economics also suggests in section 4.6.1, that by simply treating the first-stage model as linear rather than probit (i.e. removing $\Phi^{-1}$), the IV estimator for $y_2$ may have a higher standard deviation but remains consistent. In particular given the similarities between a linear and a probit function on large sections of the probit function, this is often a save way to get a reasonable estimator.

| cite | improve this answer | |
  • 1
    $\begingroup$ I found that in R GJRM::gjrm exactly yielded the same results as biprobit. $\endgroup$ – jay.sf Apr 13 '19 at 16:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.