1
$\begingroup$

I estimat a multinomial logit model in Stata. Is it possible to compute elasticities from the MLogit model? If so, do I need to take the logarithm of the y and x variable, or only the log of x?

I ask because the mlogit model is non-linear, so I don't know what it means to compute d(lny)/d(lnx). (In Stata this would be mfx, eyex after mlogit model).

A similar question was asked in a lengthier form but was never answered: Income and price elasticity for multinomial logit/probit and alternative-specific conditional logit/multinomial probit in Stata?

Thomas

$\endgroup$
  • $\begingroup$ Be aware that asking how to use Stata or for code are off topic here. I think your question about elasticities & the derivative in multinomial LR is a good one, but you may want to edit to emphasize that aspect. $\endgroup$ – gung - Reinstate Monica Jun 15 '16 at 15:42
2
$\begingroup$

Stata has the margins command that makes this as easy as pie to get elasticities for continuous variables (% change in probability of each outcome for a % change in x) and semi-elasticities for dummy variables (% change in probability of each outcome when x goes from 0 to 1). mfx has been superseded by margins.

Having said that, I find these elasticities hard to interpret and prefer to look at the change in probability for a % change in x or unit change in x. I will do that below as well, and try to connect the dots between the two ways of doing this.

Here's example of Stata code with interpretation for what you want:

. webuse sysdsn1
(Health insurance data)

. mlogit insure age i.(male nonwhite site), nolog

Multinomial logistic regression                 Number of obs     =        615
                                                LR chi2(10)       =      42.99
                                                Prob > chi2       =     0.0000
Log likelihood = -534.36165                     Pseudo R2         =     0.0387

------------------------------------------------------------------------------
      insure |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
Indemnity    |  (base outcome)
-------------+----------------------------------------------------------------
Prepaid      |
         age |   -.011745   .0061946    -1.90   0.058    -.0238862    .0003962
      1.male |   .5616934   .2027465     2.77   0.006     .1643175    .9590693
  1.nonwhite |   .9747768   .2363213     4.12   0.000     .5115955    1.437958
             |
        site |
          2  |   .1130359   .2101903     0.54   0.591    -.2989296    .5250013
          3  |  -.5879879   .2279351    -2.58   0.010    -1.034733   -.1412433
             |
       _cons |   .2697127   .3284422     0.82   0.412    -.3740222    .9134476
-------------+----------------------------------------------------------------
Uninsure     |
         age |  -.0077961   .0114418    -0.68   0.496    -.0302217    .0146294
      1.male |   .4518496   .3674867     1.23   0.219     -.268411     1.17211
  1.nonwhite |   .2170589   .4256361     0.51   0.610    -.6171725     1.05129
             |
        site |
          2  |  -1.211563   .4705127    -2.57   0.010    -2.133751   -.2893747
          3  |  -.2078123   .3662926    -0.57   0.570    -.9257327     .510108
             |
       _cons |  -1.286943   .5923219    -2.17   0.030    -2.447872   -.1260134
------------------------------------------------------------------------------

. margins, eyex(age) predict(outcome(1)) 

Average marginal effects                        Number of obs     =        615
Model VCE    : OIM

Expression   : Pr(insure==Indemnity), predict(outcome(1))
ey/ex w.r.t. : age

------------------------------------------------------------------------------
             |            Delta-method
             |      ey/ex   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         age |   .2560951   .1330162     1.93   0.054    -.0046119    .5168021
------------------------------------------------------------------------------

. margins, eyex(age)

Average marginal effects                        Number of obs     =        615
Model VCE    : OIM

ey/ex w.r.t. : age
1._predict   : Pr(insure==Indemnity), predict(pr outcome(1))
2._predict   : Pr(insure==Prepaid), predict(pr outcome(2))
3._predict   : Pr(insure==Uninsure), predict(pr outcome(3))

------------------------------------------------------------------------------
             |            Delta-method
             |      ey/ex   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
age          |
    _predict |
          1  |   .2560951   .1330162     1.93   0.054    -.0046119    .5168021
          2  |  -.2661848    .152332    -1.75   0.081    -.5647501    .0323805
          3  |   -.090586   .4576158    -0.20   0.843    -.9874964    .8063244
------------------------------------------------------------------------------

. margins, eydx(male)

Average marginal effects                        Number of obs     =        615
Model VCE    : OIM

ey/dx w.r.t. : 1.male
1._predict   : Pr(insure==Indemnity), predict(pr outcome(1))
2._predict   : Pr(insure==Prepaid), predict(pr outcome(2))
3._predict   : Pr(insure==Uninsure), predict(pr outcome(3))

------------------------------------------------------------------------------
             |            Delta-method
             |      ey/dx   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.male       |
    _predict |
          1  |  -.3040742    .115607    -2.63   0.009    -.5306598   -.0774886
          2  |   .2576192   .0958708     2.69   0.007     .0697159    .4455226
          3  |   .1477754   .3243217     0.46   0.649    -.4878834    .7834342
------------------------------------------------------------------------------
Note: ey/dx for factor levels is the discrete change from the base level.

For interpretation, a 1% increase in age gives you .25% increase in the probability of choosing indemnity insurance (inelastic). Being male lowers the that probability by almost a third.

Personally, I find this much easier to interpret:

. margins, dyex(age) predict(outcome(1)) 

Average marginal effects                        Number of obs     =        615
Model VCE    : OIM

Expression   : Pr(insure==Indemnity), predict(outcome(1))
dy/ex w.r.t. : age

------------------------------------------------------------------------------
             |            Delta-method
             |      dy/ex   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         age |    .118398   .0622018     1.90   0.057    -.0035153    .2403113
------------------------------------------------------------------------------

. margins, dydx(age) predict(outcome(1)) 

Average marginal effects                        Number of obs     =        615
Model VCE    : OIM

Expression   : Pr(insure==Indemnity), predict(outcome(1))
dy/dx w.r.t. : age

------------------------------------------------------------------------------
             |            Delta-method
             |      dy/dx   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         age |   .0026655    .001399     1.91   0.057    -.0000765    .0054074
------------------------------------------------------------------------------

This says that 1% increase in age boost the probability of indemnity insurance by 11.8 percentage points and being a year older would give you a 2/10 of percentage point boost.

Let make sure the former agrees with what we did before. The baseline for indemnity is:

. margins, predict(outcome(1)) 

Predictive margins                              Number of obs     =        615
Model VCE    : OIM

Expression   : Pr(insure==Indemnity), predict(outcome(1))

------------------------------------------------------------------------------
             |            Delta-method
             |     Margin   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       _cons |   .4764228   .0197054    24.18   0.000      .437801    .5150446
------------------------------------------------------------------------------

An 11.8 percentage point increase expressed as percentage change over the baseline is .118/.476=.24789916, which is pretty close to 0.25.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.