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

# st: ratio of marginal effects when using two -margins- commands

 From Mirko To statalist@hsphsun2.harvard.edu Subject st: ratio of marginal effects when using two -margins- commands Date Tue, 13 Apr 2010 13:01:34 +0100

```Dear all,

I am wondering whether is possible to obtain standard errors and
confidence intervals of ratio of marginal effects when they are
obtained by running two (or more) times the command -margins-.
-margins- makes life a lot easier especially after estimating models
with interaction terms or nonlinear models:

* simple case
use http://www.stata-press.com/data/r11/margex
logistic outcome sex##group age
margins sex, post
nlcom (risk_ratio: _b[1.sex] / _b[0.sex])

However, there may be some cases in which one needs to compute two
separate -margins- commands to obtain the marginal effects of
interest. For example, after a model of Y on X, Z and the interaction
term XZ:

Y = a + bX + bZ + bXZ + e,

I'd like to obtain the statistical significance of the ratio of

(marginal effects of variable X conditional on variable Z)/ (marginal
effects of variable Z conditional on X) =

ME1/ME2

****begin example*****************************************
* -margins*

sysuse auto, clear
set more off
qui regress mpg foreign i.rep78##c.weight headroom
* ME1
margins, dydx(rep78) atmeans
* ME2
margins, dydx(weight) over(rep78)

**********end example***************************************

Is there an easy way to get standard errors and confidence intervals
of ratios of two -margins- ME1/ME2?

Or do I need to use -nlcom- like below?

****begin example********************************
* ratio of marginal effects with -nlcom-
sysuse auto, clear
set more off
qui tab rep78, gen(rep)
forval i=2/5{
qui gen rep`i'Xweight = rep`i'*weight
}
regress mpg foreign rep2-rep5 rep2Xweight-rep5Xweight weight headroom
qui sum weight if e(sample)
local meanw = r(mean)
* ratio of ME1/ME2
nlcom (_b[rep2] + _b[rep2Xweight]*`meanw')/(_b[weight] + _b[rep2Xweight])
nlcom (_b[rep3] + _b[rep3Xweight]*`meanw')/(_b[weight] + _b[rep3Xweight])
nlcom (_b[rep4] + _b[rep4Xweight]*`meanw')/(_b[weight] + _b[rep4Xweight])
nlcom (_b[rep5] + _b[rep5Xweight]*`meanw')/(_b[weight] + _b[rep5Xweight])

****end example****************************************************************

I would appreciate any help on this.
Thanks
Best regards,
Mirko
*
*   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/
```