Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have read the Stata manual but I am still having trouble understanding how to interpret these results. I am looking to determine how each parameter affects the outcome given a 1-unit change.

The code I am using in Stata is as follows:

probit hhaffbyinvest ///
femintmig femdommig maleintmig maledommig ///
femeduc maleeduc lifecycl ///
fmeduc members ratio_workers ///
hmale ///
commun1 commun2 ///
if (fem1stmig >= 1991 | male1stmig >= 1991) & (femhomenow == 1 | malehomenow == 1) ///
& country == 8

est store guat

hhaffbyinvest is whether a household has reported investing remittances. The line below that is the migration experiences of male and female heads of household, then education, lifecycle of household, size of household, etc...

I am running this in three countries. The results I get are as follows:

probit analysis

So, for example, how do I interpret 1.4275 for femintmig (a female head or spouse migrated internationally) with respect to the binary dependent variable (household invested remittances)? This is the first column in Guatemala.

share|improve this question
up vote 4 down vote accepted

So as to interpret the results of a probit model, you have to compute the marginal effects. The marginal effect of an independent variable is the change in the probability of observing a certain outcome, if the independent variable changes by one unit, whereas all the other variables remain constant. In Stata, marginal effects can be computed via the margins command.

Have a look a the following model, which explains union membership by the worker's age, the fact of being married and the fact of having a college degree:

sysuse nlsw88, clear
probit union age i.married i.collgrad
margins, dydx(*)

You will end up with the following output:

Average marginal effects                          Number of obs   =       1878
Model VCE    : OIM

Expression   : Pr(union), predict()
dy/dx w.r.t. : age 1.married 1.collgrad

             |            Delta-method
             |      dy/dx   Std. Err.      z    P>|z|     [95% Conf. Interval]
         age |   .0014378   .0032566     0.44   0.659     -.004945    .0078207
   1.married |  -.0469362   .0210713    -2.23   0.026    -.0882352   -.0056372
  1.collgrad |   .0978039   .0242385     4.04   0.000     .0502973    .1453105
Note: dy/dx for factor levels is the discrete change from the base level.

This means that if age increases by 1 year, the probability of being a union member will increase by 0.0014378 * 100 = 0.14378 percentage points. Being married decreases the probability of union membership by -4.69362 percentage points and having a college degree increases the probability by 9.78039 percentage points.

share|improve this answer
Does this also mean that a married college graduate that is one year older will increase the probability by 5.23055 (9.78039 - 4.69362 + 0.14378)? – cadamt Nov 7 '11 at 15:57
No. I have edited my response. Marginal effects have a "ceteris paribus" interpretation. They tell what happens if a given variable varies, while all the other variables remain unchanged. – user5644 Nov 7 '11 at 16:07
I can't read Stata, but it's worth noting that the change in probability cannot be constant regardless of the starting point for a covariate in probit regression. Eg, the change in probability from 1 to 2, will not = the change in p from 2 to 3. Rather, a one-unit change in a covariate will change beta z's; computing the cdf at the before & after z's, & subtracting will give you the change in probability associated w/ moving b/t those two specific covariate values. I find this answer a little confusingly worded in that it makes it seem the effect on the probability is constant. – gung Jul 22 '12 at 3:03
@gung. Good comment but (if remember correctly) these are the marginal effects at the means of the variables – drstevok Oct 21 '14 at 18:21

In an OLS model, the marginal effect is the same for each observation (in particular, the marginal effect is the coefficient on the dummy variable). But in a nonlinear model -- including Probit -- the marginal effect is conditional on the X's of the particular observation.

Think about the underlying predicted values. When calculating a predicted value from a Probit regression, the coefficients you see get multiplied by the respective X's (for each observation) and added. Then, the "X_i * b" gets put into the Probit function.

For intuition on how the marginal effect works, do the following:

  1. Run your probit model
  2. predict yhat
  3. replace femintmig=0 (perhaps making a backup first)
  4. predict yhat0
  5. replace femintmig=1
  6. predict yhat1
  7. gen margeffect = yhat1 - yhat0
  8. browse yhat* margeffect

Now, the key issue is how to turn the column of margeffect observations into a single number for you to put into a table or report. This is a matter of interpretation/application to your specific case. There is no "right way" to do it.

lejohn's solution takes the average of the margeffect column. Another option is to calculate the mean of each X. Then calculate the marginal effect at "X bar" (which is what the old mfx command used to do).

share|improve this answer
Note that margins can be used to calculate the marginal effect at the mean of each x variable: margins, dydx(*) atmeans . However, this might not be quite meaningful for qualitative variables. More generally, with the at() option you can fix the x variables at any arbitrary value. – user5644 Nov 8 '11 at 16:42

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.