Stats for

Generalized and Multilevel Regression

Ordinal Regression

Ordinal regression predicts an ordered outcome, like a rating.

Ordinal regression takes an ordered outcome, such as a rating from very poor to very good, and tests whether one or more predictors go with its higher or lower categories.

Example

Do evening screen time and afternoon caffeine predict how well adults rate their sleep? Three hundred adults rated their sleep quality over the past month from very poor to very good, and reported their typical evening screen time and whether they usually have caffeine after 3 p.m.

One Sample + Ordered Outcome + One or More Predictors of Any Type → Ordinal Regression
Tests
Population cumulative odds ratios (one per predictor, shared by every split of the scale)
Observations
Independent
Parametric
Yes
Headline Statistic
\text{OR}
Effect Size
Cumulative Odds Ratio (\text{OR})
Groups
1

The Basics

When to Use It

Use it when your outcome is an ordered category, such as a rating from very poor to very good, a severity level or a stage, and you want to know how one or more predictors, continuous or categorical, go with higher or lower categories, holding the others constant. It respects the order without pretending the steps between levels are equal. For example:

  • Do evening screen time and afternoon caffeine predict how well adults rate their sleep?
  • Does the number of therapy sessions attended predict clients' improvement ratings (worse, no change, somewhat better, much better), controlling for starting severity?
  • Do workload and supervisor support predict how often nurses report feeling burned out (never, sometimes, often, always)?

Vocabulary You Need

Definition Ordinal Variable

A variable whose values can be put in order from less to more, such as a disagree–neutral–agree rating, symptom severity (mild, moderate, severe) or year in school, without the steps between them necessarily being equal. The order carries information that a nominal variable such as college major doesn't have, which is why ordinal measures like Spearman's ρ, Kendall's τ and Goodman and Kruskal's γ use it; treating the categories as equally spaced numbers adds an assumption. Glossary →

Definition Odds

The chance something happens divided by the chance it doesn't, p ÷ (1 − p). In a group, that's the number who had the outcome divided by the number who didn't. A proportion of .50 is odds of 1 (“1 to 1”), and .20 is odds of 0.25 (“1 to 4”). Unlike a proportion, odds run from 0 to infinity. Glossary →

Definition Log-Odds (\text{logit}(p))

The natural log of the odds, ln(p ÷ (1 − p)), also called the logit. A probability is stuck between 0 and 1 and odds between 0 and infinity, but log-odds run from minus to plus infinity, with 0 at a probability of .50: negative below it, positive above it, and symmetric, so .20 and .80 are −1.39 and +1.39. That unlimited scale is why logistic models are built on it: each predictor adds a fixed amount to the log-odds. A coefficient is a change in log-odds; e raised to it is an odds ratio, and 1 ÷ (1 + e^(−log-odds)) turns log-odds back into a probability. In a multinomial model the log-odds compare a category with the baseline category, ln(P(j) ÷ P(base)), rather than with everything else. Glossary →

Definition Cumulative Logit (\text{logit}\,P(Y \le j))

For an ordered outcome with levels 1 to J, the chance of landing at or below level j, turned into log odds: ln[P(Y ≤ j) ÷ P(Y > j)]. Each of the J − 1 places where the scale can be split gets one, so a 5-point rating has four: 1 against 2–5, 1–2 against 3–5, and so on. Ordinal regression models all of them at once. A positive value means the lower side of the split is the more likely one; 0 means it's a coin flip. Glossary →

Definition Threshold (\theta_j)

In ordinal regression, the cumulative logit of answering at or below level j for someone whose predictors are all 0. There is one threshold for each split of the scale (J − 1 of them for J levels), and they always rise from the lowest split to the highest. They play the part an intercept plays in ordinary regression, so they're rarely interesting in themselves. One way to picture them: cut-points on an unseen, continuous version of the outcome, where the gaps between cut-points needn't be equal. Glossary →

Definition Odds Ratio (\text{OR})

One group's odds of an outcome divided by another group's. 1 means the odds are the same, 2 means the first group's odds are twice as high, and 0.5 means half as high; 0.5 and 2 are equally strong, in opposite directions. It's the usual effect size for a 2 × 2 table of two separate groups and what logistic regression reports. When the same people answer twice, as in McNemar's test, the paired odds ratio is different: it compares the people who switched one way with those who switched the other. It compares odds, not chances: when an outcome is common, the odds ratio is further from 1 than the ratio of the two proportions. A single zero cell, with the other counts positive, makes it 0 or infinite; more than one zero can leave it undefined. Glossary →

Assumptions

1. Independent Observations The people (or other units) in your study don't influence each other.
What It Means
Each person's data comes from a separate, unconnected source, so knowing one person's scores tells you nothing about anyone else's. In designs that measure people more than once, their own scores are meant to be related; it's different people who must be independent. Methods built for clustered data, such as multilevel models and GEE, also allow members of the same group to be related, as long as the analysis names the grouping; then it's the groups that must be independent.
Applies To
Observations
How to Check
By design, not by a test. Did each person contribute their own data, with no clusters such as roommates, couples, therapy groups or classrooms whose members influence each other? If there are clusters, does the analysis model every one of them?
How Much It Matters
A lot. If people come in clusters (partners who share a bed, housemates, members of one family), their ratings are more alike than the model expects, and the standard errors are usually too small, so the p-values are too small.

