Question

I am estimating a Poisson regression and want to estimate the economic significance of my coefficients (marginal effects).

I have three methods that have been suggested to me:

  1. margins, dydx(_all)
  2. margins, dydx(_all) atmeans
  3. poisson, irr

I am wondering which method is the best to use.

Was it helpful?

Solution

Marginal effect at the mean (#2) is generally a bad idea since the mean may correspond to a unrepresentative, nonsensical value, particularly if your X contains categorical variables. Do you really care about the additive effect for someone who is half female and 10 percent pregnant? Probably not. This ME was more commonly used when computations were expensive. You can use the at() option to pick more suitable values if you want to go this route.

Average marginal effect (#1) gives you the average additive effect on the expected count.

The IRR option (#3) gives you the multiplicative effect on the mean.

Here's a simple example with the doctors data:

. use http://www.stata-press.com/data/r13/dollhill3, clear
(Doll and Hill (1966))

. bys smokes: sum deaths 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-> smokes = 0

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
      deaths |         5        20.2    12.61745          2         31

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-> smokes = 1

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
      deaths |         5         126    70.52659         32        206

As you can see, the average number of deaths for groups of smokers is 126. For non-smokers, it's only 20.2.

IRR:

. poisson deaths i.smokes, irr

Iteration 0:   log likelihood =  -136.6749  
Iteration 1:   log likelihood = -136.56351  
Iteration 2:   log likelihood = -136.56346  
Iteration 3:   log likelihood = -136.56346  

Poisson regression                                Number of obs   =         10
                                                  LR chi2(1)      =     426.21
                                                  Prob > chi2     =     0.0000
Log likelihood = -136.56346                       Pseudo R2       =     0.6094

------------------------------------------------------------------------------
      deaths |        IRR   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
    1.smokes |   6.237624     .66857    17.08   0.000     5.055737    7.695802
       _cons |       20.2   2.009975    30.21   0.000     16.62087    24.54986
------------------------------------------------------------------------------

The number of deaths for smokers is 6.237624*20.2=126.

Now we calculated the additive effect:

. margins, dydx(smokes)

Conditional marginal effects                      Number of obs   =         10
Model VCE    : OIM

Expression   : Predicted number of events, predict()
dy/dx w.r.t. : 1.smokes

------------------------------------------------------------------------------
             |            Delta-method
             |      dy/dx   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
    1.smokes |      105.8   5.407402    19.57   0.000     95.20169    116.3983
------------------------------------------------------------------------------
Note: dy/dx for factor levels is the discrete change from the base level.

This says smokers should have 105.8 more deaths than non-smokers. 20.2+105.8=126.

In this simple model, margins, dydx(smokes) atmeans would give the same answer. Can you see why?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top