3.4 Coefficient Interpretations

Model is linear in the log of the odds

  • The logit ≡ log of the odds

\[Odds = \Omega = \frac{\Pr(y = 1)}{\Pr(y = 0)}\]

  • The logit model is linear in the logit

\[\ln\left[\frac{\Pr(y = 1\,|\,\mathbf{x})}{1 - \Pr(y = 1\,|\,\mathbf{x})}\right] = \ln\Omega(\mathbf{x}) = \mathbf{x}\boldsymbol{\beta} = \beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + \beta_{3}x_{3}\]

For a unit change in xk, the logit is expected to change by βk, holding other variables constant

  • Substantively, what does a change of βk logits mean?
    • To understand the change in logit, we transform it into odds

Change logit to odds and compute odds ratio (ORs)

  • Take the exponential of the logit with a focus on x3:

\[\begin{aligned} \Omega(\mathbf{x}) &= \exp[\ln\Omega(\mathbf{x})] = \exp(\mathbf{x}\boldsymbol{\beta}) \\ &= e^{\beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + \beta_{3}x_{3}} \\ &= e^{\beta_{0}}e^{\beta_{1}x_{1}}e^{\beta_{2}x_{2}}{\color{red}{e^{\beta_{3}x_{3}}}} = \Omega(\mathbf{x}, x_{3}) \end{aligned}\]

  • Let x3 change by 1

\[\begin{aligned} \Omega(\mathbf{x}, x_{3} + 1) &= e^{\beta_{0}}e^{\beta_{1}x_{1}}e^{\beta_{2}x_{2}}{\color{green}{e^{\beta_{3}(x_{3} + 1)}}} \\ &= e^{\beta_{0}}e^{\beta_{1}x_{1}}e^{\beta_{2}x_{2}}{\color{red}{e^{\beta_{3}x_{3}}}}{\color{blue}{e^{\beta_{3}}}} \end{aligned}\]

  • The odds ratio

\[\frac{\text{Ending } \Omega}{\text{Starting } \Omega} = \frac{\Omega(\mathbf{x}, x_{3} + 1)}{\Omega(\mathbf{x}, x_{3})} = \frac{e^{\beta_{0}}e^{\beta_{1}x_{1}}e^{\beta_{2}x_{2}}{\color{red}{e^{\beta_{3}x_{3}}}}{\color{blue}{e^{\beta_{3}}}}}{e^{\beta_{0}}e^{\beta_{1}x_{1}}e^{\beta_{2}x_{2}}{\color{red}{e^{\beta_{3}x_{3}}}}} = {\color{blue}{e^{\beta_{3}}}}\]

For a unit increase in xk, the odds increase/decrease by a factor of OR holding other variables constant

Interpreting odds ratios (ORs)

  • OR is a multiplicative coefficient:

    For a unit increase in xk, the odds increase/decrease by a factor of OR holding other variables constant

    • 1 indicates no effect (e.g., 0.55 * 1 = 0.55)
    • For exp(βk)>1, the odds are exp(βk) times larger
      • Thus, a positive effect
    • For exp(βk)<1, the odds are exp(βk) times smaller
      • Thus, a negative effect
  • Magnitudes of positive and negative ORs are compared by taking the inverse of the negative effect (or vice versa)

    • A positive OR=2 (i.e., 2/1) has same magnitude as “negative” OR=0.5 (i.e., 1/2)
    • An OR=0.1 (i.e.,1/10) is much larger than OR=2 (i.e., 2/1)
      • The equivalent positive effect size is OR=10 (i.e., 10/1)
  • You should code your DV in the way that makes it more natural to interpret

    • E.g., You can model the odds of voting or the odds of not voting

Chart of 2020 election vote shares against the percent of residents not fully vaccinated by state: states with larger vote shares for Trump have more residents not fully vaccinated.

Example of what not to do. If your research question is about vaccination rates, don’t code DV as not vaccinated

*Also use a normal y-axis label…

Logit example: DV = support marijuana legalization

  • Data: 2021 and 2022 General Social Survey (GSS)
  • DV: Support for marijuana legalization
use "https://tdmize.github.io/data/data/cda_gss22", clear
(GSS 1972-2022 CDA - Categorical Data Analysis | 2024-12-03)
drop if missing(grass, age, conserv, faminc, college, woman, race4)
(37,924 observations deleted)
keep if year >= 2020 & year <= 2023
(30,695 observations deleted)
fre grass
grass -- should marijuana be made legal
-----------------------------------------------------------------------
                          |      Freq.    Percent      Valid       Cum.
--------------------------+--------------------------------------------
Valid   0 Not be legal    |        930      24.66      24.66      24.66
        1 Should be legal |       2841      75.34      75.34     100.00
        Total             |       3771     100.00     100.00           
-----------------------------------------------------------------------
recode grass 2 = 0
(0 changes made to grass)
lab def glab 0"not be legal" 1 "should be legal"
lab val grass glab
fre grass
grass -- should marijuana be made legal
-----------------------------------------------------------------------
                          |      Freq.    Percent      Valid       Cum.
--------------------------+--------------------------------------------
Valid   0 not be legal    |        930      24.66      24.66      24.66
        1 should be legal |       2841      75.34      75.34     100.00
        Total             |       3771     100.00     100.00           
-----------------------------------------------------------------------
library(haven)           # import Stata data and labels
library(dplyr)           # data manipulation
library(sjmisc)          # frequency tables
library(questionr)       # odds ratios

