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

# Re: st: Obtaining marginal effects and their standard errors after estimations with interactions

 From Richard Williams To statalist@hsphsun2.harvard.edu, statalist@hsphsun2.harvard.edu Subject Re: st: Obtaining marginal effects and their standard errors after estimations with interactions Date Mon, 07 Jan 2013 11:14:12 -0500

At 10:46 AM 1/7/2013, Arne Risa Hole wrote:
I don't think it can be extended to AMEs, since the -at()- option of
-margins- only takes a single number per variable as far as I know. I
imagine you could extend it to three-way interactions etc., but I have
not tried this. It's likely to get pretty messy.

FYI, slides 27-29 of http://www.nd.edu/~rwilliam/stats/Margins01.pdf show how you could compute AMEs for categorical variables if you didn't have -margins-. It is a fairly simple example and I'd have to think about whether it could be extended to more complicated problems. Cameron and Trivedi show how you can manually compute AMEs for continuous variables; see section 10.6.10 of http://www.stata.com/bookstore/microeconometrics-stata/index.html

Also, the -at- option does let you specify a range of values for a variable, e.g. in my examples i varied the value of age between 20 and 70.

I think the do it yourself approaches have some pedagogical value in that they show what margins is doing. They may also be helpful in that they show you how much variability there is in effects across cases, as opposed to just seeing a single "average"effect.

