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]

From |
[email protected] (Jeff Pitblado, StataCorp LP) |

To |
[email protected] |

Subject |
Re: st: marginal effects for simultaneous changes in interacted variables |

Date |
Wed, 31 Oct 2012 18:03:07 -0500 |

David Quinn <[email protected]> is using -margins- with -logit- results, trying to get the change in the predictive margin when x1 and x2 are both equal 0 to x1 and x2 both equal 1: > I am estimating a logit model as such: Y=X1 + X2 + X1*X2 + X3. > > X1 and X2 are binary predictors, and I have interacted them using > factor notation. X3 is a > control variable. > > I'd like to assess the discrete change/marginal effects in my > dependent variable when X1 and X2 simultaneously move from 0 to 1, > setting x3 asobserved. > > I used the following margins command to calculate this change: > > margins, dydx(X1) at(X2=(0 1)) > > But this is not giving me the change that I desire. It's giving me > the following two changes: 1.) From X1=0, X2=0 to X1=1, X2=0; and 2.) > >From X1=0, X2=1 to X1=1, X2=1. > > But what I want is the change from X1=0, X2=0 to X1=1, X2=1. > > When you use King et al's Clarify program, you can select specific > values for which the change is to be calculated for multiple variables > of interest simultaneously, but I cannot seem to get margins to do > this. > > How do I use margins to calculate the change that I desire? I'll use the auto data with some generated variables, so I can show the steps to get what David wants: . sysuse auto . gen x1 = mpg > 20 . gen x2 = head > 3 . logit for x1##x2 turn In the above I generated binary predictors x1 and x2, used -foreign- for the binary response, and -turn- as a control variable. Here are the results from logit: ***** BEGIN: Logistic regression Number of obs = 74 LR chi2(4) = 44.34 Prob > chi2 = 0.0000 Log likelihood = -22.86412 Pseudo R2 = 0.4923 ------------------------------------------------------------------------------ foreign | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- 1.x1 | -1.807144 1.223086 -1.48 0.140 -4.204349 .5900617 1.x2 | -.9829927 1.491344 -0.66 0.510 -3.905974 1.939989 | x1#x2 | 1 1 | -2.262084 2.344498 -0.96 0.335 -6.857215 2.333047 | turn | -.7399175 .2046417 -3.62 0.000 -1.141008 -.3388272 _cons | 28.62676 8.020097 3.57 0.000 12.90766 44.34586 ------------------------------------------------------------------------------ ***** END: Now David wants to compare the predictive margin where x1 and x2 are both 0 to the predictive margin when they are both 1. Here we use the interaction between x1 and x2 as the margining term to yield the predictive margins that David wants: ***** BEGIN: . margins x1#x2 Predictive margins Number of obs = 74 Model VCE : OIM Expression : Pr(foreign), predict() ------------------------------------------------------------------------------ | Delta-method | Margin Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- x1#x2 | 0 0 | .4344516 .0756514 5.74 0.000 .2861776 .5827255 0 1 | .3543279 .1092121 3.24 0.001 .140276 .5683798 1 0 | .2823868 .0419118 6.74 0.000 .2002411 .3645325 1 1 | .0519108 .0556121 0.93 0.351 -.0570869 .1609085 ------------------------------------------------------------------------------ ***** END: Now that we have (more than) the predictive margins of interest, we can use contrast operators or the -contrast- option to get -margins- to compute the discrete differences between them. The problem with this approach is that we only care about the '0 0' and '1 1' margins, so instead we'll use two separate -at()- options. The first -at()- option will identify the '0 0' predictive margin, then second will identify the '1 1' predictive margin. ***** BEGIN: . margins, at(x1=0 x2=0) at(x1=1 x2=1) Predictive margins Number of obs = 74 Model VCE : OIM Expression : Pr(foreign), predict() 1._at : x1 = 0 x2 = 0 2._at : x1 = 1 x2 = 1 ------------------------------------------------------------------------------ | Delta-method | Margin Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- _at | 1 | .4344516 .0756514 5.74 0.000 .2861776 .5827255 2 | .0519108 .0556121 0.93 0.351 -.0570869 .1609085 ------------------------------------------------------------------------------ ***** END: If David is using Stata 11, he'll have to use the -post- option get get -margins- to post its results to -e()- and then use -lincom- to compute the discrete change. In Stata 12, David can use the -contrast()- option and specify how he wants margins to contrast the levels of -_at-. Here we use the reference category operator, which will always use the first level as the base in the comparison: ***** BEGIN: . margins, at(x1=0 x2=0) at(x1=1 x2=1) contrast(at(r)) Contrasts of predictive margins Model VCE : OIM Expression : Pr(foreign), predict() 1._at : x1 = 0 x2 = 0 2._at : x1 = 1 x2 = 1 ------------------------------------------------ | df chi2 P>chi2 -------------+---------------------------------- _at | 1 16.49 0.0000 ------------------------------------------------ -------------------------------------------------------------- | Delta-method | Contrast Std. Err. [95% Conf. Interval] -------------+------------------------------------------------ _at | (2 vs 1) | -.3825407 .0942169 -.5672024 -.1978791 -------------------------------------------------------------- ***** END: --Jeff [email protected] * * 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/

**Follow-Ups**:

- Prev by Date:
**Re: st: appending two survey data sets** - Next by Date:
**Re: st: marginal effects for simultaneous changes in interacted variables** - Previous by thread:
**st: marginal effects for simultaneous changes in interacted variables** - Next by thread:
**Re: st: marginal effects for simultaneous changes in interacted variables** - Index(es):