gss <- read_dta("https://tdmize.github.io/data/data/cda_gss22.dta")

# Drop any missing data on model vars; keep 2021 and 2022
gss <- gss[complete.cases(gss[c("grass", "age", "conserv", "faminc", "college",
  "woman", "race4")]), ]
gss <- gss |> filter(year >= 2020, year <= 2023)
frq(gss, grass)
should marijuana be made legal (grass) <numeric> 
# total N=3771 valid N=3771 mean=0.75 sd=0.43

Value |           Label |    N | Raw % | Valid % | Cum. %
---------------------------------------------------------
    0 |    Not be legal |  930 | 24.66 |   24.66 |  24.66
    1 | Should be legal | 2841 | 75.34 |   75.34 | 100.00
 <NA> |            <NA> |    0 |  0.00 |    <NA> |   <NA>
  • IVs: Age, conservative political views (binary), household income, college degree, gender, race-ethnicity
  • In Stata, use the logit command
    • In R, use glm and specify family=binomial(link=“logit”)
* binary logit model; or option for odds ratios
logit grass c.age i.conserv c.faminc i.college i.woman i.race4, or
Iteration 0:  Log likelihood = -2106.4432  
Iteration 1:  Log likelihood = -1837.2697  
Iteration 2:  Log likelihood = -1824.9541  
Iteration 3:  Log likelihood = -1824.9149  
Iteration 4:  Log likelihood = -1824.9149  

Logistic regression                                     Number of obs =  3,771
                                                        LR chi2(8)    = 563.06
                                                        Prob > chi2   = 0.0000
Log likelihood = -1824.9149                             Pseudo R2     = 0.1337

-------------------------------------------------------------------------------
        grass | Odds ratio   Std. err.      z    P>|z|     [95% conf. interval]
--------------+----------------------------------------------------------------
          age |      0.966      0.002  -13.593   0.000        0.961       0.971
              |
      conserv |
Conservative  |      0.250      0.021  -16.217   0.000        0.212       0.296
       faminc |      1.002      0.001    1.535   0.125        0.999       1.005
              |
      college |
College De..  |      0.904      0.082   -1.108   0.268        0.756       1.081
              |
        woman |
       Women  |      0.870      0.073   -1.662   0.096        0.739       1.025
              |
        race4 |
       Black  |      0.790      0.110   -1.695   0.090        0.602       1.037
       Other  |      0.363      0.064   -5.738   0.000        0.257       0.513
    Hispanic  |      0.289      0.035  -10.135   0.000        0.228       0.368
              |
        _cons |     47.068      8.722   20.785   0.000       32.734      67.679
-------------------------------------------------------------------------------
Note: _cons estimates baseline odds.
# Treat binary/nominal variables as factors using their value labels
gss <- gss |>
  mutate(conserv = as_factor(conserv), college = as_factor(college),
    woman = as_factor(woman), race4 = as_factor(race4))

glm1 <- glm(grass ~ age + conserv + faminc + college + woman + race4,
  data = gss, family = binomial(link = "logit"))

odds.ratio(glm1, level = .95)
                            OR    2.5 %  97.5 %         p    
(Intercept)           47.06779 32.88579 68.0070 < 2.2e-16 ***
age                    0.96563  0.96074  0.9705 < 2.2e-16 ***
conservConservative    0.25013  0.21140  0.2955 < 2.2e-16 ***
faminc                 1.00199  0.99947  1.0046   0.12466    
collegeCollege Degree  0.90384  0.75589  1.0811   0.26789    
womanWomen             0.87027  0.73848  1.0249   0.09644 .  
race4Black             0.79048  0.60431  1.0413   0.08998 .  
race4Other             0.36340  0.25801  0.5157 9.548e-09 ***
race4Hispanic          0.28922  0.22748  0.3676 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Examples odds ratio interpretations in binary logit

Example binary/nominal IV interpretations:

Conservative’s odds of supporting marijuana legalization are lower than non-conservative’s by a factor of 0.250, holding other variables constant

Hispanic adults have odds of supporting marijuana legalization that are lower than White adults’ by a factor of 0.289 (other variables held constant). Black and White adults odds of supporting marijuana legalization are not significantly different… [and so on for other categories]

Example continuous IV interpretations:

Controlling for other factors, a one-year increase in age decreases the odds of supporting marijuana legalization by a factor of 0.966

After accounting for other factors, family income is not associated with the odds of supporting marijuana legalization

Interpretation tip: A non-significant effect has a confidence interval that includes positive, null, and negative values. I do not think it is appropriate to interpret the direction of a null effect.

Considerations when interpreting odds ratios (ORs)

  • ORs are multiplicative effects—so you cannot say it “increases the odds by _____” (as you would with an additive effect)
    • Instead, you must specify that it increases or decreases the odds by a factor of/ # times which indicates effect is multiplicative instead of additive
  • You also cannot say things such as it “doubles the chance” of something happening or “makes it half as likely”—these are probability statements
    • Odds are not in the probability metric
    • You must interpret ORs in terms of what they suggest in terms of a multiplicative change in the odds
      • E.g., An OR=2 does not necessarily “double the chance” of observing an outcome
      • The substantive impact in terms of probability depends on what the starting value is (see the next few sections for examples)
  • In general, I do not find odds ratios interpretations very satisfying
    • Odds are less intuitive than probabilities; a ratio of two odds is much less intuitive than probabilities
    • The same size OR can have drastically different effects on the probability depending on the starting value
Back to top