Announcement

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

  • Stereotype logistic regression vs. Multinomial and Ordinal Logistic Regression

    What are the ways to compare the fit of multinomial, ordinal, and stereotype logistic regression to a given dataset with ordinal response data using Stata?

  • #2
    You can compare the log-likelihood for the ordered logit regression with that of the multinomial logit within which it is nested. A likelihood ratio test will therefore tell you whether simplification from multinomial logit to ordered logit is justified. For example, using the Mroz(1987) data, the test is distributed \(\chi^2(6)\) and yields a tail probability of 0.6%. Therefore, the simplification to an ordered model is rejected.

    Code:
    use https://www3.nd.edu/~rwilliam/statafiles/mroz.dta, clear
    *CATEGORIZE ANNUAL WORKING HOURS (NON-PARTICIPATION, PART-TIME, FULL-TIME)
    gen lfstatus= cond(hours==0, 0, cond(inrange(hours, 1, 1249), 1, 2))
    lab def lfstatus 0 "non-participation" 1 "part-time work" 2 "full-time work"
    lab values lfstatus lfstatus
    mlogit lfstatus kidslt6 kidsge6 age educ exper nwifeinc
    est sto mlogit
    ologit lfstatus kidslt6 kidsge6 age educ exper nwifeinc
    est sto ologit
    lrtest mlogit ologit, force
    Output:

    Code:
    . mlogit lfstatus kidslt6 kidsge6 age educ exper nwifeinc
    
    Iteration 0:   log likelihood = -809.85106  
    Iteration 1:   log likelihood = -682.09452  
    Iteration 2:   log likelihood = -676.45369  
    Iteration 3:   log likelihood = -676.35678  
    Iteration 4:   log likelihood = -676.35676  
    
    Multinomial logistic regression                 Number of obs     =        753
                                                    LR chi2(12)       =     266.99
                                                    Prob > chi2       =     0.0000
    Log likelihood = -676.35676                     Pseudo R2         =     0.1648
    
    -----------------------------------------------------------------------------------
             lfstatus |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
    ------------------+----------------------------------------------------------------
    non_participation |  (base outcome)
    ------------------+----------------------------------------------------------------
    part_time_work    |
              kidslt6 |  -1.029752   .2192135    -4.70   0.000    -1.459402   -.6001012
              kidsge6 |   .1452962   .0810486     1.79   0.073    -.0135561    .3041485
                  age |   -.061935   .0161806    -3.83   0.000    -.0936485   -.0302215
                 educ |   .2352844   .0489108     4.81   0.000      .139421    .3311478
                exper |   .0836159   .0155026     5.39   0.000     .0532314    .1140004
             nwifeinc |  -.0191471   .0093588    -2.05   0.041    -.0374899   -.0008043
                _cons |  -1.051627   .9599877    -1.10   0.273    -2.933168    .8299147
    ------------------+----------------------------------------------------------------
    full_time_work    |
              kidslt6 |   -2.04806   .2883306    -7.10   0.000    -2.613177   -1.482942
              kidsge6 |  -.0562924    .089552    -0.63   0.530    -.2318111    .1192262
                  age |  -.1267562   .0173295    -7.31   0.000    -.1607214   -.0927911
                 educ |   .2225451   .0508362     4.38   0.000     .1229081    .3221822
                exper |   .1554865   .0162169     9.59   0.000      .123702     .187271
             nwifeinc |  -.0218055   .0102905    -2.12   0.034    -.0419746   -.0016364
                _cons |   1.552764   .9850566     1.58   0.115    -.3779109     3.48344
    -----------------------------------------------------------------------------------
    
    . 
    . est sto mlogit
    
    . 
    . ologit lfstatus kidslt6 kidsge6 age educ exper nwifeinc
    
    Iteration 0:   log likelihood = -809.85106  
    Iteration 1:   log likelihood = -686.68524  
    Iteration 2:   log likelihood = -685.50088  
    Iteration 3:   log likelihood = -685.49686  
    Iteration 4:   log likelihood = -685.49686  
    
    Ordered logistic regression                     Number of obs     =        753
                                                    LR chi2(6)        =     248.71
                                                    Prob > chi2       =     0.0000
    Log likelihood = -685.49686                     Pseudo R2         =     0.1536
    
    ------------------------------------------------------------------------------
        lfstatus |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
         kidslt6 |  -1.390614   .1813509    -7.67   0.000    -1.746055   -1.035172
         kidsge6 |  -.0341089   .0623172    -0.55   0.584    -.1562484    .0880307
             age |  -.0916151   .0121459    -7.54   0.000    -.1154207   -.0678096
            educ |    .158401   .0356408     4.44   0.000     .0885464    .2282557
           exper |   .1159833   .0112204    10.34   0.000     .0939917     .137975
        nwifeinc |  -.0153582   .0073408    -2.09   0.036    -.0297459   -.0009705
    -------------+----------------------------------------------------------------
           /cut1 |   -1.75244   .7084357                     -3.140949   -.3639319
           /cut2 |  -.3338748   .7054785                     -1.716587    1.048838
    ------------------------------------------------------------------------------
    
    . 
    . est sto ologit
    
    . 
    . lrtest mlogit ologit, force
    
    Likelihood-ratio test                                 LR chi2(6)  =     18.28
    (Assumption: ologit nested in mlogit)                 Prob > chi2 =    0.0056

    Comment


    • #3
      Thank you, Andrew! Can I also perform goodness of fit test, residual analysis and sensitivity analysis?
      Last edited by Carla Jorge; 11 Feb 2020, 09:35.

      Comment


      • #4
        You should follow what is done in related studies. For goodness of fit, most researchers within economics report the Pseudo R2 (McFadden's definition is what Stata uses). For more fit statistics, install fitstat from SSC which works both after mlogit and ologit.

        Code:
        ssc install fitstat
        Robustness checks require knowledge of the subject matter and availability of data. Then you can ask, for example, what is the effect of adding variable "X" or dropping variable "Y" on some variable "Z", which is the focus of your study. Bottom line is that your analysis must make sense.

        Comment


        • #5
          Do NOT install fitstat from SSC! The version there is almost 20 years old and horribly outdated. Instead, do

          findit spost13_ado

          and install it. That will give you the most current version of fitstat, as well as several other useful programs.

          For more on spost13, see

          https://www.stata.com/bookstore/regr...ent-variables/
          -------------------------------------------
          Richard Williams, Notre Dame Dept of Sociology
          StataNow Version: 19.5 MP (2 processor)

          EMAIL: [email protected]
          WWW: https://www3.nd.edu/~rwilliam

          Comment


          • #6
            Thank you, Andrew and Richard!

            Comment

            Working...
            X