If It's Violated

  • Alternative Test Multilevel Logistic Regression. A cumulative link mixed model (R's ordinal::clmm) adds a random effect for the cluster. The site's nearest page is multilevel logistic regression.
  • Design Change Sample people independently, one per household.
2. Ordered Categories The outcome's categories run in order, from less to more of one thing.
What It Means
The outcome is a small set of categories that run from less to more of one thing, such as very poor to very good. The model uses only that order, not any distance between the categories, and many people share each category by design.
Applies To
Outcome
How to Check
By design: ask whether each category means more of the same thing than the one before it. Then check that each category has enough people; a very sparse end category can be merged with its neighbor, which leaves the coefficients' meaning unchanged if proportional odds holds. Merging can hide a departure from proportional odds, so check that assumption before you merge.
How Much It Matters
Complete. The model splits the scale at each level and counts who is above and below, which only means something if the levels run from less to more. Very poor to very good does. Code the levels as numbers in their real order: text labels are sorted alphabetically (fair, good, poor, …), which scrambles the model.

If It's Violated

  • Alternative Test Multinomial Regression. If the categories have no order (preferred bedtime routine: reading, TV, music), model them without one.
  • Correction Make the outcome an ordered factor in R, or code it 1 to 5 in SPSS and Python, and check the first threshold is the lowest level against the rest.
3. Proportional Odds Each predictor shifts every split of your rating scale by the same amount.
What It Means
The model gives each predictor one coefficient, so its effect on the log odds of answering higher rather than lower is assumed to be the same wherever the scale is split: between the bottom level and the rest, in the middle and at the top. Equivalently, on an unseen continuous version of the rating, the predictor slides everyone's scores up or down by the same amount; the shares answering in each observed category still change by different amounts. A predictor that mainly moves people out of the lowest category, say, but barely changes who reaches the top, breaks it.
Applies To
Relationship
How to Check
Compare the cumulative log odds ratios at each split, raw or from separate binary logistic regressions: similar values support it. Then fit a model that lets one predictor's effect differ at every split and compare it with the proportional-odds model by a likelihood-ratio test (ordinal::nominal_test in R; SPSS's test of parallel lines does all predictors at once). With large samples such tests flag differences too small to matter, so look at the size of the differences, not just p.
How Much It Matters
It depends on the size of the departure. Each predictor's single odds ratio is then an average over the splits, which can hide an effect that's strong at one end of the scale and absent at the other. In the sleep-quality study the raw odds ratios for caffeine run from 0.47 to 0.58 across the four splits, and the likelihood-ratio tests of a separate effect at each split are far from significant (p = .85 for screen time, .80 for caffeine; .93 for both at once, as SPSS tests it). With 300 people these tests have little power, so the near-equal raw odds ratios are the stronger evidence.

If It's Violated

  • Correction Let the offending predictor have its own effect at each split while the others keep one (Peterson & Harrell, 1990): nominal = ~ x in R's clm. Report its odds ratio at each split. For stages people pass through in order, a continuation-ratio model, which compares each level with those above it among people who reached it, is another option (Agresti, 2010).
  • Alternative Test Multinomial Regression. Drop the order and give every predictor a separate effect for each category. Far more parameters, and less power.
  • Proceed with Caveat If the separate-split odds ratios differ but all point the same way, the single odds ratio is a fair summary; say so and show the separate values.
4. Linearity of the Logit Each continuous predictor relates to the log-odds of the outcome in a straight line.
What It Means
The model assumes that each one-unit rise in a continuous predictor changes the log-odds of the outcome by the same amount, whether it happens low or high on the predictor's range. On the probability scale that's an S-shaped curve, so the probabilities themselves aren't expected to rise in a straight line. A U shape (risk that is high at both ends), a threshold or a leveling off breaks it. Yes/no predictors meet it automatically, since they have only two values.
Applies To
Relationship
How to Check
Add a bend and see whether it helps: a squared term, or a restricted cubic spline, for each continuous predictor, compared with the straight-line model by a likelihood-ratio test. A plot helps more than any p: cut the predictor into bands (such as deciles) and plot the cumulative logit at each split (for example, the log odds of fair or worse) in each band against the band's average. Each split's points should fall near a line, and the lines should run parallel.
How Much It Matters
Moderate, for continuous predictors only. One coefficient for screen time assumes the second hour changes the log odds as much as the fifth. If the effect of screens levels off, the odds ratio per hour will understate it at low screen time and overstate it at high. Caffeine is yes or no, so it has nothing to bend. In the sleep-quality study, a squared term for screen time (centered) adds nothing, χ²(1) = 0.19, p = .67.

If It's Violated

  • Correction Add a squared term for screen time (centered first), or a spline, and compare the fit with a likelihood-ratio test.
  • Transformation Log-transform a predictor whose effect levels off, such as income. The odds ratio is then per unit of the log.
5. No Severe Multicollinearity Your predictors aren't so closely related that their effects can't be told apart.
What It Means
Each coefficient is estimated from the part of its predictor that doesn't overlap with the others. When predictors are highly correlated, that part is small, so the coefficients become unstable and their standard errors large, even though the model as a whole may predict well. Perfect overlap, such as including a total score and all of its parts, makes the model impossible to estimate.
Applies To
Predictors
How to Check
Look at the correlations among the predictors and at each predictor's variance inflation factor (VIF). A VIF near 1 means little overlap. Common cutoffs of 5 or 10 are rules of thumb, not tests (O'Brien, 2007); the real question is whether the coefficients you care about are still precise enough to interpret.
How Much It Matters
Only with strongly overlapping predictors. As in any regression, they inflate each coefficient's standard error. Screen time and caffeine barely overlap here (r = .08).

If It's Violated

  • Design Change If two predictors measure the same thing (two screen-time questions), combine them or keep one.
  • Proceed with Caveat Test the overlapping predictors together with one likelihood-ratio test, and don't lean on their separate coefficients.

Limitations

This Is Not Your Test If…

What It Doesn't Tell You

  • Why. Nothing here shows that screens or caffeine cause poor sleep. People who sleep badly may drink coffee in the afternoon to get through the day, and anything left out, like stress or shift work, could drive all three.
  • Whether it matters. A significant odds ratio doesn't make the change important: for an adult with 2.5 hours of evening screens, afternoon caffeine goes with a 14-point drop in the chance of good or very good sleep, and whether that's worth acting on is a question about sleep, not statistics.
  • Who else. The results describe adults like these 300, their own ratings of their sleep, and the range of screen time they reported. Self-rated sleep quality isn't measured sleep.
  • That the effects are the same across the scale. The model gives each predictor one odds ratio. The proportional-odds checks found no sign that the effects differ between splits, but with 300 people they can't rule out modest differences.

Common Mistakes

  • Don'tAssume a positive coefficient means higher categories without checking your software's sign convention.

    InsteadCheck the model statement in the documentation. R's clm and polr, SPSS PLUM and statsmodels use θⱼ − bx, so a positive b means higher ratings; other software may flip the sign.

  • Don'tAverage the ratings and run a t-test or linear regression by default.

    InsteadModel the ratings as ordered categories. Treating them as equally spaced numbers can find effects that aren't there, miss real ones, or reverse them (Liddell & Kruschke, 2018).

  • Don'tCollapse the scale into two groups (good vs not) to run a logistic regression.

    InsteadKeep every level. Collapsing throws away information, costs power, and the result depends on where you cut.

  • Don'tReport only the odds ratio.

    InsteadGive predicted probabilities for meaningful people too, such as the chance of good or very good sleep with and without afternoon caffeine.

  • Don'tSkip the proportional-odds check, or treat a non-significant test as proof it holds.

    InsteadCompare the effects at each split directly, and run a nominal test or SPSS's test of parallel lines as a second look.

  • Don'tRead an odds ratio of 3 as “three times as likely.”

    InsteadSay “three times the odds,” and give the two percentages so readers can see the actual chances.

  • Don'tDescribe a regression coefficient as the effect of raising the predictor.

    InsteadSay the prediction is that much higher per unit of the predictor, on the model's scale (the outcome itself, or its log-odds or log rate in a logistic, ordinal or Poisson model). Causal language needs a design that supports it, such as an experiment.

  • Don'tRead a p-value as the chance that the null hypothesis is true.

    InsteadRead it as: if the null were true, how often data at least this extreme would turn up.

