# Probit model marginal effects

p<-glm(GRADE~GPA+TUCE+PSI,family="binomial"(link="probit")); summary(p)


is the probit model

Coefficients:
Estimate    Std. Error  z value   Pr(>|z|)
(Intercept)   -7.45231    2.57152     -2.898    0.00376 **
GPA            1.62581    0.68973      2.357    0.01841 *
TUCE           0.05173    0.08119      0.637    0.52406
PSI            1.42633    0.58695      2.430    0.01510 *


If we have mean of TUCE and PSI=1, what is the marginal effect of GPA on Pr(GRADE=1)?

pnorm(-7.45231+1.62581*mean(GPA)+0.05173*mean(TUCE)+1.42633*1)*1.62581
dnorm(-7.45231+1.62581*mean(GPA)+0.05173*mean(TUCE)+1.42633*1)*1.62581


I'm wondering which one of pnorm and dnorm is correct to use if you want the marginal effect.

In a probit model, $\Pr(y_i=1 \vert x_i,z_i,t_i)=\Phi(\alpha +\beta x_i+\gamma z_i + \psi t_i),$ where $\Phi()$ is the standard normal cdf. The marginal effect is the derivative of that function (using the chain rule): $$\frac{\partial \Pr(y_i=1 \vert x_i,z_i,t_i)}{\partial x}=\varphi(\alpha +\beta x_i+\gamma z_i + \psi t_i)\cdot\beta,$$ where $\varphi()$ is the standard normal pdf. I believe that corresponds to dnorm in R. $\Phi()$ is pnorm.
• Of course the marginal effects can be greater than $1$: the formula in this answer shows you need only make $\beta$ sufficiently large. Since you're using R it's easy to try it out: simulate some data using a model with a huge value of $\beta$, do the fit, and compute the marginal effect. One way to make $\beta$ large in practice is to re-express $x$ in large units, such as kilograms rather than grams. Bear in mind that a marginal effect is a rate of change: it is a probability per unit of $x$, not a probability itself. Marginal effects can be (and often are) negative.
• Many folks expect ME<1 because they vaguely remember from calculus that the derivative is the approximate change in $y$ for a one-unit change in $x$. Because $y$ is a probability bounded between 0 and 1, the change in $y$ certainly cannot exceed 1. But remember that the derivative at a point is the slope of the tangent line of the curve at that point. The approximation of the curve by a tangent line is good close to the point where the tangent is drawn, but if the slope of the curve is changing quickly, this approximation is not very good further away from the point. Dec 6, 2012 at 21:19
• In this case, you may get a better approximation by calculating the difference $\Phi(\alpha + \beta (x+1)+ \gamma z + \psi t)-\Phi(\alpha + \beta (x)+ \gamma z + \psi t)$. This is especially useful for dummy variables. Dec 6, 2012 at 21:28