Written and maintained by CASRAI Editorial Board
Last updated
What is probit? Definition in one paragraph
Probit is a regression model for a binary outcome (coded 0 or 1) that assumes the probability of a positive outcome is determined by the standard normal cumulative distribution function. In plain terms, you combine your predictors into a single number, the linear index, and the normal curve converts that number into a probability between 0 and 1. The word is a contraction of “probability unit”, suggested by Bliss in 1934 for dose-response work in bioassay; today the term usually means the binary-outcome regression model used across the social, health and economic sciences.
The probit formula, with every symbol explained
For observation j with predictor vector xj and coefficient vector b, the model is:
Pr(yj = 1 | xj) = Φ(xjb)
- yj: the binary outcome for observation j, coded 0 or 1.
- xjb: the linear index, b0 + b1x1j + b2x2j + … The text below calls it the z-index.
- Φ: the cumulative distribution function of the standard normal distribution (mean 0, standard deviation 1). It maps any real number to a probability.
The coefficients are estimated by maximum likelihood. Stata’s reference manual writes the log-likelihood as:
ln L = Σj in S wj ln Φ(xjb) + Σj not in S wj ln{1 – Φ(xjb)}
- S: the set of observations with a positive outcome (y = 1); the second sum runs over the rest (y = 0).
- wj: the optional weight for observation j (set to 1 when unweighted).
- Each positive outcome contributes the log of its predicted probability; each zero contributes the log of one minus that probability. Maximum likelihood picks the b that makes the observed 0/1 pattern most probable.
Probit and logit differ only in the curve: the probit link corresponds to the normal CDF, the logit link to the logistic CDF. For the logistic version, see logistic regression in R; for outcomes with more than two categories, see multinomial logistic regression.
Worked example with real numbers
The Stata manual’s probit example uses the 1978 automobile data: 74 cars, of which 22 are foreign. It models the probability that a car is foreign (foreign = 1) from its weight (in pounds) and fuel economy (miles per gallon). The published coefficients are:
| Term | Coefficient | Std. error | z | p |
|---|---|---|---|---|
| weight | -0.0023355 | 0.0005661 | -4.13 | 0.000 |
| mpg | -0.1039503 | 0.0515689 | -2.02 | 0.044 |
| constant | 8.275464 | 2.554142 | 3.24 | 0.001 |
Model fit as printed: N = 74, LR chi-square(2) = 36.38 (p < 0.0001), log likelihood = -26.844189, pseudo R2 = 0.4039.
Predicted probability for a 3,000 lb car at 20 mpg.
- z-index = 8.275464 – 0.0023355 x 3000 – 0.1039503 x 20
- 0.0023355 x 3000 = 7.0065 and 0.1039503 x 20 = 2.079006
- z-index = 8.275464 – 7.0065 – 2.079006 = -0.810042
- Pr(foreign = 1) = Φ(-0.8100) = 0.209, about 21%.
A 2,000 lb car at 30 mpg. z-index = 8.275464 – 4.671 – 3.118509 = 0.485955, so Φ(0.486) = 0.687, about 69%. A 4,000 lb car at 15 mpg: z-index = 8.275464 – 9.342 – 1.559255 = -2.625791, so Φ(-2.626) = 0.004, under 1%. The negative signs on both coefficients say that heavier, thirstier cars are less likely to be foreign in this 1978 sample. Results use the coefficients exactly as printed; small differences in the last digit can come from rounding.
Interpretation: what the result means
Two readings are available. The sign of a coefficient gives the direction: a positive coefficient raises the z-index and therefore the probability; a negative one lowers it. The z-index itself converts to a probability through the normal CDF. Because Φ is a curve rather than a line, one unit of a predictor does not change the probability by a fixed amount: the same coefficient moves the probability more near 0.5 than in the tails.
| z-index | Probability Φ(z) | Reading |
|---|---|---|
| -2.626 | 0.004 | Outcome very unlikely |
| -1.000 | 0.159 | Unlikely |
| -0.810 | 0.209 | The 3,000 lb, 20 mpg car above |
| 0.000 | 0.500 | Even odds |
| 0.486 | 0.687 | The 2,000 lb, 30 mpg car above |
| 1.960 | 0.975 | Outcome very likely |
The z column printed beside each coefficient is a separate quantity: it is the coefficient divided by its standard error, used for the significance test, not the z-index.
Assumptions and common mistakes
- The outcome must be binary. Stata fits a dichotomous dependent variable coded 0/1, treating zero and non-zero as the two classes. Make sure the coding is what you intend before fitting.
- Normal link and independent errors. The model assumes the normal CDF as the link, and the statsmodels documentation notes the models assume independently and identically distributed errors.
- Perfect prediction. If a predictor perfectly predicts success or failure, Stata’s probit omits that variable and its observations rather than reporting an infinite coefficient.
- Wrong default link. In R, glm with family = binomial uses the logit link by default. Probit must be requested explicitly.
- Reading coefficients as probability changes. The coefficient is a change in the z-index, not in the probability.
- Comparing probit and logit coefficients directly. They sit on different scales because the underlying curves differ, so compare predicted probabilities instead.
To compare nested probit models, use a likelihood-ratio test; see the likelihood-ratio test for nested models. Probit is one of the standard tools in applied econometrics.
How to report a probit result
Report the following from the output, as the Stata example shows them: the sample size N, each coefficient with its standard error, z statistic and p-value, the likelihood-ratio chi-square with its degrees of freedom and p-value, and the pseudo R2. State the outcome coding and the link, and name the software. Example wording based on the worked example: “A probit model predicting whether a car was foreign (N = 74) found that weight (b = -0.0023, SE = 0.0006, z = -4.13, p < .001) and fuel economy (b = -0.104, SE = 0.052, z = -2.02, p = .044) were negatively associated with the outcome; LR chi-square(2) = 36.38, p < .001, pseudo R2 = .40.” Follow your journal’s style guide for formatting.
How to calculate it in Excel, R or Python
Excel: the probit transform and the normal CDF
Excel does not fit probit models natively, but it provides the two functions the formula needs. NORM.S.INV(probability) returns the inverse of the standard normal cumulative distribution (the probit of a proportion) and returns #NUM! if the probability is 0 or less, or 1 or more. NORM.S.DIST(z, TRUE) converts a z-index back to a probability.
=NORM.S.DIST(-0.810042, TRUE) // 0.209
=NORM.S.INV(0.209) // about -0.81
R
fit <- glm(foreign ~ weight + mpg,
family = binomial(link = "probit"),
data = auto)
summary(fit)
predict(fit, newdata = data.frame(weight = 3000, mpg = 20),
type = "response")
The R documentation lists probit among the binomial links, corresponding to the normal CDF; the default is logit.
Python (statsmodels)
import statsmodels.api as sm
X = sm.add_constant(df[["weight", "mpg"]])
res = sm.Probit(df["foreign"], X).fit() # maximum likelihood
print(res.summary())
Frequently asked questions
What is probit?
A regression model for a 0/1 outcome in which the probability of a 1 is the standard normal CDF of a linear combination of predictors, estimated by maximum likelihood.
What is the probit formula?
Pr(y = 1 | x) = Φ(xb), where Φ is the standard normal cumulative distribution function and xb is the linear index.
How is probit different from logit?
Only the link differs: the probit link uses the normal CDF and the logit link the logistic CDF. In R both are options of the binomial family.
Where does the word probit come from?
It is a contraction of “probability unit”, suggested by Bliss (1934) in connection with bioassay.
Sources
- Stata manual, [R] probit: https://www.stata.com/manuals/rprobit.pdf (checked 2026-10-29).
- R documentation, family {stats}: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/family.html (checked 2026-10-29).
- Microsoft Support, NORM.S.INV function: https://support.microsoft.com/en-us/office/norm-s-inv-function-d6d556b4-ab7f-49cd-b526-5a20918452b1 (checked 2026-10-29).
- statsmodels documentation, Probit: https://www.statsmodels.org/stable/generated/statsmodels.discrete.discrete_model.Probit.html (checked 2026-10-29).
- Bliss, C. I. (1934). The method of probits. Science, 79, 38-39. https://doi.org/10.1126/science.79.2037.38.
- Aldrich, J. H., & Nelson, F. D. (1984). Linear Probability, Logit, and Probit Models. Sage. https://doi.org/10.4135/9781412984744.








