Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Guy Grossman <guygrossman1@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: xtmixied: Marginal Effect with Interactions |
Date | Mon, 30 Aug 2010 14:38:50 +0000 |
Thank you Maarten! This works perfectly, and is exactly what I was looking for. Guy On Mon, Aug 30, 2010 at 9:43 AM, Maarten buis <maartenbuis@yahoo.co.uk> wrote: > > --- On Sun, 29/8/10, Guy Grossman wrote: > > I am using Stata 10.1 on Mac to estimate the following > > model: > > > > xtmixed change x1 x2 x1Xx2 c1 c2 c3 c4 c5 || group: > > || id:, mle nolog > > > > in which both x1 and x2 are dummies and x1 is a treatment > > variable in a randomized experiment. I have two questions: > > > > 1. how can I calculate the effect of x1 conditional on > > x2==1, while setting the control variables to their mean > > (continuous variables) or median (categorical)? > > -xtmixed- is a linear model so there is no need to fix the > other covariates, as the marginal effect will be the same > regardless of what value you fix them at. Since x2 is a > dummie, x1 has basically two effects: the effect when > x2 is 0 and the effect when x2 is 1. The former is just the > coefficient of x1 the latter is the coefficient of x1 + > the coefficient of x1Xx2. You can use -lincom- for that. > See -help lincom- and the example below. > > > 2. what do you suggest would be the best way to graphically > > present the results given that both x1 and x2 are dummies? > > Below is one sugestion: > > *---------------- begin example ----------------- > webuse productivity, clear > // create some dummies and the interaction variable > sum private, meanonly > gen x1 = private > r(mean) > sum emp, meanonly > gen x2 = emp > r(mean) > gen x1Xx2 = x1*x2 > > // estimate the model > xtmixed gsp x1 x2 x1Xx2 hwy water other unemp || region: || state:, mle > > // get the effect of x1 when x2 == 1 > lincom x1 + x1Xx2 > > > // turn the estimates into variables, so they > // can be graphed > gen x = 1 in 1 > gen y = r(estimate) in 1 > gen lb = y - invnormal(0.975)*r(se) in 1 > gen ub = y + invnormal(0.975)*r(se) in 1 > > replace x = 0 in 2 > replace y = _b[x1] in 2 > replace lb = y - invnormal(0.975)*_se[x1] in 2 > replace ub = y + invnormal(0.975)*_se[x1] in 2 > > // the graph > twoway scatter y x || /// > rcap lb ub x, /// > xlab(0 1) /// > xscale(range(-.5 1.5)) /// > xtitle(x2) /// > ytitle(effect x1) /// > legend(order(1 "effect" /// > 2 "conf. interval")) > *---------------- end example ------------------ > (For more on examples I sent to the Statalist see: > http://www.maartenbuis.nl/example_faq ) > > Hope this helps, > Maarten > > -------------------------- > Maarten L. Buis > Institut fuer Soziologie > Universitaet Tuebingen > Wilhelmstrasse 36 > 72074 Tuebingen > Germany > > http://www.maartenbuis.nl > -------------------------- > > > > > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/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/statalist/faq * http://www.ats.ucla.edu/stat/stata/