Słownik metodologiczny · Modele regresji

Model CLMM – jak analizować odpowiedzi porządkowe w pomiarach powtarzanych?

CLMM to regresja porządkowa z efektami losowymi – model dla skal Likerta mierzonych wielokrotnie u tych samych osób. Pokazujemy równanie, interpretację OR, przykład w R (ordinal::clmm), opis do pracy i pułapki.

Strona główna / Słownik / Model CLMM
W skrócie: Model CLMM to kumulatywny model logitowy (regresja porządkowa) z efektami losowymi, np. losowym wyrazem wolnym osoby. Nadaje się do skal Likerta w pomiarach powtarzanych, a jego ilorazy szans opisują zmianę dla tej samej osoby, nie przeciętną w populacji.

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

Oceny (1–5) analizowano kumulatywnym modelem logitowym z losowym wyrazem wolnym osoby (pakiet ordinal, funkcja clmm). W porównaniu z pierwszym pomiarem szanse wyższej oceny były większe w drugim (OR = 2.09, 95% CI [1.17, 3.74]) i trzecim pomiarze (OR = 2.87, 95% CI [1.59, 5.19]). Odchylenie standardowe losowego wyrazu wolnego wyniosło 1.24.

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).

Przykład reprodukowalny

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

Dane wejściowe: 80 osób × 3 pomiary, odpowiedź porządkowa 1–5 (dane symulowane, set.seed(3991)).

Co odczytać: rozkład ocen w pomiarach, wariancję i SD efektu osoby, współczynniki czasu i progi, OR z 95% CI, ICC na skali ukrytej oraz współczynniki i błędy standardowe z clmm() i clm().

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.285

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet ordinal). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).

  1. 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/
  2. 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

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. 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
  2. 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}}
R