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
Arne Risa Hole <[email protected]>
To
[email protected]
Subject
Re: st: Obtaining marginal effects and their standard errors after estimations with interactions
Date
Mon, 7 Jan 2013 15:46:22 +0000
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.
On 7 January 2013 15:26, Richard Williams <[email protected]> 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 <[email protected]> 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/Discret
>> >>> > eChoice/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/statistic
>> >>> > s/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/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: [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/
*
* 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/