Bookmark and Share

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


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

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


From   Richard Williams <[email protected]>
To   [email protected], [email protected]
Subject   Re: st: Obtaining marginal effects and their standard errors after estimations with interactions
Date   Mon, 07 Jan 2013 10:09:19 -0500

Thanks for showing how to do this Arne. FYI I have asked Stata tech support why margins does not provide marginal effects for interaction terms. One theory I have is that it would be a programming nightmare. The 2004 FAQ is a very simple example and it required that you know what the derivatives are. My impression (possibly wrong) is that margins doesn't actually know what all the formulas for derivatives are. Instead, it takes more of a brute force approach -- it plugs in numbers and computes the marginal effects from there.

I also continue to be unclear how useful the marginal effect of an interaction term is. It may be more useful to plot adjusted predictions for men and women and see how they differ across the range of some other variable that gender is interacted with. See the last few slides of

http://www.nd.edu/~rwilliam/stats/Margins01.pdf


At 08:41 AM 1/7/2013, Arne Risa Hole 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 <[email protected]> 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: [email protected]; [email protected]
>> From: [email protected]
>> 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/Discrete Choice/Readings/Greene-Chapter-23.pdf
>> >
>> >http://www.stata-journal.com/sjpdf.html?articlenum=st0063
>> >
>> >Best,
>> >
>> >Andre
>> >
>> >
>> >
>> > > From: [email protected]
>> > > To: [email protected]
>> > > 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: [email protected]; [email protected]
>> > > From: [email protected]
>> > > 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: [email protected]
>> > > > > Date: Fri, 4 Jan 2013 11:56:50 -0500
>> > > > > Subject: Re: st: Obtaining marginal effects and their standard
>> > > > errors after estimations with interactions
>> > > > > To: [email protected]
>> > > > >
>> > > > > 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/statistics /marginal-effects-after-interactions/
>> >[1]
>> > > > > >
>> > > > > > Kind regards
>> > > > > > Ebru
>> > > > > >
>> > > > > > ----------------------------------------
>> > > > > >> Date: Fri, 4 Jan 2013 09:32:25 -0500
>> > > > > >> To: [email protected];
>> >[email protected]
>> > > > > >> From: [email protected]
>> > > > > >> 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/statistics /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: [email protected]
>> 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:  [email protected]
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/


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