Result Decoder

Significance and Effect Size Guidelines

Benchmarks Significance (p Value)
  • p < .001

    Very strong evidence against the null hypothesis.

  • .001 ≤ p < .01

    Strong evidence against the null hypothesis.

  • .01 ≤ p < .05

    Statistically significant at α = .05. Moderate evidence against the null hypothesis.

  • .05 ≤ p < .10

    Not significant. Weak evidence; sometimes called a “trend.” Treat it as inconclusive.

  • p ≥ .10

    Not significant. Little evidence against the null, which is not the same as evidence of no effect.

These evidence labels are one common convention for describing p in graded language rather than as significant or not; the boundaries are rough guides, not rules, and other authors draw them differently. Muff et al. (2022) argue for this kind of language of evidence over a single cutoff. α is chosen before the analysis, and p never says how big or important an effect is.

More about statistical significance ↓

Benchmarks Effect Size (Cumulative Odds Ratio (\text{OR}))
  • 0.60 < OR < 1.68 Below Small

    Below the odds ratio that matches d = 0.2 when 1% of the comparison group has the outcome.

  • 1.68 ≤ OR < 3.47 (0.29 < OR ≤ 0.60) Small

    About d = 0.2 when 1% of the comparison group has the outcome.

  • 3.47 ≤ OR < 6.71 (0.15 < OR ≤ 0.29) Medium

    About d = 0.5 when 1% of the comparison group has the outcome.

  • OR ≥ 6.71 (OR ≤ 0.15) Large

    About d = 0.8 or more when 1% of the comparison group has the outcome.

For an odds ratio below 1, use its reciprocal (1 ÷ OR) or the bands in brackets. Chen, Cohen and Chen's cutoffs were derived for a yes/no exposure and an outcome in 1% of the comparison group, so they fit caffeine (yes or no) better than screen time, whose odds ratio is per hour and would change if you measured in minutes. A cumulative odds ratio applies at every split of the scale, and here no split is rare; a common outcome needs a smaller odds ratio for the same Cohen's d, so the labels understate effects. Our caffeine odds ratio of 0.56 is 1.80 read the other way, in the small range. A reading that doesn't depend on base rates uses the model's latent scale, whose logistic spread has an SD of π/√3: ln(1.80) × √3/π gives a difference of about 0.32 SDs of the unseen score, comparable to Cohen's d = 0.32. Treat the labels as a rough guide at best, and judge size from the predicted probabilities.

More about effect size ↓

How It's Reported

Equation Form

Example

OR = 0.56, 95% CI [0.37, 0.85], z = −2.75, p = .006; whole model χ²(2) = 17.12, p < .001

Table 1. Ordinal Regression Predicting Sleep Quality

Example
bSEzpOR95% CI for OR
Screen time (hours) −0.270.096−2.84.0050.76[0.63, 0.92]
Caffeine after 3 p.m. −0.590.213−2.75.0060.56[0.37, 0.85]
Threshold 1: Very Poor | Poor −2.980.325
Threshold 2: Poor | Fair −1.850.292
Threshold 3: Fair | Good −0.580.274
Threshold 4: Good | Very Good 0.730.280

Note. N = 300. Model: logit P(Y ≤ j) = θj − (b1 screen time + b2 caffeine), so a negative b and an odds ratio below 1 mean lower (worse) ratings. OR = odds ratio for a higher rating, per hour of screen time or for caffeine after 3 p.m. vs none; 95% CIs are Wald intervals. Thresholds are on the log-odds scale for someone with 0 hours of screen time and no afternoon caffeine; their tests (against 0) answer no useful question and are left out.

Table 2. Likelihood-Ratio Tests

Example
\chi^2dfp
Both predictors (whole model) 17.122< .001
Screen time 8.101.004
Caffeine after 3 p.m. 7.611.006
Proportional odds: screen time 0.783.853
Proportional odds: caffeine 0.993.804
Proportional odds: both (test of parallel lines) 1.926.927

