Statalist


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

Re: st: dprobit and lincom


From   Austin Nichols <[email protected]>
To   [email protected]
Subject   Re: st: dprobit and lincom
Date   Thu, 21 Jan 2010 18:11:08 -0500

Melanee Thomas <[email protected]>:
You should really not use -mfx- or -dprobit- at all, as the marginal
effect at the mean is not informative for most purposes; see
http://stata.com/help.cgi?margins for a description of the state of
the art in Stata 11.  An even better approach is to roll your own by
adding sensible values to the two variables whose combined effect on
probability you wish to measure, computing dp/dx for each observation,
then summarizing the sample mean of that observation-specific dp/dx.
Note also that interactions may present special problems
(http://www.stata-journal.com/sjpdf.html?articlenum=st0063).

That said, you can probably get what you say you want from -dprobit-
or -mfx- by reparameterizing, whether it is sensible or not:

sysuse auto, clear
probit foreign turn mpg
lincom mpg+turn
g t_m=turn-mpg
probit foreign t_m mpg
dprobit foreign t_m mpg

Compare this trick to get the marginal effect at the mean of a
one-unit increase in each of two variables (about -.078) to e.g. the
mean marginal effect computed one of these two ways (both about
-.073):

probit foreign turn mpg
predict p
su p
loc reg=r(mean)
replace mpg=mpg+.01
replace turn=turn+.01
predict p1
su p1
loc higher=r(mean)
replace mpg=mpg-.01
replace turn=turn-.01
di "method one: " (`higher'-`reg')*100
predict xb, xb
g fxb=normalden(xb)
g dpdx=fxb*(_b[turn]+_b[mpg])
su dpdx
di "method two: " r(mean)

All of these approaches implicitly assume that a one-unit change in x1
and x2 is a one-unit change; in fact it represents a step of distance
sqrt(2) unless the two variables are logically related.  All of this
would become clearer when fitted to a real-world example...

On Thu, Jan 21, 2010 at 4:03 PM, Melanee Thomas
<[email protected]> wrote:
> Right. So, is there a way to either a) ask mfx to treat a scalar (or a matrix) like a variable or b) get mfx to treat the lincom return as a variable? If not, what's the appropriate syntax to use to get an interpretable value from lincom after using dprobit using mfx? I'm assuming such syntax exists and that others have used it successfully.....
>
> M

*
*   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/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index