Getting Started in
Logit and Ordered
Logit Regression
(ver. 3.1 beta)
Oscar Torres-Reyna
Data Consultant
otorres@princeton.edu
http://dss.princeton.edu/training/
PU/DSS/OTR
Logit model
Use logit models whenever your dependent
variable is binary (also called dummy) which
takes values 0 or 1.
Logit regression is a nonlinear regression model
that forces the output (predicted values) to be
either 0 or 1.
Logit models estimate the probability of your
dependent variable to be 1 (Y=1). This is the
probability that some event happens.
PU/DSS/OTR
Logit model
From Stock & Watson, key concept 9.3. The logit model is:
Pr(Y = 1 | X 1, X 2,... X k ) = F ( 0 + 1 X 1 + 2 X 2 + ... + K X K )
Pr(Y = 1 | X 1, X 2,... X k ) =
1 + e ( 0 + 1 X 1+ 2 X 2+...+ K X K )
1
Pr(Y = 1 | X 1, X 2,... X k ) =
1
1 + ( 0 + 1 X 1+ 2 X 2+...+ K X K )
e
Logit and probit models are basically the same, the difference is in the
distribution:
Logit Cumulative standard logistic distribution (F)
Probit Cumulative standard normal distribution ()
Both models provide similar results.
PU/DSS/OTR
Logit model
In Stata you run the model as follows:
Dependent
variable
. logit
Independent
variable(s)
y_bin x1 x2 x3 x4 x5 x6 x7
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
0:
1:
2:
3:
4:
5:
log
log
log
log
log
log
likelihood
likelihood
likelihood
likelihood
likelihood
likelihood
=
=
=
=
=
=
-251.9712
-192.3814
-165.56847
-160.76756
-160.44413
-160.442
Logistic regression
Log likelihood =
Number of obs
LR chi2( 7)
Prob > chi2
Pseudo R2
-160.442
y_bin
Coef.
x1
x2
x3
x4
x5
x6
x7
_cons
.2697623
-.2500592
.1150445
.3649722
-.3131214
-.1361499
3.206987
1.58614
Std. Err.
.1759677
.1459846
.1486181
.153434
.1467796
.1566993
.3631481
.39927
1.53
-1.71
0.77
2.38
-2.13
-0.87
8.83
3.97
P>|z|
0.125
0.087
0.439
0.017
0.033
0.385
0.000
0.000
=
=
=
490
183.06
0.0000
0.3633
[95% Conf. Interval]
-.0751281
-.5361837
-.1762417
.0642472
-.6008042
-.4432749
2.495229
.803585
Note: 1 failure and 1 success completely determined.
Logit coefficients are in log-odds units
and cannot be read as regular OLS
coefficients. To interpret you need to
estimate the predicted probabilities of
Y=1 (see next page)
If this number is < 0.05
then your model is ok. This
is a test to see whether all
the coefficients in the
model are different than
zero.
Test the hypothesis that each coefficient is different
from 1. To reject this, the t-value has to be higher
than 1.96 (for a 95% confidence). If this is the case
then you can say that the variable has a significant
influence on your dependent variable (y). The higher
the z the higher the relevance of the variable.
.6146527
.0360653
.4063306
.6656973
-.0254386
.1709752
3.918744
2.368695
Two-tail p-values test the
hypothesis that each
coefficient is different from 0.
To reject this, the p-value
has to be lower than 0.05
(95%, you could choose also
an alpha of 0.10), if this is
the case then you can say
that the variable has a
significant influence on your
dependent variable (y)
PU/DSS/OTR
Logit: predicted probabilities
After running the model:
logit y_bin x1 x2 x3 x4 x5 x6 x7
Type
predict y_bin_hat
/*These are the predicted probabilities of Y=1 */
Here are the estimations for the first five cases, type:
browse y_bin x1 x2 x3 x4 x5 x6 x7 y_bin_hat
Predicted probabilities
To estimate the probability of Y=1 for the first row, replace the values of X
into the logit regression equation. For the first case, given the values of X
there is 79% probability that Y=1:
Pr(Y = 1 | X 1 , X 2 ,... X 7 ) =
1 + (1.58+ 0.26 X 1 .25 X 2 + 0.11 X 3 + 0.36 X 4 0.31 X 5 0.13 X 6 +3.20 X 7 )
e
= 0.7841014
PU/DSS/OTR
Logit: Odds ratio
You can request odds ratio rather than logit coefficients by adding the option or (after comma)
Dependent
variable
. logit
Getting
odds ratios
Independent
variable(s)
y_bin x1 x2 x3 x4 x5 x6 x7, or
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
0:
1:
2:
3:
4:
5:
log
log
log
log
log
log
likelihood
likelihood
likelihood
likelihood
likelihood
likelihood
=
-251.9712
=
-192.3814
= -165.56847
= -160.76756
= -160.44413
=
-160.442
Logistic regression
Log likelihood =
Number of obs
LR chi2(7)
Prob > chi2
Pseudo R2
-160.442
y_bin
Odds Ratio
x1
x2
x3
x4
x5
x6
x7
1.309653
.7787547
1.121923
1.440474
.7311612
.8727118
24.70453
Std. Err.
.2304567
.1136862
.1667381
.2210176
.1073196
.1367534
8.971405
1.53
-1.71
0.77
2.38
-2.13
-0.87
8.83
P>|z|
0.125
0.087
0.439
0.017
0.033
0.385
0.000
If the OR > 1 then the odds of Y=1 increases
If the OR < 1 then the odds of Y=1 decreases
Look at the sign of the logit coefficients
=
=
=
490
183.06
0.0000
0.3633
[95% Conf. Interval]
.9276246
.5849765
.8384153
1.066356
.5483705
.6419307
12.12451
Note: 1 failure and 1 success completely determined.
They represent the odds of Y=1 when X
increases by 1 unit. These are the exp(logit
coeff).
If this number is < 0.05 then
your model is ok. This is a
test to see whether all the
coefficients in the model are
different than zero.
Test the hypothesis that each coefficient is different
from 0. To reject this, the t-value has to be higher
than 1.96 (for a 95% confidence). If this is the case
then you can say that the variable has a significant
influence on your dependent variable (y). The higher
the z the higher the relevance of the variable.
1.849014
1.036724
1.501299
1.945847
.9748823
1.186461
50.33718
Two-tail p-values test the
hypothesis that each coefficient
is different from 0. To reject this,
the p-value has to be lower than
0.05 (95%, you could choose
also an alpha of 0.10), if this is
the case then you can say that
the variable has a significant
influence on your dependent
variable (y)
PU/DSS/OTR
Predicted probabilities and marginal effects
For the latest procedure see the following
document:
http://dss.princeton.edu/training/Margins.pdf
The procedure using prvalue in the following
pages does not work with Stata 13.
PU/DSS/OTR
Ordinal logit
When a dependent variable has more than two
categories and the values of each category have a
meaningful sequential order where a value is
indeed higher than the previous one, then you
can use ordinal logit.
Here is an example of the type of variable:
. tab y_ordinal
Agreement
level
Freq.
Percent
Disagree
Neutral
Agree
190
104
196
38.78
21.22
40.00
Total
490
100.00
Cum.
38.78
60.00
100.00
PU/DSS/OTR
Ordinal logit: the setup
Dependent
variable
Independent
variable(s)
. ologit
y_ordinal x1 x2 x3 x4 x5 x6 x7
Iteration
Iteration
Iteration
Iteration
Iteration
0:
1:
2:
3:
4:
log
log
log
log
log
likelihood
likelihood
likelihood
likelihood
likelihood
=
=
=
=
=
-520.79694
-475.83683
-458.82354
-458.38223
-458.38145
Ordered logistic regression
Number of obs
LR chi2( 7)
Prob > chi2
Pseudo R2
Log likelihood = -458.38145
Logit coefficients
are in log-odds
units and cannot be
read as regular
OLS coefficients.
To interpret you
need to estimate
the predicted
probabilities of Y=1
(see next page)
y_ordinal
Coef.
Std. Err.
x1
x2
x3
x4
x5
x6
x7
.220828
-.0543527
.1066394
.2247291
-.2920978
.0034756
1.566211
.0958182
.0899153
.0925103
.0913585
.0910174
.0860736
.1782532
2.30
-0.60
1.15
2.46
-3.21
0.04
8.79
/cut1
/cut2
-.5528058
.5389237
.103594
.1027893
P>|z|
0.021
0.546
0.249
0.014
0.001
0.968
0.000
=
=
=
=
490
124.83
0.0000
0.1198
If this number is < 0.05 then
your model is ok. This is a
test to see whether all the
coefficients in the model are
different than zero.
[95% Conf. Interval]
.0330279
-.2305834
-.0746775
.0456697
-.4704886
-.1652255
1.216841
.4086282
.1218779
.2879563
.4037885
-.113707
.1721767
1.915581
-.7558463
.3374604
-.3497654
.740387 Two-tail p-values test the
hypothesis that each
Note: 1 observation completely determined. Standard errors questionable.
coefficient is different from
0. To reject this, the p-value
has to be lower than 0.05
Test the hypothesis that each coefficient is different
(95%, you could choose
Ancillary parameters to define the
from 1. To reject this, the t-value has to be higher
also an alpha of 0.10), if this
changes among categories (see next
than 1.96 (for a 95% confidence). If this is the case
is the case then you can say
page)
then you can say that the variable has a significant
that the variable has a
influence on your dependent variable (y). The higher
significant influence on your
the z the higher the relevance of the variable.
dependent variable (y)
PU/DSS/OTR
Ordinal logit: predicted probabilities
Following Hamilton, 2006, p.279, ologit estimates a score, S, as a linear function of the
Xs:
S = 0.22X1 - 0.05X2 + 0.11X3 + 0.22X4 - 0.29X5 + 0.003X6 + 1.57X7
Predicted probabilities are estimated as:
P(y_ordinal=disagree) = P(S + u _cut1)
= P(S + u -0.5528058)
P(y_ordinal=neutral) = P(_cut1 < S + u _cut2) = P(-0.5528058 < S + u 0.5389237)
P(y_ordinal=agree) = P(_cut2 < S + u )
= P(0.5389237 < S + u)
To estimate predicted probabilities type predict right after ologit model. Unlike
logit, this time you need to specify the predictions for all categories in the ordinal
variable (y_ordinal), type:
predict disagree neutral agree
PU/DSS/OTR
Ordinal logit: predicted probabilities
To read these probabilities, as an example, type
browse country disagree neutral agree if year==1999
In 1999 there is a 62% probability of agreement in Australia compared to 58% probability in
disagreement in Brazil while Denmark seems to be quite undecided.
PU/DSS/OTR
Predicted probabilities and marginal effects
For the latest procedure see the following
document:
http://dss.princeton.edu/training/Margins.pdf
The procedure using prvalue in the following
pages does not work with Stata 13.
PU/DSS/OTR
Predicted probabilities: using prvalue
After runing ologit (or logit) you can use the command prvalue to estimate the probabilities for
each event.
Prvalue is a user-written command, if you do not have it type findit spost , select
spost9_ado from http://www.indiana.edu/~jslsoc/stata and click on (click
here to install)
If you type prvalue without any option you will get the probabilities for each category when all
independent values are set to their mean values.
. prvalue
ologit: Predictions for y_ordinal
Confidence intervals by delta method
Pr(y=Disagree|x): 0.3627
Pr(y=Neutral|x): 0.2643
Pr(y=Agree|x):
0.3730
x=
x1
2.0020408
x2
-8.914e-10
95% Conf. Interval
[ 0.3159,
0.4094]
[ 0.2197,
0.3090]
[ 0.3262,
0.4198]
x3
-1.620e-10
x4
-1.212e-10
x5
2.539e-09
x6
-9.744e-10
x7
-6.040e-10
You can also estimate probabilities for a particular profile (type help prvalue for more details).
. prvalue , x(x1=1 x2=3 x3=0 x4=-1 x5=2 x6=2 x6=9 x7=4)
ologit: Predictions for y_ordinal
Confidence intervals by delta method
Pr(y=Disagree|x): 0.0029
Pr(y=Neutral|x): 0.0055
Pr(y=Agree|x):
0.9916
x=
x1
1
x2
3
x3
0
95% Conf. Interval
[-0.0033,
0.0090]
[-0.0061,
0.0172]
[ 0.9738,
1.0094]
x4 x5 x6 x7
-1
2
9
4
For more info go to: http://www.ats.ucla.edu/stat/stata/dae/probit.htm
PU/DSS/OTR
Predicted probabilities: using prvalue
If you want to estimate the impact on the probability by changing values you can use the options
save and dif (type help prvalue for more details)
. prvalue , x(x1=1) save
Probabilities when x1=1 and all other
independent variables are held at their mean
values. Notice the save option.
ologit: Predictions for y_ordinal
Confidence intervals by delta method
Pr(y=Disagree|x): 0.3837
Pr(y=Neutral|x): 0.2641
Pr(y=Agree|x):
0.3522
x1
1
x=
x2
-8.914e-10
95% Conf. Interval
[ 0.3098,
0.4576]
[ 0.2195,
0.3087]
[ 0.2806,
0.4238]
x3
-1.620e-10
x4
-1.212e-10
x5
2.539e-09
. prvalue , x(x1=2) dif
Confidence intervals by delta method
Current=
Saved=
Diff=
x1
2
1
1
x2
-8.914e-10
-8.914e-10
0
Saved
0.3837
0.2641
0.3522
Change
-0.0210
0.0003
0.0208
x3
-1.620e-10
-1.620e-10
0
x7
-6.040e-10
Probabilities when x1=2 and all other
independent variables are held at their mean
values. Notice the dif option.
ologit: Change in Predictions for y_ordinal
Current
Pr(y=Disagree|x): 0.3627
Pr(y=Neutral|x): 0.2643
Pr(y=Agree|x):
0.3730
x6
-9.744e-10
95% CI for Change
[-0.0737,
0.0317]
[-0.0026,
0.0031]
[-0.0299,
0.0714]
x4
-1.212e-10
-1.212e-10
0
x5
2.539e-09
2.539e-09
0
x6
-9.744e-10
-9.744e-10
0
x7
-6.040e-10
-6.040e-10
0
Here you can see the impact of x1 when it changes from 1 to 2.
NOTE: You can do the
same with logit or probit
models
For example, the probability of y=Agree goes from 35% to 37% when
x1 changes from 1 to 2 (and all other independent variables are held
at their constant mean values.
PU/DSS/OTR
Useful links / Recommended books
DSS Online Training Section http://dss.princeton.edu/training/
UCLA Resources to learn and use STATA http://www.ats.ucla.edu/stat/stata/
DSS help-sheets for STATA http://dss/online_help/stats_packages/stata/stata.htm
Introduction to Stata (PDF), Christopher F. Baum, Boston College, USA. A 67-page description of
Stata, its key features and benefits, and other useful information.
http://fmwww.bc.edu/GStat/docs/StataIntro.pdf
STATA FAQ website http://stata.com/support/faqs/
Princeton DSS Libguides http://libguides.princeton.edu/dss
Books
Introduction to econometrics / James H. Stock, Mark W. Watson. 2nd ed., Boston: Pearson Addison
Wesley, 2007.
Data analysis using regression and multilevel/hierarchical models / Andrew Gelman, Jennifer Hill.
Cambridge ; New York : Cambridge University Press, 2007.
Econometric analysis / William H. Greene. 6th ed., Upper Saddle River, N.J. : Prentice Hall, 2008.
Designing Social Inquiry: Scientific Inference in Qualitative Research / Gary King, Robert O.
Keohane, Sidney Verba, Princeton University Press, 1994.
Unifying Political Methodology: The Likelihood Theory of Statistical Inference / Gary King, Cambridge
University Press, 1989
Statistical Analysis: an interdisciplinary introduction to univariate & multivariate methods / Sam
Kachigan, New York : Radius Press, c1986
Statistics with Stata (updated for version 9) / Lawrence Hamilton, Thomson Books/Cole, 2006
PU/DSS/OTR