Note. Each χ² is the drop in deviance (−2 log-likelihood) between two models. The first three compare the model with one that has no predictors, or that leaves out one predictor. The proportional-odds rows compare it with a model that lets screen time, caffeine, or both (SPSS's test of parallel lines) have a separate effect at each of the four splits; non-significant results support the single odds ratio per predictor.

Table 3. Predicted Probability of Each Sleep-Quality Rating

Example
Very PoorPoorFairGoodVery GoodGood or Better
1 hour, no caffeine .06.11.25.31.27.58
1 hour, caffeine .11.16.30.26.17.43
2.5 hours, no caffeine .09.15.29.28.20.48
2.5 hours, caffeine .15.20.31.22.12.34
4 hours, no caffeine .13.19.31.24.14.38
4 hours, caffeine .21.24.29.17.08.25

Note. From the model in Table 1. Each row adds to 1 (up to rounding). Caffeine drinkers' profiles sit toward the poor end by the same amount on the log-odds scale, which shows up as different changes in each probability.

Full Text (APA Style)

Example

Adults who had caffeine after 3 p.m. rated their sleep worse: 34% called it good or very good, against 47% of those who didn't. In an ordinal (proportional-odds) regression that also included evening screen time (M = 2.50 hours, SD = 1.10), adults who had caffeine after 3 p.m. had 0.56 times the odds of a higher sleep-quality rating of those who didn't, at the same screen time, 95% CI [0.37, 0.85] (b = −0.59, SE = 0.21, z = −2.75, p = .006). Each extra hour of evening screen time went with odds 0.76 times as high, at the same caffeine use, 95% CI [0.63, 0.92] (b = −0.27, z = −2.84, p = .005). Together the two predictors predicted the ratings better than a model with no predictors, χ²(2) = 17.12, p < .001. For an adult with 2.5 hours of evening screen time, the model's chance of good or very good sleep was 48% without afternoon caffeine and 34% with it. Likelihood-ratio tests of the proportional-odds assumption found no sign that either effect differed across the rating scale (screen time χ²(3) = 0.78, p = .85; caffeine χ²(3) = 0.99, p = .80).

  • Say which way the model is written. With logit P(Y ≤ j) = θⱼ − bx, a negative b and an odds ratio below 1 mean lower ratings; say “odds of a higher rating” so readers can't read it backwards.
  • Give a coefficient table like Table 1 (b, SE, z, p, odds ratio and its interval, and the thresholds), and the likelihood-ratio tests like Table 2.
  • Translate the odds ratios into predicted probabilities for people readers can picture, like Table 3.
  • Report how you checked proportional odds and what you found.

Reading Each Piece

The equation form above, piece by piece, in this order: how big, how certain, then how surprising.

48% vs 34% good or very good At 2.5 hours of evening screen time, the model gives a 48% chance of good or very good sleep without afternoon caffeine and 34% with it, a 14-point gap. Table 3 shows the whole spread of ratings at 1, 2.5 and 4 hours.
OR = 0.56 Afternoon caffeine drinkers' odds of a better sleep rating, at any split of the scale, are a little over half those of people who skip it, at the same screen time. Flipped (1.80), that's in the benchmarks' small range, but those cutoffs assume a rare outcome and no split of this scale is rare, so they understate it; what it means in chances is in Table 3. Benchmarks ↑
95% CI [0.37, 0.85] The population odds ratio is plausibly anywhere from 0.37 (caffeine drinkers' odds of better sleep under two-fifths of others') to 0.85 (15% lower). The whole range is below 1, but its size is pinned down only loosely.
χ²(2) = 17.12, p < .001 Screen time and caffeine together predict the ratings better than knowing neither, by more than chance would explain. The 2 is the degrees of freedom: two predictors added. That says nothing about how much better, and here the gain is modest (McFadden's pseudo-R² = .02); the odds ratios and predicted probabilities say how large each predictor's association is.
z = −2.75, p = .006 Caffeine's coefficient is 2.75 standard errors below zero. If caffeine drinkers and non-drinkers with the same screen time had the same chances of each rating in the population (and the model is right), a coefficient at least this far from zero, in either direction, would turn up about 0.6% of the time, so it's statistically significant. Benchmarks ↑

Calculations

The Running Example

Example

The sleep-quality study: 300 adults, a 5-point sleep-quality rating (very poor to very good) predicted from evening screen time in hours and caffeine after 3 p.m. (120 yes, 180 no).

Null HypothesisAlternative
Caffeineb_{\text{caffeine}} = 0 \;\; (\text{OR} = 1)b_{\text{caffeine}} \neq 0
Whole Modelb_{\text{screen}} = b_{\text{caffeine}} = 0\text{at least one } b \neq 0
Proportional Odds\text{each } b \text{ is the same at all four splits}\text{some } b \text{ differs between splits}

Each b is a population coefficient on the log-odds scale, holding the other predictor constant: 0 means the predictor isn't related to the ratings among people with the same value of the other, so its odds ratio is 1. The caffeine test is the one worked through below; screen time has the same kind of test (Table 1). The whole-model test compares the model with one that has thresholds only, and the proportional-odds test compares it with a model that lets each effect differ at every split of the scale.

What Your Data Should Look Like

One row per person: the ordered outcome coded as numbers in its real order (1 = lowest), and one column for each predictor. A yes/no predictor is coded 0 and 1; a predictor with several groups becomes a factor, which software turns into 0/1 columns.

Our 300 rows give the 2 × 5 table below: sleep ratings by afternoon caffeine, with the caffeine drinkers' ratings bunched further toward the poor end. Screen time, the second predictor, stays a number in hours.

Example
participantsleep_qualityscreen_timecaffeine
114.70
224.40
333.00
450.70
533.01
651.70
… 294 more rows
Very PoorPoorFairGoodVery GoodTotal
No Afternoon Caffeine17 (9%)24 (13%)54 (30%)48 (27%)37 (21%)180
Caffeine after 3 p.m.19 (16%)27 (23%)33 (28%)27 (23%)14 (12%)120
Total3651877551300

Counts, with each row's percentages.

Simulated data.

Download all 300 rows (data.csv)

Napkin Math

The whole test, one idea at a time. Under each heading, a line says why the step matters, and the green note reads the equation in plain English with the sleep-quality study's numbers. Collapse all to read just the headings: they tell the whole story on their own.

  1. 1. Split the Rating Scale at Each Level and Find the Log Odds of Falling at or Below It

    An ordered rating can be split into lower and higher at four places: very poor against the rest, very poor or poor against the rest, and so on. Ordinal regression works with the log odds of landing on the lower side of each split, the cumulative logits.

    \text{logit}\,P(Y \le j) = \ln\!\left(\dfrac{P(Y \le j)}{1 - P(Y \le j)}\right) =\ln\!\left(\dfrac{.58}{.42}\right)

    = 0.32

    P(Y \le 3) = .58

    \text{logit}\,P(Y \le 1) = −1.99

    \text{logit}\,P(Y \le 2) = −0.90

    \text{logit}\,P(Y \le 4) = 1.59

    P(Y \le 3) is the share of our 300 adults who rated their sleep fair or worse: 36 + 51 + 87 = 174, or .58, leaving .42 above fair. Dividing, .58 ÷ .42 = 1.38 is the odds of fair or worse: 1.38 people at or below fair for every one above. Its natural log (ln, the log to base e ≈ 2.718) is 0.32, and e^{0.32} takes you back to 1.38. The other three splits give −1.99 (very poor against the rest), −0.90 and 1.59: the logits climb because each split puts more people on the lower side.

  2. 2. Compare Caffeine Drinkers with Everyone Else at Every Split

    Do the same for the two caffeine groups and subtract. If caffeine drinkers sit lower on the whole scale by about the same amount, the gap is about the same at every split. That single gap, adjusted for screen time, is what the model will estimate.

    \text{logit}\,P(Y \le 3 \mid \text{caffeine}) - \text{logit}\,P(Y \le 3 \mid \text{none}) =0.656 - 0.111

    \text{gap at split 3} = 0.545

    \text{OR at split 1} = 0.55

    \text{OR at split 2} = 0.47

    \text{OR at split 3} = 0.58

    \text{OR at split 4} = 0.51

    P(\text{good or better} \mid \text{none}) = .47

    P(\text{good or better} \mid \text{caffeine}) = .34

    65.8% of the 120 afternoon caffeine drinkers rated their sleep fair or worse (a logit of 0.656), against 52.8% of the 180 others (0.111). The gap is 0.545. Turned into the odds of a higher rating, caffeine drinkers' are e^{-0.545} = 0.58 times the others'. At the four splits that ratio is 0.55, 0.47, 0.58 and 0.51: close, which is what proportional odds needs.

  3. 3. Find the Cut-Points and Slopes That Make the Ratings Most Likely

    One way to picture the model: each person has an unseen sleep-quality score. Their predictors set where it centers, and random variation scatters it with a logistic spread (bell-shaped, with an SD of π/√3 ≈ 1.81). Four thresholds cut that unseen scale into very poor, poor, fair, good and very good; they needn't be evenly spaced. A coefficient is how far apart the centers are for people one unit apart on a predictor, so it's the same at every split. The model gives every split its own threshold but each predictor a single coefficient, shared by all four splits, and adjusts each predictor for the other. Software tries values until the observed ratings are as probable as they can be.

    \text{logit}\,P(Y \le j) = \theta_j - (b_1 x_1 + b_2 x_2) =\theta_j - (-0.27\,x_1 - 0.59\,x_2)

    \theta_1 = −2.98

    \theta_2 = −1.85

    \theta_3 = −0.58

    \theta_4 = 0.73

    b_1 = −0.27

    b_2 = −0.59

    M_{x_1} = 2.50 hours

    SD_{x_1} = 1.10 hours

    r_{x_1 x_2} = .08

    x_1 is evening screen time in hours (M = 2.50, SD = 1.10) and x_2 is 1 for caffeine after 3 p.m., 0 otherwise; the two barely overlap (r = .08). Maximum likelihood gives thresholds \theta_1 to \theta_4 of −2.98, −1.85, −0.58 and 0.73, b_1 = −0.27 and b_2 = −0.59. Because of the minus sign in front of the bracket, a negative b raises the log odds of the lower side: more screen time and afternoon caffeine both go with worse sleep.

  4. 4. Turn Caffeine's Coefficient into an Odds Ratio

    A coefficient on the log-odds scale is hard to picture. Raising e to its power undoes the log (e^{\ln x} = x) and gives an odds ratio: how many times as high the odds of a higher rating are, at every split, holding screen time constant.

    \text{OR} = e^{b} =e^{-0.586}

    = 0.56

    1 / \text{OR} = 1.80

    \text{OR}_{\text{screen}} = 0.76

    b is caffeine's −0.586. e^{-0.586} = 0.56: whichever split you pick, afternoon caffeine drinkers' odds of rating their sleep above it are 0.56 times everyone else's. Read the other way, 1 ÷ 0.56 = 1.80 times the odds of a rating at or below it. Adults an hour apart in screen time, with the same caffeine use, have odds of a higher rating e^{-0.272} = 0.76 times as high.

  5. 5. Give a Range of Plausible Values for Caffeine's Odds Ratio

    Build the range on the log-odds scale, where the estimate's uncertainty is symmetric, then turn both ends into odds ratios.

    e^{\,b \,\pm\, 1.96 \times SE_b} =e^{-0.586 \pm 1.96 \times 0.213}

    = [0.37, 0.85]

    SE_b is 0.213, so the log-odds range is −0.586 ± 0.418, from −1.004 to −0.168. e^{-1.004} = 0.37 and e^{-0.168} = 0.85.

  6. 6. Ask How Surprising Caffeine's Coefficient Would Be If Caffeine Were Unrelated to the Ratings

    Divide the coefficient by its standard error to see how many standard errors it sits from zero, then ask how often, if the true coefficient were 0, one would land at least that far out.

    p = 2 \times P(Z \ge |z|) =2 \times P\!\left(Z \ge \left|\dfrac{-0.586}{0.213}\right|\right) = 2 \times P(Z \ge 2.75)

    = .006

    z = −2.75

    SE_b = 0.213

    z = −0.586 ÷ 0.213 = −2.75, so caffeine's coefficient is 2.75 standard errors below zero. P(Z \ge 2.75) is about .003; doubling it for both directions gives .006, about 1 in 166.

  7. 7. Translate the Model into Chances for Someone Real

    Odds ratios are hard to feel. Plug a person's values into the model and turn the log odds back into probabilities: here, the chance of rating sleep good or very good for an adult with 2.5 hours of evening screens, with and without afternoon caffeine.

    P(Y \le j) = \dfrac{1}{1 + e^{-(\theta_j - b_1 x_1 - b_2 x_2)}}, \quad P(Y = j) = P(Y \le j) - P(Y \le j - 1) =1 - \dfrac{1}{1 + e^{-(-0.58 + 0.27 \times 2.5)}}

    = .48

    P(\text{good or better} \mid \text{caffeine}) = .34

    \theta_3 - b_1 x_1 = 0.098

    \theta_3 - b_1 x_1 - b_2 = 0.684

    \theta_3 - b_1 x_1 = −0.582 + 0.272 × 2.5 = 0.098, the log odds of fair or worse; turned back, that's a .52 chance, so .48 of good or very good. Adding caffeine adds 0.586 to the log odds of the lower side (0.684), leaving .34.

  8. 8. Check That the Predictors Together Beat a Model with None

    Compare how badly the model fits (its deviance) with how badly a model with thresholds only fits. The drop is a likelihood-ratio chi-square, with one degree of freedom per predictor added.

    \chi^2_{\text{LR}} = -2LL_{\text{smaller}} - (-2LL_{\text{larger}}) =937.47 - 920.35

    = 17.12

    -2LL_{\text{null}} = 937.47

    -2LL_{\text{model}} = 920.35

    p < .001

    \chi^2_{\text{caffeine}} = 7.61

    p_{\text{caffeine}} = .006

    With thresholds only, -2LL is 937.47; with screen time and caffeine it's 920.35. The drop is 17.12, on 2 df, p = .0002. Dropping just caffeine raises -2LL by 7.61 (1 df, p = .006), the likelihood-ratio version of the test in the step above.

  9. 9. Check That Each Predictor Shifts Every Split by the Same Amount

    The single odds ratio per predictor is an assumption. Fit a looser model that lets a predictor have its own effect at each of the four splits, and ask whether it fits meaningfully better.

    \chi^2 = -2LL_{\text{one effect}} - (-2LL_{\text{four effects}}) =920.35 - 919.36

    \chi^2_{\text{caffeine}} = 0.99

    p_{\text{caffeine}} = .80

    \chi^2_{\text{screen}} = 0.78

    p_{\text{screen}} = .85

    \chi^2_{\text{both}} = 1.92

    p_{\text{both}} = .93

    Letting caffeine's effect differ at each split lowers -2LL only from 920.35 to 919.36: \chi^2 = 0.99 on 3 df (four effects instead of one), p = .80. For screen time it's 0.78, p = .85, and freeing both at once, as SPSS does, gives 1.92 on 6 df, p = .93.

Run It in Software

The code below reads the running example's data from data.csv; save it in the same folder you run the code from.

SPSS (version 30, as documented by IBM)
  1. Analyze → Regression → Ordinal.
  2. Move sleep_quality (coded 1 = very poor to 5 = very good) into Dependent, and screen_time and caffeine into Covariate(s). As a 0/1 covariate, caffeine's coefficient compares afternoon caffeine with none.
  3. Output: check Goodness of fit statistics, Summary statistics, Parameter estimates and Test of parallel lines. Click Continue.
  4. Options: leave Link on Logit, which gives the odds ratios on this page. (Probit gives an ordered probit, whose coefficients are in SDs of the unseen score; its conclusions usually agree. Complementary log-log suits outcomes bunched at the top.) Click Continue, then OK.

Or paste this syntax:

PLUM sleep_quality WITH screen_time caffeine
  /CRITERIA=CIN(95) DELTA(0) LCONVERGE(0) MXITER(100) MXSTEP(5)
    PCONVERGE(1.0E-6) SINGULAR(1.0E-8)
  /LINK=LOGIT
  /PRINT=FIT PARAMETER SUMMARY TPARALLEL.

Reading the Output

Read the Location rows of Parameter Estimates first: each Estimate is a coefficient b on the log-odds scale, with its 95% Confidence Interval; then Wald (which is z²) and Sig. SPSS doesn't print odds ratios: take e^Estimate for the odds ratio and e^Lower, e^Upper for its interval. Then check the whole model (Model Fitting Information) and the Test of Parallel Lines.

Model Fitting Information

Model Chi-Square df Sig.
Final 17.124 2 .000

Parameter Estimates

Estimate Std. Error Wald df Sig. 95% CI Lower Upper
Threshold [sleep_quality = 1] -2.981 .325 84.183 1 .000 -3.618 -2.344
[sleep_quality = 2] -1.852 .292 40.160 1 .000 -2.425 -1.279
[sleep_quality = 3] -.582 .274 4.518 1 .034 -1.118 -.045
[sleep_quality = 4] .726 .280 6.739 1 .009 .178 1.274
Location screen_time -.272 .096 8.045 1 .005 -.460 -.084
caffeine -.586 .213 7.542 1 .006 -1.004 -.168

Test of Parallel Lines

Model Chi-Square df Sig.
General 1.917 6 .927

SPSS writes the model as θⱼ − bx (IBM's PLUM algorithms), the same as R, so the estimates match R's and a negative Location estimate means lower ratings. It also prints each model's −2 Log Likelihood; those values depend on the constant SPSS includes in the likelihood, so they aren't laid out here, but the Chi-Square (their difference) doesn't. The Test of Parallel Lines lets every predictor have its own effect at each split at once; a non-significant result supports proportional odds. The threshold tests (against 0) answer no useful question. Sig. shows .000 for p < .001.

Two more tables come from Summary and Goodness of fit statistics. Pseudo R-Square gives Cox and Snell's (.055 here), Nagelkerke's and McFadden's measures; computed from each person's likelihood, as R does, Nagelkerke's is .058 and McFadden's .018. They're rough indices, not a share of variance explained, and small values are usual for rating data. Goodness-of-Fit gives Pearson and Deviance chi-squares, with a warning that many cells (combinations of predictor values and ratings) have zero frequencies. With a continuous predictor like screen time (53 different values here), most combinations hold only a person or two, so these two tests can't be trusted: ignore them and the warning, and rely on the tests above.

Output laid out from this page's computed results, not captured from a live run; labels and layout may differ slightly in your version.

R
library(ordinal)

sleep <- read.csv("data.csv")
sleep$sleep_quality <- factor(sleep$sleep_quality, levels = 1:5, ordered = TRUE,
  labels = c("very poor", "poor", "fair", "good", "very good"))

fit <- clm(sleep_quality ~ screen_time + caffeine, data = sleep)
summary(fit)

# Odds ratios with Wald 95% intervals
round(exp(cbind(OR = coef(fit), confint(fit, type = "Wald")))[5:6, ], 3)

# Likelihood-ratio test of each predictor, and of the model
drop1(fit, test = "Chisq")
anova(clm(sleep_quality ~ 1, data = sleep), fit)

# Proportional odds: one cut-point-specific effect at a time
nominal_test(fit)

# Predicted probability of each rating at 2.5 hours of screen time
round(predict(fit, newdata = data.frame(screen_time = 2.5, caffeine = c(0, 1)), type = "prob")$fit, 3)
formula: sleep_quality ~ screen_time + caffeine
data:    sleep

 link  threshold nobs logLik  AIC    niter max.grad cond.H
 logit flexible  300  -460.17 932.35 5(0)  3.68e-14 2.4e+02

Coefficients:
            Estimate Std. Error z value Pr(>|z|)
screen_time -0.27202    0.09591  -2.836  0.00456 **
caffeine    -0.58578    0.21330  -2.746  0.00603 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Threshold coefficients:
               Estimate Std. Error z value
very poor|poor  -2.9809     0.3249  -9.175
poor|fair       -1.8522     0.2923  -6.337
fair|good       -0.5816     0.2736  -2.126
good|very good   0.7257     0.2796   2.596
               OR 2.5 % 97.5 %
screen_time 0.762 0.631  0.919
caffeine    0.557 0.366  0.846
Single term deletions

Model:
sleep_quality ~ screen_time + caffeine
            Df    AIC    LRT Pr(>Chi)
<none>         932.35
screen_time  1 938.45 8.1047 0.004415 **
caffeine     1 937.96 7.6097 0.005806 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Likelihood ratio tests of cumulative link models:

                                     formula:
clm(sleep_quality ~ 1, data = sleep) sleep_quality ~ 1
fit                                  sleep_quality ~ screen_time + caffeine
                                     link: threshold:
clm(sleep_quality ~ 1, data = sleep) logit flexible
fit                                  logit flexible

                                     no.par    AIC  logLik LR.stat df
clm(sleep_quality ~ 1, data = sleep)      4 945.47 -468.74
fit                                       6 932.35 -460.17  17.124  2
                                     Pr(>Chisq)
clm(sleep_quality ~ 1, data = sleep)
fit                                   0.0001912 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Tests of nominal effects

formula: sleep_quality ~ screen_time + caffeine
            Df  logLik    AIC     LRT Pr(>Chi)
<none>         -460.17 932.35
screen_time  3 -459.78 937.56 0.78372   0.8534
caffeine     3 -459.68 937.36 0.99047   0.8036
  very poor  poor  fair  good very good
1     0.091 0.145 0.288 0.279     0.197
2     0.153 0.205 0.307 0.215     0.120

clm writes the model as logit P(Y ≤ j) = θⱼ − xβ, so the negative Estimates mean lower (worse) ratings; MASS::polr uses the same sign and gives the same numbers. Read the coefficients and their odds ratios first, then drop1 (a likelihood-ratio test for each predictor) and nominal_test, where large p-values support proportional odds. confint(fit) without type = "Wald" gives profile-likelihood intervals, which are slightly different (caffeine's b: −1.006 to −0.169). The predict rows are the chances of each rating at 2.5 hours of screen time, without and with afternoon caffeine.

Output from a real run: R 4.6.1 (ordinal 2026.7-26), run 2026-09-29.

Python
import numpy as np
import pandas as pd
from statsmodels.miscmodels.ordinal_model import OrderedModel

sleep = pd.read_csv("data.csv")
model = OrderedModel(sleep["sleep_quality"], sleep[["screen_time", "caffeine"]], distr="logit")
fit = model.fit(method="bfgs", disp=False)
print(fit.summary())

print(np.exp(fit.params[:2]))                              # odds ratios: 0.762, 0.557
print(np.exp(fit.conf_int().iloc[:2]))                     # [0.631, 0.919], [0.366, 0.846]
print(model.transform_threshold_params(fit.params)[1:-1])  # thresholds: -2.981, -1.852, -0.582, 0.726

new = pd.DataFrame({"screen_time": [2.5, 2.5], "caffeine": [0, 1]})
print(fit.predict(new))                                    # P(each rating), as in Table 3
                             OrderedModel Results
==============================================================================
Dep. Variable:          sleep_quality   Log-Likelihood:                -460.17
Model:                   OrderedModel   AIC:                             932.3
Method:            Maximum Likelihood   BIC:                             954.6
Date:                Sat, 03 Oct 2026
Time:                        15:08:16
No. Observations:                 300
Df Residuals:                     294
Df Model:                           2
===============================================================================
                  coef    std err          z      P>|z|      [0.025      0.975]
-------------------------------------------------------------------------------
screen_time    -0.2720      0.096     -2.836      0.005      -0.460      -0.084
caffeine       -0.5858      0.213     -2.746      0.006      -1.004      -0.168
1/2            -2.9809      0.325     -9.175      0.000      -3.618      -2.344
2/3             0.1211      0.133      0.908      0.364      -0.140       0.383
3/4             0.2395      0.096      2.483      0.013       0.050       0.428
4/5             0.2680      0.106      2.516      0.012       0.059       0.477
===============================================================================
screen_time    0.761850
caffeine       0.556673
dtype: float64
                    0         1
screen_time  0.631298  0.919400
caffeine     0.366469  0.845598
[-2.98085805 -1.85213385 -0.58155208  0.72576546]
          0         1         2         3         4
0  0.091053  0.145419  0.288124  0.278504  0.196901
1  0.152507  0.204967  0.307210  0.215224  0.120092

statsmodels uses the same sign as R and SPSS. The coefficient rows match R. The rows 1/2 to 4/5 are not the thresholds: only the first is; the others are the logs of the gaps between neighboring thresholds (e^0.1211 = 1.13 = −1.852 − (−2.981)), so ignore their z and p. transform_threshold_params turns them back into thresholds. The last lines print the odds ratios, their intervals, the four thresholds, and each rating's predicted probability (columns 0 to 4 are ratings 1 to 5) for 2.5 hours of screen time without and with caffeine. statsmodels has no nominal test; fit the proportional-odds check in R, or compare separate binary logistic regressions at each split.

Output from a real run: Python 3.9.6 (statsmodels 0.14.6, numpy 2.0.2, pandas 2.3.3), run 2026-10-03.

Impact

Effect Size

Ordinal regression's effect size is the odds ratio, one per predictor, and under proportional odds it has a special meaning: it's the same whichever split of the scale you look at. It says how many times as high the odds of answering above a level rather than at or below it are for people one unit higher on the predictor, holding the others constant.

\text{OR} = e^{b} = e^{-0.586} = 0.56

Afternoon caffeine drinkers' odds of a better sleep rating, at any split from very poor to very good, are 0.56 times those of people who skip it, at the same screen time. Flipped, 1 ÷ 0.56 = 1.80 times the odds of a worse one. Adults an hour apart in evening screen time, with the same caffeine use, have odds of a better rating 0.76 times as high.

An odds ratio for a continuous predictor depends on its unit: per hour of screen time it's 0.76, but per minute it would be almost exactly 1. The benchmarks above were built for a yes/no predictor like caffeine and a rare outcome. Our 0.56 (1.80 flipped) falls in their small range, but no split of this rating scale is rare, so the label understates it; the predicted probabilities say more.

Odds ratios are easy to misread as ratios of chances, so translate them. For an adult with 2.5 hours of evening screens, the chance of good or very good sleep is 48% without afternoon caffeine and 34% with it (Table 3). Whether a 14-point gap matters is a question about sleep, not statistics, and since this study can't show that caffeine causes it, it can't say what giving up afternoon coffee would do.

Benchmarks Cumulative Odds Ratio (\text{OR}) at a Glance
Below Small
0.60 < OR < 1.68
Small
1.68 ≤ OR < 3.47 (0.29 < OR ≤ 0.60)
Medium
3.47 ≤ OR < 6.71 (0.15 < OR ≤ 0.29)
Large
OR ≥ 6.71 (OR ≤ 0.15)

Full benchmarks and caveats ↑

Statistical Significance

Ordinal regression answers several significance questions. Each coefficient's z test asks: if this predictor were unrelated to the ratings among people with the same values of the others (and the model were right), how often would its coefficient land at least this far from zero, in either direction? The likelihood-ratio test asks the same of one predictor, a set of them or the whole model, from how much the fit improves. Below the conventional α = .05, a result is called statistically significant.

If caffeine drinkers and non-drinkers with the same screen time had the same chances of each rating in the population (and the model is right), a coefficient at least this far from zero, in either direction, would turn up about 0.6% of the time (z = −2.75, p = .006). The likelihood-ratio test for dropping caffeine agrees, χ²(1) = 7.61, p = .006. Screen time and caffeine together predict the ratings better than a model with neither, χ²(2) = 17.12, p < .001.

The z (Wald) test and the likelihood-ratio test usually agree, as they do here. The proportional-odds tests run the other way: there, a non-significant p is the result you hope for, but it isn't proof the assumption holds, only that the data can't show it fails.

p is not the probability that caffeine is unrelated to sleep ratings, and it says nothing about how big the effect is. That's what the odds ratio, its interval and the predicted probabilities are for.

Benchmarks p at a Glance
Very Strong
p < .001
Strong
.001 ≤ p < .01
Significant
.01 ≤ p < .05
Weak
.05 ≤ p < .10
Little
p ≥ .10

Strength of evidence against the null hypothesis.

Full benchmarks and caveats ↑

Power and Sample Size

Power is the chance that a study detects an effect that's really there. A real effect doesn't guarantee a significant result: with too few people, it can easily come out non-significant. For ordinal regression, power depends on the size of the odds ratio, how many people you have, α, how the predictor is spread (a yes/no predictor split 40/60 carries more information than one split 10/90), how people spread across the rating's levels, and how much the predictors overlap.

For a yes/no predictor on its own, Whitehead's (1993) formula gives power from the share of people expected at each rating and the odds ratio (R's Hmisc::popower). With other predictors in the model, plan by simulation: choose thresholds and odds ratios you consider realistic, generate many datasets of a given size from the model, fit each one, and count how often the coefficient you care about comes out significant.

Suppose, before collecting data, we expected afternoon caffeine to have the odds ratio we found, 0.56, with 40% of people drinking it and screen time spread as in our sample. In 2,000 simulated studies of each size, 300 adults gave about 78% power, just short of 80%, and 350 gave about 85%. If the true odds ratio were a milder 0.67, 300 adults would have only about 49% power, and even 600 would give only about 78%. Whitehead's formula, which ignores screen time, gives close to the same answers at 300: 80% and 48%.

Researchers usually aim for at least 80% power. Plan it before collecting data, for the smallest odds ratio that would matter. Keep the full rating scale: collapsing it to good versus not throws away information, which usually costs power. There's no calculator on this page. For a model with several predictors, a loop in R that simulates ratings from the model's cumulative probabilities, plogis(theta - b * x), and refits ordinal::clm each time does the job.

Other Info

Follow-Up and Post Hoc Tests

Planned Contrasts

  • Planned Contrasts: With a categorical predictor of three or more groups, compare chosen pairs of groups by their odds ratios, planned in advance, with a Holm correction if there are several.

References

  • McCullagh, P. (1980). Regression models for ordinal data. Journal of the Royal Statistical Society: Series B (Methodological), 42(2), 109–142. https://doi.org/10.1111/j.2517-6161.1980.tb01109.x
  • Agresti, A. (2010). Analysis of ordinal categorical data (2nd ed.). Wiley. https://doi.org/10.1002/9780470594001
  • Christensen, R. H. B. (2026). Cumulative link models for ordinal regression with the R package ordinal [Package vignette, ordinal version 2026.7-26]. https://cran.r-project.org/package=ordinal https://cran.r-project.org/package=ordinal
    “Similarly the odds ratio of the event Y ≥ j is exp(βtreatment).” (Section 2.2, p. 6)
    “which is independent of j. Thus the cumulative odds ratio is proportional to the distance between x1 and x2 which motivated McCullagh (1980) to denote the cumulative logit model a proportional odds model.” (Section 2.2, p. 6)
  • Ripley, B., & Venables, B. (2025). MASS: Support functions and datasets for Venables and Ripley's MASS (R package version 7.3-65) [Computer software]. https://cran.r-project.org/package=MASS https://doi.org/10.32614/CRAN.package.MASS
    “Note that it is quite common for other software to use the opposite sign for eta (and hence the coefficients ‘beta’).” (polr help page, Details)
  • IBM Corp. (2022). IBM SPSS Statistics 29 algorithms. IBM Corp. https://www.ibm.com/docs/en/SSLVMB_29.0.0/pdf/IBM_SPSS_Statistics_Algorithms.pdf
  • Liddell, T. M., & Kruschke, J. K. (2018). Analyzing ordinal data with metric models: What could possibly go wrong? Journal of Experimental Social Psychology, 79, 328–348. https://doi.org/10.1016/j.jesp.2018.08.009
    “analyzing ordinal data as if they were metric can systematically lead to errors.” (Abstract)
  • Peterson, B., & Harrell, F. E., Jr. (1990). Partial proportional odds models for ordinal response variables. Applied Statistics, 39(2), 205–217. https://doi.org/10.2307/2347760
  • Chen, H., Cohen, P., & Chen, S. (2010). How big is a big odds ratio? Interpreting the magnitudes of odds ratios in epidemiological studies. Communications in Statistics—Simulation and Computation, 39(4), 860–864. https://doi.org/10.1080/03610911003650383
    “OR = 1.68, 3.47, and 6.71 are equivalent to Cohen's d = 0.2 (small), 0.5 (medium), and 0.8 (large), respectively, when disease rate is 1% in the nonexposed group” (Abstract)
  • Whitehead, J. (1993). Sample size calculations for ordered categorical data. Statistics in Medicine, 12(24), 2257–2271. https://doi.org/10.1002/sim.4780122404
  • Wilks, S. S. (1938). The large-sample distribution of the likelihood ratio for testing composite hypotheses. The Annals of Mathematical Statistics, 9(1), 60–62. https://doi.org/10.1214/aoms/1177732360
  • Muff, S., Nilsen, E. B., O'Hara, R. B., & Nater, C. R. (2022). Rewriting results sections in the language of evidence. Trends in Ecology & Evolution, 37(3), 203–210. https://doi.org/10.1016/j.tree.2021.10.009
    “we suggest language of evidence that allows for a more nuanced approach to communicate scientific findings as a simple and intuitive alternative to statistical significance testing” (Abstract)
  • Box, G. E. P., & Tidwell, P. W. (1962). Transformation of the independent variables. Technometrics, 4(4), 531–550. https://doi.org/10.1080/00401706.1962.10490038
  • Hosmer, D. W., Lemeshow, S., & Sturdivant, R. X. (2013). Applied logistic regression (3rd ed.). Wiley. https://doi.org/10.1002/9781118548387
  • O'Brien, R. M. (2007). A caution regarding rules of thumb for variance inflation factors. Quality & Quantity, 41(5), 673–690. https://doi.org/10.1007/s11135-006-9018-6

Spot an error? Something still confusing? Tell us at support@statsforpsychology.com.