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

Re: st: estimating a probit model on panel data with gllamm


From   [email protected] (Jean Marie Linhart, StataCorp LP)
To   [email protected]
Subject   Re: st: estimating a probit model on panel data with gllamm
Date   Mon, 13 Jun 2005 11:21:46 -0500

<[email protected]> asks:

> I have panel data and have estimated the following model with gllamm:
> 
> gllamm y x1 x2, i(persid) family(binom) link(probit) adapt trace
> 
> The level one units are measurement occasions and the level two
> units are persons, indicated by the variable persid. I have two
> questions concerning this model:
>
> 1. Why don't I get identical results when I estimated the same model
> with xtprobit using xtprobit y x1 x2, i(persid)
>
> Using the example of the logit, the Gllamm manual (page 34) implies
> that these commands are identical. I was able to confirm this with
> the logit, but it doesn't seem to work with the probit.

The models being estimated are identical, although the algorithms
estimating them are not. Results should be similar, though in cases
where there is a high rho, the models are difficult, and results will
vary. 

Colin might try using -quadchk- to validate the quadrature
approximation in his xtprobit model, and he may try increasing the
number of integration points to see if this gets better results.

Colin can also send me his data privately, and I can see if I can
figure out what is going on in this particular case.

Here's an example I ran with simulated panel probit data:

. which xtprobit
/usr/local/stata9/ado/base/x/xtprobit.ado
*! version 2.9.9  01apr2005

. clear

. set mem 5m
(5120k)

. set seed 23451

. set more off

. set obs 30
obs was 0, now 30

. gen i = _n

. gen u = 0.5*invnorm(uniform()) 

. expand 30
(870 observations created)

. sort i

. by i: gen t = _n

. gen x1 = 10*uniform() - 5.0

. gen x2 = 10*uniform() - 5.0

. gen x3 = 10*uniform() - 5.0

. gen unf = uniform()

. gen pb = invnorm(unf)

. gen ystar = x1 + 2*x2 + 3*x3 - 1 + u + pb

. gen y = (ystar>=0)

. 
. xtprobit y x1 x2 x3, i(i)

Fitting comparison model:

Iteration 0:   log likelihood = -623.51242
Iteration 1:   log likelihood = -256.61972
Iteration 2:   log likelihood = -164.24563
Iteration 3:   log likelihood = -116.57674
Iteration 4:   log likelihood = -89.008857
Iteration 5:   log likelihood = -74.160899
Iteration 6:   log likelihood = -68.670775
Iteration 7:   log likelihood = -67.784583
Iteration 8:   log likelihood = -67.756233
Iteration 9:   log likelihood =   -67.7562

Fitting full model:

rho =  0.0     log likelihood =   -67.7562
rho =  0.1     log likelihood = -67.379661
rho =  0.2     log likelihood = -67.654032

Iteration 0:   log likelihood = -67.379662  
Iteration 1:   log likelihood = -67.126396  
Iteration 2:   log likelihood = -67.084053  
Iteration 3:   log likelihood = -67.083862  
Iteration 4:   log likelihood = -67.083862  

Random-effects probit regression                Number of obs      =       900
Group variable (i): i                           Number of groups   =        30

Random effects u_i ~ Gaussian                   Obs per group: min =        30
                                                               avg =      30.0
                                                               max =        30

                                                Wald chi2(3)       =     43.42
Log likelihood  = -67.083862                    Prob > chi2        =    0.0000

------------------------------------------------------------------------------
           y |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
          x1 |    .900011   .1439441     6.25   0.000     .6178857    1.182136
          x2 |   1.869689    .299313     6.25   0.000     1.283046    2.456332
          x3 |   2.767153   .4271289     6.48   0.000     1.929996    3.604311
       _cons |  -.9116815   .2080215    -4.38   0.000    -1.319396   -.5039668
-------------+----------------------------------------------------------------
    /lnsig2u |   -1.40527   1.166452                     -3.691474    .8809328
-------------+----------------------------------------------------------------
     sigma_u |   .4952784   .2888592                      .1579089    1.553432
         rho |   .1969811   .1845088                      .0243286    .7070155
------------------------------------------------------------------------------
Likelihood-ratio test of rho=0: chibar2(01) =     1.34 Prob >= chibar2 = 0.123

. gllamm y x1 x2 x3, i(i) family(binomial) link(probit) adapt

Running adaptive quadrature
Iteration 0:    log likelihood = -67.654023
Iteration 1:    log likelihood = -67.090814
Iteration 2:    log likelihood = -67.083602
Iteration 3:    log likelihood = -67.083599


Adaptive quadrature has converged, running Newton-Raphson
Iteration 0:   log likelihood = -67.083599  
Iteration 1:   log likelihood = -67.083599  
 
number of level 1 units = 900
number of level 2 units = 30
 
Condition Number = 16.283741
 
gllamm model
 
log likelihood = -67.083599
 
------------------------------------------------------------------------------
           y |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
          x1 |   .9004259   .1452136     6.20   0.000     .6158126    1.185039
          x2 |   1.870643   .3026395     6.18   0.000     1.277481    2.463806
          x3 |   2.768537   .4319998     6.41   0.000     1.921833    3.615241
       _cons |   -.912075   .2088829    -4.37   0.000    -1.321478   -.5026721
------------------------------------------------------------------------------
 
 
Variances and covariances of random effects
------------------------------------------------------------------------------

 
***level 2 (i)
 
    var(1): .24634291 (.29280636)
------------------------------------------------------------------------------

You can see there is good agreement between the -xtprobit- results,
the -gllamm- results, and the parameters used to generate the data.

--Jean Marie
[email protected]
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



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