Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: logit average "marginal" effect of dummy variable with predict

From   Richard Williams <>
Subject   Re: st: logit average "marginal" effect of dummy variable with predict
Date   Tue, 07 May 2013 08:32:03 -0400

You are treating smoke as a continuous variable rather than as discrete. Instead do

logit low lwt ptd i.smoke age
margins, dydx(smoke) //AME of smoke

The latter produces

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

Expression   : Pr(low), predict()
dy/dx w.r.t. : 1.smoke

             |            Delta-method
             |      dy/dx   Std. Err.      z    P>|z|     [95% Conf. Interval]
     1.smoke |    .229702   .0923031     2.49   0.013     .0487913    .4106127
Note: dy/dx for factor levels is the discrete change from the base level.

Incidentally, I like this alternate syntax, mostly because of the way output gets labeled, especially in graphs:

margins r.smoke

At 07:48 AM 5/7/2013, Chris wrote:
Dear statalist,

I want to compute the average marginal effect of an interaction
effect, so I have to simultaneously "switch on and off" two treatment
dummies (one treatment dummy, and one subgroup dummy interacted with
the treatment dummy). Margins can't do that, as Richard Williams
recently pointed out here on statalist.

So I am trying to compute it manually. However, I don't even manage to
compute the average marginal effect with the predict command; somehow,
there is a discrepancy between margins and predict even for simple
cases. Does anybody know why? Example:

webuse lowbirth, clear
logit low lwt ptd smoke age
margins, dydx(smoke) //AME of smoke

replace smoke=1 //set entire sample smoke=1
predict withsmoke //predict probability
replace smoke=0 //set entire sample smoke=0
predict withoutsmoke //predict probability
gen me=withsmoke-withoutsmoke //compute discrete "marginal" effect
egen ame=mean(me) //AME of smoke

The margins command gives an AME of .2198375, while the predict
version gives .2297. Which is right and why do they differ?

*   For searches and help try:

Richard Williams, Notre Dame Dept of Sociology
OFFICE: (574)631-6668, (574)631-6463
HOME:   (574)289-5227
EMAIL:  Richard.A.Williams.5@ND.Edu

*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index