Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: Clarification on biprobit

From   "Alfredo Paloyo" <>
To   <>
Subject   st: Clarification on biprobit
Date   Fri, 25 Feb 2005 10:58:01 +0800

Dear all,

First, a public thanks to Gustavo Sanchez and Jonathan Beck (who replied
in private) for answering my initial question.  I hope you have some
time to answer more questions regarding the biprobit model I am working
on.  I would be very grateful.

I have the following model:

p = a1X + b1s + c1Z
s = a2X + b2p.

The variables p and s are binary.  The first thing I did is to run a
biprobit model (all runs are with pweight) like this:

p = a1X
s = a2X,

which I implemented in Stata as

[1] . biprobit p s X


[2] . biprobit (p = X s) (s = X p),

with the second one constained with [p]s = 0 and [s]p = 0.

1.  They produce the same result in terms of the coefficients and
everything else on that table.  However, they differ in computing the
(log-)likelihood functions.  The first one produces a "Comparison:  log
pseudolikelihood" of -1576 while the second reports -1528.  Why is this
different and which one is the correct specification?  Does it make a
difference at all, considering that the coefficients are the same,

2.  -mfx- is able to compute the marginal effects of the first
specification (with standard errors, too).  However, when I try it on
the constrained -biprobit-, it responds with "warning:  derivative
missing; try rescaling variable p".  How could this happen?

Next, I ran

[3] . biprobit (p = X s) (s = X p),

with the constraint that [athrho]_cons = 0.

3.  Would this be equivalent to running a two separate probits?  I ran
". probit p X s" and did not get the same results.

4.  -mfx- is able to compute the marginal effects but fails for the
standard error, returning "warning:  predict() expression unsuitable for
standard error calculation".  Can I still be confident in interpreting
the marginal effects in this case?

Since rho is effectively a test for exogeneity [Fabbri et al., 2004;
also discussed in Statalist previously], what I want to do is to test
whether p and s are exogenous.  So, I run

[4] . biprobit (p = X s Z) (s = X p)

to test whether s is exogenous to the first equation, with the
constraint that [s]p = 0.  I include Z for identification purposes
(should I have done this for [2], too?).  If the output of [2] says that
rho is significantly different from zero and the output of [4] says that
it is not, then I can conclude that s is exogenous.  Similarly, to
examine whether p is exogenous, I must run

[5] . biprobit (p = X s Z) (s = X p)

with the constraint [p]s = 0.  I get the essentially same result (the
rho has become zero) so I can conclude that p is exogenous to the second

5.  Is this how the test for exogeneity should be implemented?

6.  s is significant in [4] and p is significant in [5].  This means
that the the reason why rho is significant in [2] is that p and s are
the omitted variables that make the error terms correlated.  Thus, I can

[6] . probit p = X s Z

[7] . probit s = X p.

7.  The thing is, s is a significant regressor and p is also a
significant regressor.  Does this not, in fact, tell us to estimate the
two equations jointly?  I am unsure of what to do next.

Please let me know (kindly?) where I have committed the disastrous
blunder.  :)


*   For searches and help try:

© Copyright 1996–2021 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index