Announcement

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

  • Interpret semi-elasticity with eydx option, Stata

    Sorry for posting this again. I have initially posted it in the wrong forum. Below is my request.
    After a probit regression, I estimated semi-elasticities using eydx option with margins. I get a value of -0.03. My outcome variable (Y) is dummy (0, 1) and the independent variable (X) is log-transformed. How can I interpret the semi-elasticity?


    Is it correct if I say a 1 % increase in X leads to a 3% decrease in Y, giving that exp(0.03)=1,030?
    Or should I say a 1% increase in X leads to 0.03 % decrease in Y?

  • #2
    The definition of an eydx semielasticity S is that a 100*S % change in the outcome is associated with a one-unit increase in the independent variable.

    This means the interpretation here is

    -0.03*100 = -3% decrease in Pr(y=1) for a 1 unit change in LOG X, which is an e = 2.7182818 factor increase in X.

    So, when X almost triples, the probability of success declines slightly, on average. Note that this is in percent, not percentage points.

    I find percent change in probabilities difficult to understand and explain to others. I recommend that (1) you don't log X and (2) calculate a dyex semielasticity instead of eydx. Divided by 100, this gives you the additive change in Pr(y=1) on a [0,1] scale associated with a +1% increase in x.

    For example,

    Code:
    . sysuse auto, clear
    (1978 automobile data)
    
    . probit foreign c.price, nolog
    
    Probit regression                                       Number of obs =     74
                                                            LR chi2(1)    =   0.18
                                                            Prob > chi2   = 0.6727
    Log likelihood = -44.943972                             Pseudo R2     = 0.0020
    
    ------------------------------------------------------------------------------
         foreign | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
    -------------+----------------------------------------------------------------
           price |   .0000222   .0000522     0.42   0.671    -.0000802    .0001245
           _cons |  -.6701415   .3605534    -1.86   0.063    -1.376813    .0365303
    ------------------------------------------------------------------------------
    
    . margins, dyex(price)
    
    Average marginal effects                                    Number of obs = 74
    Model VCE: OIM
    
    Expression: Pr(foreign), predict()
    dy/ex wrt:  price
    
    ------------------------------------------------------------------------------
                 |            Delta-method
                 |      dy/ex   std. err.      z    P>|z|     [95% conf. interval]
    -------------+----------------------------------------------------------------
           price |    .047956   .1139996     0.42   0.674    -.1754792    .2713912
    ------------------------------------------------------------------------------
    This says that a 1% increase in price is associated with .047956/100 = .00047956 increase in Pr(foreign) on a [0,1] scale.

    The baseline is that ~1/3 of cars are foreign, so that is roughly a 0.16% increase (i.e., considerably less than 1%). Margins, eyex() gives you something very close to that:

    Code:
    . margins, eyex(price)
    
    Average marginal effects                                    Number of obs = 74
    Model VCE: OIM
    
    Expression: Pr(foreign), predict()
    ey/ex wrt:  price
    
    ------------------------------------------------------------------------------
                 |            Delta-method
                 |      ey/ex   std. err.      z    P>|z|     [95% conf. interval]
    -------------+----------------------------------------------------------------
           price |   .1563539   .3619077     0.43   0.666    -.5529722      .86568
    ------------------------------------------------------------------------------

    Comment


    • #3
      Many thanks for your answer. This is well-detailed. One last question regarding the last part of your answer. Does it mean that I could use eyex instead of dyex. My understanding was that eyex is used when both dependent and independent variables are continuous.

      Comment


      • #4
        I think you should use

        Code:
        margins, dyex(log_x)
        The expected value here is a probability, which is continuous (though bounded by zero and one), so you should be good.

        I added the eyex elasticity example at the end to elucidate what dyex is calculating.

        Comment


        • #5
          Well noted. Thank a lot.

          Comment

          Working...
          X