Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • multivariate probit model mvprobit: predict, xb vs predict, p

    Hello Statalist,

    I am using a mvprobit model and would like to obtain predicted probabilities post-estimation (I would use predict, p after probit). However, that option is unavailable after mvprobit. Only predict, xb is available. How would I obtain the predicted probabilities by hand? Thanks!

    I illustrate below with some sample code:

    Code:
    use http://www.stata-press.com/data/r7/school.dta, clear
    
    mvprobit (private = years logptax loginc) (vote = years logptax loginc)
    
    mvppred ,xb
    I am using Stata SE x64 ver 13.1 with Win 7 x64 and with 8 GB of ram.

  • #2
    mvprobit is a user added package (ado) - you shold mention it in the post.
    also, from what I see was last updated in 2006... in your example, I see that the offical biprobit produces very similar, yet different results...

    Code:
    . mvprobit (private = years logptax loginc) (vote = years logptax loginc)
    
    Iteration 0:   log likelihood = -89.946246  
    Iteration 1:   log likelihood = -89.568527  
    Iteration 2:   log likelihood = -89.567809  
    Iteration 3:   log likelihood = -89.567809  
    
    Multivariate probit (SML, # draws = 5)            Number of obs   =         95
                                                      Wald chi2(6)    =       9.01
    Log likelihood = -89.567809                       Prob > chi2     =     0.1731
    
    ------------------------------------------------------------------------------
                 |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
    private      |
           years |  -.0089447   .0241705    -0.37   0.711     -.056318    .0384285
         logptax |  -.1018381    .667898    -0.15   0.879    -1.410894    1.207218
          loginc |   .3787381   .5363334     0.71   0.480    -.6724561    1.429932
           _cons |  -4.267809   4.852966    -0.88   0.379    -13.77945    5.243828
    -------------+----------------------------------------------------------------
    vote         |
           years |  -.0160871   .0146924    -1.09   0.274    -.0448837    .0127095
         logptax |  -1.260877   .5696835    -2.21   0.027    -2.377437   -.1443183
          loginc |   .9744685   .4343956     2.24   0.025     .1230688    1.825868
           _cons |  -.4944369   4.053135    -0.12   0.903    -8.438436    7.449562
    -------------+----------------------------------------------------------------
        /atrho21 |  -.1729528   .2009747    -0.86   0.389     -.566856    .2209503
    -------------+----------------------------------------------------------------
           rho21 |  -.1712487   .1950809    -0.88   0.380    -.5130465    .2174236
    ------------------------------------------------------------------------------
    Likelihood ratio test of  rho21 = 0:  
                 chi2(1) =  .756875   Prob > chi2 = 0.3843
    
    . biprobit private vote years logptax loginc
    
    Fitting comparison equation 1:
    
    Iteration 0:   log likelihood = -31.967097  
    Iteration 1:   log likelihood = -31.452424  
    Iteration 2:   log likelihood = -31.448958  
    Iteration 3:   log likelihood = -31.448958  
    
    Fitting comparison equation 2:
    
    Iteration 0:   log likelihood = -63.036914  
    Iteration 1:   log likelihood = -58.534843  
    Iteration 2:   log likelihood = -58.497292  
    Iteration 3:   log likelihood = -58.497288  
    
    Comparison:    log likelihood = -89.946246
    
    Fitting full model:
    
    Iteration 0:   log likelihood = -89.946246  
    Iteration 1:   log likelihood = -89.258897  
    Iteration 2:   log likelihood = -89.254028  
    Iteration 3:   log likelihood = -89.254028  
    
    Bivariate probit regression                     Number of obs     =         95
                                                    Wald chi2(6)      =       9.59
    Log likelihood = -89.254028                     Prob > chi2       =     0.1431
    
    ------------------------------------------------------------------------------
                 |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
    private      |
           years |  -.0118884   .0256778    -0.46   0.643    -.0622159    .0384391
         logptax |  -.1066962   .6669782    -0.16   0.873    -1.413949    1.200557
          loginc |   .3762037   .5306484     0.71   0.478     -.663848    1.416255
           _cons |  -4.184694   4.837817    -0.86   0.387    -13.66664    5.297253
    -------------+----------------------------------------------------------------
    vote         |
           years |  -.0168561   .0147834    -1.14   0.254    -.0458309    .0121188
         logptax |  -1.288707   .5752266    -2.24   0.025    -2.416131   -.1612839
          loginc |    .998286   .4403565     2.27   0.023     .1352031    1.861369
           _cons |  -.5360573   4.068509    -0.13   0.895    -8.510188    7.438073
    -------------+----------------------------------------------------------------
         /athrho |  -.2764525   .2412099    -1.15   0.252    -.7492153    .1963102
    -------------+----------------------------------------------------------------
             rho |  -.2696186   .2236753                     -.6346806    .1938267
    ------------------------------------------------------------------------------
    LR test of rho=0: chi2(1) = 1.38444                       Prob > chi2 = 0.2393

    Comment


    • #3
      Thanks for the points Ariel, I think the results may be different since mvprobit uses maximum simulated likelihood while biprobit uses simulated likelihood. Regardless, how might I use the post-estimation
      mvppred ,xb to calculate the predicted probability of success for each regression?
      I am using Stata SE x64 ver 13.1 with Win 7 x64 and with 8 GB of ram.

      Comment


      • #4
        The results differ for Ariel mostly because he used only 5 draws (a deliberately low default for code checking). Predictions can be derived using -mvppred-, as described in the help file and SJ article.

        Comment


        • #5
          Thanks Stephen, for the clarification. But apologies, I did read the help file and article. I only saw the -mvppred-, options of xb stdp pmarg pall; not -mvppred-, p. As you allude, is there a way to derive the predicted probability of success for each regression?
          I am using Stata SE x64 ver 13.1 with Win 7 x64 and with 8 GB of ram.

          Comment


          • #6
            There is confusion on my side or yours about what you really want.

            You refer to "the predicted probability of success for each regression". The "pmarg" and "pall" options produce predicted marginal and joint probabilities, respectively. As described in the help file, the joint probabilities refer to the probability that each binary outcome = 1, or that each binary outcome = 0. If you want different predicted joint probabilies (not all ones, or all zeros), then you'll need to adapt the code in the SJ 2006, 6(2), article.

            Comment


            • #7
              Originally posted by Stephen Jenkins View Post
              The results differ for Ariel mostly because he used only 5 draws (a deliberately low default for code checking). Predictions can be derived using -mvppred-, as described in the help file and SJ article.
              How can I control the number of draws?

              Comment


              • #8
                The help file for mvprobit refers to the draws() option. Note also the aa option for antithetic acceleration. (Read about what this is in the associated literature.) Compare the following with your biprobit specification:

                Code:
                . mvprobit (private = years logptax loginc) (vote = years logptax loginc), draws(250) aa
                
                Iteration 0:   log likelihood = -89.946246 
                Iteration 1:   log likelihood = -89.250827 
                Iteration 2:   log likelihood = -89.246771 
                Iteration 3:   log likelihood = -89.246771 
                
                Multivariate probit (MSL, # draws = 500)          Number of obs   =         95
                                                                  Wald chi2(6)    =       9.60
                Log likelihood = -89.246771                       Prob > chi2     =     0.1426
                
                ------------------------------------------------------------------------------
                             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
                -------------+----------------------------------------------------------------
                private      |
                       years |  -.0118361   .0256661    -0.46   0.645    -.0621407    .0384685
                     logptax |  -.1074413   .6668905    -0.16   0.872    -1.414523     1.19964
                      loginc |   .3751873   .5305772     0.71   0.479    -.6647249    1.415099
                       _cons |  -4.169592   4.838483    -0.86   0.389    -13.65284     5.31366
                -------------+----------------------------------------------------------------
                vote         |
                       years |   -.016935   .0148044    -1.14   0.253     -.045951    .0120809
                     logptax |  -1.289671   .5756035    -2.24   0.025    -2.417833   -.1615089
                      loginc |   1.000896   .4408392     2.27   0.023      .136867    1.864925
                       _cons |  -.5549375   4.069844    -0.14   0.892    -8.531686    7.421811
                -------------+----------------------------------------------------------------
                    /atrho21 |  -.2779082   .2412053    -1.15   0.249    -.7506618    .1948454
                -------------+----------------------------------------------------------------
                       rho21 |   -.270968   .2234951    -1.21   0.225    -.6355436    .1924165
                ------------------------------------------------------------------------------
                Likelihood ratio test of  rho21 = 0: 
                             chi2(1) =  1.39895   Prob > chi2 = 0.2369

                Comment


                • #9
                  I thought the draws option was for biprobit, that's why I didn't find it. I didn't know about mvprobit until this thread

                  Comment


                  • #10
                    biprobit is a built-in command, and allows for 2 binary outcomes. Estimation uses the bivariate normal distribution for which there is a formula that Stata uses. mvprobit allows for more than 2 binary outcomes, but to do this m-variate normal distributions are evaluated by simulation methods. This, and relevant references, are in the help files and the 2 SJ articles by Cappellari-Jenkins 2003, and 2006 (both freely downloadable).

                    Comment


                    • #11
                      I want to run an mvprobit model but the mvtest normality results reject the null hypothesis. Can i continue irregardless of non normality of the dependent variables

                      Comment

                      Working...
                      X