Announcement

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

  • Unable to obtain marginal effects after cmclogit

    Dear all,

    I am trying to run the postestimation command for marginal effects after an alternative specific multinomial logit in Stata 16.1. The model refers to the choice of travel mode for commuting to work with travel time as alternative specific explanatory variable and a series case specific dummy and categorical variables.

    I first tried to run it with asclogit and then use estat mfx for postestimation. I am able to get results in line what I am expecting. However, as some variables are 3-level categorical (ex. 0,1,2), the estat mfx command only shows marginal effects for one alternative (1 or 2) with respect to base (0).

    Code:
    . asclogit choice Ttime, case(ID) alternatives(alternative) casevars(i.m8CLASS i.m9CLASS i.M25Adum i.M25EnvDum i.CITY) basealternative(1) vce(bootstrap, reps(100))
    (running asclogit on estimation sample)
    
    Bootstrap replications (100)
    ----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
    ..................................................    50
    ..................................................   100
    
    Alternative-specific conditional logit         Number of obs      =      5,097
    Case ID variable: ID                           Number of cases    =       1699
    
    Alternatives variable: alternative             Alts per case: min =          3
                                                                  avg =        3.0
                                                                  max =          3
    
                                                      Wald chi2(17)   =     417.74
    Log likelihood = -1394.0571                       Prob > chi2     =     0.0000
    
                                      (Replications based on 1,699 clusters in ID)
    ------------------------------------------------------------------------------
                 |   Observed   Bootstrap                         Normal-based
          choice |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
    alternative  |
           Ttime |  -.0190327   .0012167   -15.64   0.000    -.0214173   -.0166481
    -------------+----------------------------------------------------------------
    1            |  (base alternative)
    -------------+----------------------------------------------------------------
    2            |
         m8CLASS |
              2  |   .3283541   .1595204     2.06   0.040     .0156998    .6410084
              3  |  -.6963945   .2546037    -2.74   0.006    -1.195409   -.1973804
                 |
         m9CLASS |
              2  |  -.4007272   .1504204    -2.66   0.008    -.6955459   -.1059086
              3  |   -.208201   .1552985    -1.34   0.180    -.5125804    .0961784
                 |
       1.M25Adum |   .7260046   .1428897     5.08   0.000     .4459458    1.006063
     1.M25EnvDum |   .2026583   .1262822     1.60   0.109    -.0448503    .4501669
                 |
            CITY |
              2  |   .1318349   .1511332     0.87   0.383    -.1643807    .4280505
              3  |   1.105557   .1405379     7.87   0.000     .8301081    1.381006
                 |
           _cons |  -1.244998    .183238    -6.79   0.000    -1.604137   -.8858578
    -------------+----------------------------------------------------------------
    3            |
         m8CLASS |
              2  |   .2417938   .1807076     1.34   0.181    -.1123866    .5959742
              3  |  -.2168523   .2358429    -0.92   0.358    -.6790959    .2453912
                 |
         m9CLASS |
              2  |  -.3370252   .1867652    -1.80   0.071    -.7030782    .0290278
              3  |   -.056632   .1677786    -0.34   0.736    -.3854721    .2722081
                 |
       1.M25Adum |   .2834844   .1428822     1.98   0.047     .0034404    .5635283
     1.M25EnvDum |   .2357513    .138836     1.70   0.089    -.0363623    .5078649
                 |
            CITY |
              2  |   .0666527   .1753851     0.38   0.704    -.2770959    .4104012
              3  |   .1945577   .1745162     1.11   0.265    -.1474877    .5366031
                 |
           _cons |   .0196005   .2421315     0.08   0.935    -.4549686    .4941696
    ------------------------------------------------------------------------------
    
    . estat mfx
    
    Pr(choice = 1|1 selected) = .86304661
    -------------------------------------------------------------------------------
    variable     |   dp/dx   Std. Err.    z     P>|z|  [    95% C.I.    ]       X
    -------------+-----------------------------------------------------------------
    Ttime        |                                                                 
               1 |  -.00225   .000277   -8.11   0.000  -.002793  -.001706    24.621
               2 |  .001642   .000238    6.90   0.000   .001176   .002108    72.466
               3 |  .000608   .000115    5.28   0.000   .000382   .000833    191.15
    -------------+-----------------------------------------------------------------
    casevars     |                                                                 
       2.m8CLASS | -.040292   .021751   -1.85   0.064  -.082924   .002339         1
       2.m9CLASS |  .039333   .014081    2.79   0.005   .011734   .066932         1
       1.M25Adum | -.091621   .018231   -5.03   0.000  -.127353  -.055889         0
     1.M25EnvDum | -.026997   .015239   -1.77   0.076  -.056864    .00287         0
          2.CITY | -.014123   .016734   -0.84   0.399  -.046922   .018676         1
    -------------------------------------------------------------------------------
    dp/dx for factor levels is the discrete change from the base level
    
    Pr(choice = 2|1 selected) = .09996812
    -------------------------------------------------------------------------------
    variable     |   dp/dx   Std. Err.    z     P>|z|  [    95% C.I.    ]       X
    -------------+-----------------------------------------------------------------
    Ttime        |                                                                 
               1 |  .001642   .000238    6.90   0.000   .001176   .002108    24.621
               2 | -.001712   .000252   -6.80   0.000  -.002206  -.001219    72.466
               3 |   .00007   .000021    3.33   0.001   .000029   .000112    191.15
    -------------+-----------------------------------------------------------------
    casevars     |                                                                 
       2.m8CLASS |  .032375   .017992    1.80   0.072  -.002889   .067638         1
       2.m9CLASS | -.029954   .012048   -2.49   0.013  -.053568  -.006341         1
       1.M25Adum |  .084712    .01736    4.88   0.000   .050687   .118738         0
     1.M25EnvDum |  .018629   .013222    1.41   0.159  -.007286   .044543         0
          2.CITY |  .012221   .014006    0.87   0.383  -.015231   .039673         1
    -------------------------------------------------------------------------------
    dp/dx for factor levels is the discrete change from the base level
    
    Pr(choice = 3|1 selected) = .03698527
    -------------------------------------------------------------------------------
    variable     |   dp/dx   Std. Err.    z     P>|z|  [    95% C.I.    ]       X
    -------------+-----------------------------------------------------------------
    Ttime        |                                                                 
               1 |  .000608   .000115    5.28   0.000   .000382   .000833    24.621
               2 |   .00007   .000021    3.33   0.001   .000029   .000112    72.466
               3 | -.000678   .000133   -5.11   0.000  -.000938  -.000418    191.15
    -------------+-----------------------------------------------------------------
    casevars     |                                                                 
       2.m8CLASS |  .007918   .007287    1.09   0.277  -.006364   .022199         1
       2.m9CLASS | -.009378   .005785   -1.62   0.105  -.020716   .001959         1
       1.M25Adum |  .006909   .005389    1.28   0.200  -.003653    .01747         0
     1.M25EnvDum |  .008368   .005592    1.50   0.135  -.002591   .019328         0
          2.CITY |  .001902   .006178    0.31   0.758  -.010206   .014011         1
    -------------------------------------------------------------------------------
    dp/dx for factor levels is the discrete change from the base level
    
        variable       base
        m8CLASS        1
        m9CLASS        1
        M25Adum        0
        M25EnvDum      0
        CITY           1
    
    .
    end of do-file
    I then tried to run the same model but using the more recent cmclogit and margins command. The model results are the same, however I am not able to get the marginal effects. The following postestimation command gives me the error 2000 no observation.

    Code:
    . cmclogit choice Ttime, casevars(i.m8CLASS i.m9CLASS i.M25Adum i.M25EnvDum ///
    > i.CITY) basealternative(1) vce(bootstrap, reps(100))
    (running cmclogit on estimation sample)
    
    Bootstrap replications (100)
    ----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
    ..................................................    50
    ..................................................   100
    
    Conditional logit choice model                 Number of obs      =      5,097
    Case ID variable: ID                           Number of cases    =       1699
    
    Alternatives variable: alternative             Alts per case: min =          3
                                                                  avg =        3.0
                                                                  max =          3
    
                                                      Wald chi2(17)   =     339.44
    Log likelihood = -1394.0571                       Prob > chi2     =     0.0000
    
                                      (Replications based on 1,699 clusters in ID)
    ------------------------------------------------------------------------------
                 |   Observed   Bootstrap                         Normal-based
          choice |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
    alternative  |
           Ttime |  -.0190327   .0012032   -15.82   0.000     -.021391   -.0166745
    -------------+----------------------------------------------------------------
    1            |  (base alternative)
    -------------+----------------------------------------------------------------
    2            |
         m8CLASS |
              2  |   .3283541   .1457998     2.25   0.024     .0425917    .6141165
              3  |  -.6963945   .2490934    -2.80   0.005    -1.184609   -.2081804
                 |
         m9CLASS |
              2  |  -.4007272   .1549979    -2.59   0.010    -.7045175    -.096937
              3  |   -.208201   .1488804    -1.40   0.162    -.5000012    .0835992
                 |
       1.M25Adum |   .7260046   .1559288     4.66   0.000     .4203898    1.031619
     1.M25EnvDum |   .2026583   .1373049     1.48   0.140    -.0664544     .471771
                 |
            CITY |
              2  |   .1318349   .1689217     0.78   0.435    -.1992455    .4629153
              3  |   1.105557   .1764517     6.27   0.000     .7597184    1.451396
                 |
           _cons |  -1.244998   .2069153    -6.02   0.000    -1.650544    -.839451
    -------------+----------------------------------------------------------------
    3            |
         m8CLASS |
              2  |   .2417938   .1519654     1.59   0.112    -.0560529    .5396405
              3  |  -.2168523   .2704695    -0.80   0.423    -.7469628    .3132581
                 |
         m9CLASS |
              2  |  -.3370252   .2004097    -1.68   0.093    -.7298209    .0557705
              3  |   -.056632   .1869742    -0.30   0.762    -.4230946    .3098306
                 |
       1.M25Adum |   .2834844    .143018     1.98   0.047     .0031742    .5637945
     1.M25EnvDum |   .2357513   .1439977     1.64   0.102    -.0464791    .5179816
                 |
            CITY |
              2  |   .0666527   .1918544     0.35   0.728    -.3093752    .4426805
              3  |   .1945577   .1861181     1.05   0.296    -.1702271    .5593425
                 |
           _cons |   .0196005   .2702661     0.07   0.942    -.5101112    .5493122
    ------------------------------------------------------------------------------
    
    
    . estimates store worktrip
    
    . margins, dydx(*) predict(pr) outcome(1) atmeans post
    no observations
    r(2000);
    
    end of do-file
    If instead of dydx(*), I specify a single variable without computing standard errors (adding nose), I get a different error:

    Code:
    . estimates restore worktrip
    (results worktrip are active now)
    
    . margins, dydx(m8CLASS) predict(pr) outcome(1) atmeans nose post
    casevar not constant within case
        Casevar 2.m8CLASS is not constant within case for 515 cases (3717 obs).
    r(459);
    I can only get a result if I remove atmeans, but the value is 1000 times smaller than what I would expect.

    Code:
    . estimates restore worktrip
    (results worktrip are active now)
    
    . margins, dydx(m8CLASS) predict(pr) outcome(1) nose
    
    Average marginal effects                        Number of obs     =      5,097
    
    Expression   : Pr(alternative|1 selected), predict(pr)
    Outcome      : 1
    dy/dx w.r.t. : 2.m8CLASS 3.m8CLASS
    
    ------------------------------------------------------------------------------
                 |      dy/dx
    -------------+----------------------------------------------------------------
         m8CLASS |
              2  |  -.0000415
              3  |   .0000701
    ------------------------------------------------------------------------------
    Note: dy/dx for factor levels is the discrete change from the base level.
    If then I try to add back standard errors I get again the "no observations" error

    I wonder whether I am doing something wrong with the cmclogit/margins commands or there is a solution to my problem. I already checked my database for possible string stored data but I have none as well as making sure that no case vars differ within the same case.

    I would really appreciate if someone could help me with this issue,
    Best,
    AS

    PS: Sorry for the very long post

  • #2
    I've been trying more to solve this issue but couldn't work it out. Please does anyone know how could I solve my problem?

    Comment

    Working...
    X