Co to jest model CLMM?
CLMM (ang. cumulative link mixed model) to regresja porządkowa z efektami losowymi, czyli porządkowy odpowiednik modelu mieszanego. Stosuje się go, gdy odpowiedź ma uporządkowane kategorie (np. skala Likerta 1–5), a obserwacje są zgrupowane: te same osoby oceniane wielokrotnie albo uczniowie w klasach. Hedeker i Gibbons (1994) opisali taki model dla danych zgrupowanych i podłużnych.
Model
logit P(Yij ≤ k) = θk − (βxij + ui), ui ~ N(0, σ²). Progi θk dzielą ukrytą zmienną ciągłą na obserwowane kategorie, a ui to losowy wyraz wolny osoby. Model dopasowuje się metodą największej wiarygodności z całkowaniem kwadraturą Gaussa–Hermite'a (Hedeker i Gibbons, 1994). exp(β) to iloraz szans wyższej kategorii dla tej samej osoby. Liddell i Kruschke (2018) pokazali, że analiza takich danych modelem metrycznym, np. porównaniem średnich, może dawać fałszywe alarmy, utratę mocy, a nawet odwrócenie kierunku efektu.
Przykład
Osiemdziesiąt osób oceniło samopoczucie na skali 1–5 w trzech pomiarach (dane symulowane). W porównaniu z pierwszym pomiarem OR wyższej oceny wyniósł 2.09, 95% CI [1.17, 3.74] w drugim i 2.87 [1.59, 5.19] w trzecim. Odchylenie standardowe losowego wyrazu wolnego to 1.24, a ICC na skali ukrytej .32. Zwykły model porządkowy bez efektu osoby dał słabsze współczynniki (0.62 i 0.89 zamiast 0.74 i 1.05), bo opisuje efekt przeciętny w populacji i pomija zależność pomiarów.
Jak opisać w pracy
Na co uważać
- Proporcjonalne szanse. Model zakłada jeden β dla wszystkich progów; sprawdź założenie proporcjonalnych szans w modelu bez efektów losowych.
- OR warunkowe, nie populacyjne. Napisz, że dotyczą tej samej osoby, jak w każdym GLMM.
- Struktura losowa. O losowych nachyleniach przeczytasz w haśle efekty stałe i losowe.
Przewidywane prawdopodobieństwa kategorii i porównanie z modelem liniowym pokazuje wpis Modele mieszane dla odpowiedzi porządkowych (CLMM).
CLMM w R
Kod symuluje oceny 1–5 z trzech pomiarów tych samych osób, dopasowuje clmm() z losowym wyrazem wolnym osoby, przelicza współczynniki na OR z 95% CI, liczy ICC na skali ukrytej i porównuje wynik ze zwykłym clm().
Kumulatywny model logitowy z losowym wyrazem wolnym
R
suppressPackageStartupMessages(library(ordinal))
set.seed(3991)
n <- 80 # osoby, każda oceniana 3 razy
d <- expand.grid(czas = factor(1:3), osoba = factor(1:n))
u <- rnorm(n, 0, 1.5) # losowy wyraz wolny osoby
eta <- c(0, 0.5, 1.0)[d$czas] + u[d$osoba]
d$ocena <- factor(findInterval(eta + rlogis(nrow(d)), c(-2, -0.7, 0.7, 2)) + 1,
levels = 1:5, ordered = TRUE) # odpowiedź na skali 1–5
table(d$czas, d$ocena)
m <- clmm(ocena ~ czas + (1 | osoba), data = d, nAGQ = 10)
summary(m)
round(exp(cbind(OR = coef(m), confint(m))[c("czas2", "czas3"), ]), 2)
s2 <- as.numeric(VarCorr(m)$osoba)
round(c(ICC_latentne = s2 / (s2 + pi^2 / 3)), 2) # skala ukrytej zmiennej logistycznej
m_clm <- clm(ocena ~ czas, data = d) # błędny model: ignoruje powtórzenia
round(cbind(clmm = coef(m)[c("czas2", "czas3")], SE_clmm = sqrt(diag(vcov(m)))[c("czas2", "czas3")],
clm = coef(m_clm)[c("czas2", "czas3")], SE_clm = sqrt(diag(vcov(m_clm)))[c("czas2", "czas3")]), 3)Wynik w R
1 2 3 4 5
1 18 13 21 14 14
2 11 11 16 19 23
3 8 11 14 19 28
Cumulative Link Mixed Model fitted with the adaptive Gauss-Hermite
quadrature approximation with 10 quadrature points
formula: ocena ~ czas + (1 | osoba)
data: d
link threshold nobs logLik AIC niter max.grad cond.H
logit flexible 240 -364.95 743.90 321(966) 3.93e-04 3.9e+01
Random effects:
Groups Name Variance Std.Dev.
osoba (Intercept) 1.527 1.236
Number of groups: osoba 80
Coefficients:
Estimate Std. Error z value Pr(>|z|)
czas2 0.7358 0.2971 2.477 0.013244 *
czas3 1.0536 0.3022 3.487 0.000489 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Threshold coefficients:
Estimate Std. Error z value
1|2 -1.6072 0.2997 -5.364
2|3 -0.4997 0.2673 -1.869
3|4 0.7077 0.2692 2.629
4|5 1.9310 0.3004 6.429
OR 2.5 % 97.5 %
czas2 2.09 1.17 3.74
czas3 2.87 1.59 5.19
ICC_latentne
0.32
clmm SE_clmm clm SE_clm
czas2 0.736 0.297 0.622 0.282
czas3 1.054 0.302 0.889 0.285Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet ordinal). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).
- R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
- ordinal (wersja 2026.7-26): Christensen, R. H. B. (2026). ordinal: Regression models for ordinal data (R package version 2026.7-26) [Computer software]. https://CRAN.R-project.org/package=ordinal
Najczęstsze pytania
Czym CLMM różni się od zwykłej regresji porządkowej?
Zwykła regresja porządkowa (clm()) zakłada niezależne obserwacje. CLMM dodaje efekt losowy, np. osoby, więc uwzględnia to, że oceny tej samej osoby są do siebie podobne, a OR opisują zmianę u tej samej osoby.
Jak sprawdzić założenie proporcjonalnych szans w CLMM?
Funkcja nominal_test() działa dla clm(), a clmm() nie przyjmuje efektów nominalnych (osobnych dla progów). W praktyce sprawdza się założenie w modelu clm() bez efektu losowego i podaje ten wynik jako przybliżony.
Ile punktów kwadratury ustawić w clmm?
Domyślnie clmm() używa przybliżenia Laplace'a. Przy jednym losowym wyrazie wolnym można ustawić adaptacyjną kwadraturę Gaussa–Hermite'a, np. nAGQ = 10, i sprawdzić, czy wyniki są zgodne z przybliżeniem Laplace'a.
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
Modele mieszane dla odpowiedzi porządkowych (CLMM)
Skala Likerta w pomiarach powtarzanych: clmm z losowym wyrazem wolnym, OR i prawdopodobieństwa kategorii, nominal_test, porównanie z LMM i opis APA.
Czytaj →PoradnikRegresja porządkowa krok po kroku
Model proporcjonalnych szans w R: progi, ilorazy szans, prawdopodobieństwa przewidywane, test Branta i tabela APA – na danych do pobrania.
Czytaj →Potrzebujesz wsparcia w analizie danych?
Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.
Wyceń analizęOferta dla studentówBibliografia i dalsza literatura naukowa (APA 7)
- Hedeker, D., & Gibbons, R. D. (1994). A random-effects ordinal regression model for multilevel analysis. Biometrics, 50(4), 933–944. https://doi.org/10.2307/2533433
- 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 ● Otwarty dostęp: pełny tekst
Cytowania BibTeX
@article{hedeker1994random, author={Hedeker, Donald and Gibbons, Robert D.}, title={{A random-effects ordinal regression model for multilevel analysis}}, journal={Biometrics}, year={1994}, volume={50}, number={4}, pages={933--944}, doi={10.2307/2533433}}@article{liddell2018analyzing, author={Liddell, Torrin M. and Kruschke, John K.}, title={{Analyzing ordinal data with metric models: What could possibly go wrong?}}, journal={Journal of Experimental Social Psychology}, year={2018}, volume={79}, pages={328--348}, doi={10.1016/j.jesp.2018.08.009}}