On 7 January 2013 15:26, Richard Williams <richardwilliams.ndu@gmail.com> wrote:
> Thanks again. I wonder how easy it would be to extend this to AMEs, three
> way interactions involving squared terms, etc. In other words, would it be
> relatively simple for margins to provide marginal effects for more
> complicated models with interaction terms, or would it be quite difficult?
> And if you could do it, how useful would it be?
>
>
> At 10:08 AM 1/7/2013, Arne Risa Hole wrote:
>>
>> It's possible to get pretty close when both variables are continuous
>> as well, using a finite difference approximation. The code below
>> approximates "dydlw" in the FAQ.
>>
>> sysuse auto, clear
>> replace weight=weight/1000
>> replace length=length/10
>> probit foreign weight length c.weight#c.length, nolog
>> margins, dydx(*) atmeans at(weight=3.019559)
>> matrix b = r(b)
>> scalar meff_turn_1 = b[1,2]
>> margins, dydx(*) atmeans at(weight=3.019459)
>> matrix b = r(b)
>> scalar meff_turn_0 = b[1,2]
>>
>> di (meff_turn_1 - meff_turn_0)/0.0001
>>
>> I'm not saying that this is a good way of actually performing these
>> calculations, but it does help in giving some intuition to what the
>> numbers represent (at least I think so).
>>
>> Arne
>>
>> On 7 January 2013 13:41, Arne Risa Hole <arnehole@gmail.com> wrote:
>> > I don't have much to add to what Richard has already said on this
>> > topic but I just wanted to mention one thing: if the interaction is
>> > between a continuous variable and a dummy variable, then the second
>> > derivative (or "marginal effect of the interaction") is the difference
>> > between the marginal effect of the continuous variable when the dummy
>> > is "switched on" and when dummy is "switched off". The code below
>> > replicates the final result in the FAQ (this uses -margins- so
>> > requires Stata 11 or higher).
>> >
>> > sysuse auto, clear
>> > set seed 12345
>> > generate dum=uniform()>0.5
>> > table dum
>> > probit foreign turn i.dum i.dum#c.turn, nolog
>> >
>> > margins, dydx(*) atmeans at(dum=1)
>> > matrix b = r(b)
>> > scalar meff_turn_dum1 = b[1,1]
>> > margins, dydx(*) atmeans at(dum=0)
>> > matrix b = r(b)
>> > scalar meff_turn_dum0 = b[1,1]
>> >
>> > di meff_turn_dum1 - meff_turn_dum0
>> >
>> > Arne
>> >
>> > On 6 January 2013 13:11, Ebru Ozturk <ebru_0512@hotmail.com> wrote:
>> >> But without getting separate interaction terms, how do we know that the
>> >> moderator affects the relationship between x and y positively or negatively?
>> >>
>> >> ----------------------------------------
>> >>> Date: Sat, 5 Jan 2013 13:39:53 -0500
>> >>> To: statalist@hsphsun2.harvard.edu; statalist@hsphsun2.harvard.edu
>> >>> From: richardwilliams.ndu@gmail.com
>> >>> Subject: RE: st: Obtaining marginal effects and their standard errors
>> >>> after estimations with interactions
>> >>>
>> >>> Thanks for the references. FYI, if you have Stata
>> >>> 11 or higher, here is how you can easily
>> >>> reproduce almost everything that is in the FAQ at
>> >>>
>> >>> http://www.stata.com/support/faqs/statistics/marginal-effects-after-interactions/
>> >>> -- the one exception being that you DON'T get
>> >>> separate marginal effects for the interaction terms.
>> >>>
>> >>> sysuse auto, clear
>> >>> regress mpg weight c.weight#c.weight
>> >>> margins, dydx(*) atmeans
>> >>> sysuse auto, clear
>> >>> replace weight=weight/1000
>> >>> replace length=length/10
>> >>> probit foreign weight length c.weight#c.length, nolog
>> >>> margins, dydx(*) atmeans
>> >>> sysuse auto, clear
>> >>> set seed 12345
>> >>> generate dum=uniform()>0.5
>> >>> table dum
>> >>> probit foreign turn i.dum i.dum#c.turn, nolog
>> >>> margins, dydx(*) atmeans
>> >>>
>> >>> With regards to the references, Greene is
>> >>> brilliant but I wish he would write in English
>> >>> and use Stata examples. I think he is saying that
>> >>> the marginal effect of the interaction is not
>> >>> useful. The other two articles are also
>> >>> expressing concerns or suggesting alternatives. I
>> >>> am also not a big fan of using MEMs (marginal
>> >>> effects at the means); AMEs (Average Marginal
>> >>> Effects) make more sense to me, especially when
>> >>> categorical variables are involved.
>> >>>
>> >>> If the marginal effect of the interaction term is
>> >>> useful or even valid, I continue to wonder why
>> >>> -margins- does not provide it. And what exactly
>> >>> does it mean? The interaction term can't change
>> >>> independently of the variables used to compute the interaction.
>> >>>
>> >>> At 11:53 AM 1/5/2013, André Ferreira Coelho wrote:
>> >>> >Dear all,
>> >>> >
>> >>> >As far as i know there is no consensus on whether margins should be
>> >>> >computed for marginal terms.
>> >>> >
>> >>> >Maybe you are interested in using odds for interactions instead of
>> >>> >margins.
>> >>> >
>> >>> >But you might want to take a look on some literature:
>> >>> >
>> >>> >http://www.maartenbuis.nl/publications/interactions.pdf
>> >>> >
>> >>> >http://pages.stern.nyu.edu/~wgreene/Discret
>> >>> >
>> >>> >http://www.stata-journal.com/sjpdf.html?articlenum=st0063
>> >>> >
>> >>> >Best,
>> >>> >
>> >>> >Andre
>> >>> >
>> >>> >
>> >>> >
>> >>> > > From: ebru_0512@hotmail.com
>> >>> > > To: statalist@hsphsun2.harvard.edu
>> >>> > > Subject: RE: st: Obtaining marginal effects and their standard
>> >>> > > errors
>> >>> >after estimations with interactions
>> >>> > > Date: Sat, 5 Jan 2013 13:32:47 +0200
>> >>> > >
>> >>> > > Yes,that's true but I dont think it is wrong to produce a separate
>> >>> >marginal
>> >>> >effect. Also this 2004 FAQ is for Stata 10. Maybe that's the reason
>> >>> > to
>> >>> >still have this information on FAQ page.
>> >>> >
>> >>> >----------------------------------------
>> >>> > > Date: Fri, 4 Jan 2013 15:15:58 -0500
>> >>> > > To: statalist@hsphsun2.harvard.edu; statalist@hsphsun2.harvard.edu
>> >>> > > From: richardwilliams.ndu@gmail.com
>> >>> > > Subject: RE: st: Obtaining marginal effects and their standard
>> >>> > > errors
>> >>> >after estimations with interactions
>> >>> > >
>> >>> > > At 12:24 PM 1/4/2013, Ebru Ozturk wrote:
>> >>> > > >It's not that hard, just you need to be careful. Stata 10 is the
>> >>> > > >only choice for me. I just need an example that inludes a few
>> >>> > > > more
>> >>> > > >independent and control variables.
>> >>> > > >
>> >>> > > >Ebru
>> >>> > >
>> >>> > > I think it is interesting that the -margins- command works
>> >>> > > somewhat
>> >>> > > differently than the approach presented in the FAQ. In particular,
>> >>> > > margins does not produce a separate marginal effect for the
>> >>> > > interaction term while the FAQ approach does. This makes me wonder
>> >>> > > if
>> >>> > > (a) the 2004 FAQ is now considered wrong, or (b) both the FAQ and
>> >>> > > margins approaches are considered legitimate but alternative
>> >>> > > approaches. Personally, I think what margins does is very logical,
>> >>> > > but nonetheless people keep on asking for marginal effects of
>> >>> > > interaction terms.
>> >>> > >
>> >>> > > >----------------------------------------
>> >>> > > > > From: richardwilliams.ndu@gmail.com
>> >>> > > > > Date: Fri, 4 Jan 2013 11:56:50 -0500
>> >>> > > > > Subject: Re: st: Obtaining marginal effects and their standard
>> >>> > > > errors after estimations with interactions
>> >>> > > > > To: statalist@hsphsun2.harvard.edu
>> >>> > > > >
>> >>> > > > > I hate trying to do something like this by hand. Too much room
>> >>> > > > > for
>> >>> > > > > error. Can't you tell whoever you work for that you can't be
>> >>> >expected
>> >>> > > > > to work under such primitive inhumane conditions and you need
>> >>> > > > > Stata
>> >>> > > > > 12?
>> >>> > > > >
>> >>> > > > > You might check out the user-written -inteff- command and see
>> >>> > > > > if it
>> >>> > > > > helps. -margeff- is another user-written command that has
>> >>> > > > > various
>> >>> > > > > advantages over -mfx-.
>> >>> > > > >
>> >>> > > > > Sent from my iPad
>> >>> > > > >
>> >>> > > > > On Jan 4, 2013, at 11:33 AM, Ebru Ozturk wrote:
>> >>> > > > >
>> >>> > > > > > Thank you, I use Stata 10 therefore I asked this question. I
>> >>> > > > just wonder when we have more independent or control variables
>> >>> > > > how
>> >>> > > > do we adjust the given equations on this link:
>> >>> > > >
>> >>> >http://www.stata.com/support/faqs/statistic
>> >>> > s/marginal-effects-after-interactions/
>> >>> >[1]
>> >>> > > > > >
>> >>> > > > > > Kind regards
>> >>> > > > > > Ebru
>> >>> > > > > >
>> >>> > > > > > ----------------------------------------
>> >>> > > > > >> Date: Fri, 4 Jan 2013 09:32:25 -0500
>> >>> > > > > >> To: statalist@hsphsun2.harvard.edu;
>> >>> >statalist@hsphsun2.harvard.edu
>> >>> > > > > >> From: richardwilliams.ndu@gmail.com
>> >>> > > > > >> Subject: Re: st: Obtaining marginal effects and their
>> >>> > > > > >> standard
>> >>> > > > errors after estimations with interactions
>> >>> > > > > >>
>> >>> > > > > >> At 03:17 PM 1/3/2013, Ebru Ozturk wrote:
>> >>> > > > > >>
>> >>> > > > > >>> Dear All,
>> >>> > > > > >>>
>> >>> > > > > >>> On Stata FAQs' page, there are some given examples for
>> >>> > > > > >>> Probit
>> >>> > > > > >>> estimation with interaction effects for Stata 10 titled as
>> >>> > > > > >>> "I am
>> >>> > > > > >>> using a model with interactions. How can I obtain marginal
>> >>> >effects
>> >>> > > > > >>> and their standard errors?" and the link is:
>> >>> > > > > >>>
>> >>> > > >
>> >>> >http://www.stata.com/support/faqs/statistic
>> >>> > s/marginal-effects-after-interactions/
>> >>> >[2]
>> >>> > > > > >>>
>> >>> > > > > >>> Do you think this way is still applicable to Probit
>> >>> > > > > >>> estimation?
>> >>> >and
>> >>> > > > > >>> Is the below command correct when we have other
>> >>> > > > > >>> independent or
>> >>> > > > > >>> control variables?
>> >>> > > > > >>
>> >>> > > > > >> I don't know if you did it right or not, but if you have
>> >>> > > > > >> Stata 11
>> >>> >or
>> >>> > > > > >> higher why not use -margins-, e.g.
>> >>> > > > > >>
>> >>> > > > > >> sysuse auto, clear
>> >>> > > > > >> probit foreign weight length c.weight#c.length, nolog
>> >>> > > > > >> margins, dydx(*)
>> >>> > > > > >>
>> >>> > > > > >>> local xb _b[weight]*`meanwei' + _b[len]*`meanlen' +
>> >>> > > > > >>> _b[wl]*`meanwei'*`meanlen' + _b[C1]*C1+_b[C2]*C2 +
>> >>> > > > > >>> _b[_cons] //
>> >>> >if
>> >>> > > > > >>> more variables //
>> >>> > > > > >>>
>> >>> > > > > >>> /////// example /////////
>> >>> > > > > >>>
>> >>> > > > > >>> sysuse auto, clear
>> >>> > > > > >>> generate wl=weight*length
>> >>> > > > > >>> probit foreign weight length wl, nolog
>> >>> > > > > >>> quietly summarize weight if e(sample)
>> >>> > > > > >>> local meanwei = r(mean)
>> >>> > > > > >>> quietly summarize length if e(sample)
>> >>> > > > > >>> local meanlen = r(mean)
>> >>> > > > > >>>
>> >>> > > > > >>> local xb _b[weight]*`meanwei' + _b[len]*`meanlen' +
>> >>> > > > > >>> _b[wl]*`meanwei'*`meanlen' + _b[_cons]
>> >>> > > > > >>> predictnl dydw = normalden(`xb')*(_b[weight]+
>> >>> > > > _b[wl]*`meanlen') in 1, se(sew)
>> >>> > > > > >>> list dydw sew in 1
>> >>> > > > > >>>
>> >>> > > > > >>> predictnl dydl = normalden(`xb')*(_b[len]+
>> >>> > > > > >>> _b[wl]*`meanwei')
>> >>> > > > in 1, se(sel)
>> >>> > > > > >>> list dydl sel in 1
>> >>> > > > > >>>
>> >>> > > > > >>> predictnl dydlw =normalden(`xb')*(-(`xb'))*(_b[weight]+
>> >>> > > > > >>> _b[wl]*`meanlen')*(_b[len]+ _b[wl]*`meanwei') +
>> >>> >normalden(`xb')*(
>> >>> > > > > >>> _b[wl]) in 1, se(selw)
>> >>> > > > > >>> list dydlw selw in 1
>> >>> > > > > >>>
>> >>> > > > > >>> Ebru
>> >>> > > > > >>
>> >>>
>> >>> -------------------------------------------
>> >>> 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
>> >>> WWW: http://www.nd.edu/~rwilliam
>> >>>
>> >>>
>> >>> *
>> >>> * For searches and help try:
>> >>> * http://www.stata.com/help.cgi?search
>> >>> * http://www.stata.com/support/faqs/resources/statalist-faq/
>> >>> * http://www.ats.ucla.edu/stat/stata/
>> >> *
>> >> *   For searches and help try:
>> >> *   http://www.stata.com/help.cgi?search
>> >> *   http://www.stata.com/support/faqs/resources/statalist-faq/
>> >> *   http://www.ats.ucla.edu/stat/stata/
>>
>> *
>> *   For searches and help try:
>> *   http://www.stata.com/help.cgi?search
>> *   http://www.stata.com/support/faqs/resources/statalist-faq/
>> *   http://www.ats.ucla.edu/stat/stata/
>
>
> -------------------------------------------
> 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
> WWW:    http://www.nd.edu/~rwilliam
>
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/faqs/resources/statalist-faq/
> *   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/

-------------------------------------------
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
WWW:    http://www.nd.edu/~rwilliam

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/