Słownik metodologiczny · Modele regresji

Losowe nachylenie (random slope) – kiedy je dodać do modelu wielopoziomowego?

Losowe nachylenie pozwala, by efekt predyktora różnił się między grupami. Pokazujemy, kiedy je dodać, jak je przetestować w lme4 i dlaczego jego brak zaniża błąd standardowy, z gotowym opisem do pracy.

Strona główna / Słownik / Losowe nachylenie
W skrócie: Losowe nachylenie pozwala, by związek predyktora poziomu 1 ze zmienną zależną miał inną siłę w każdej grupie. Model szacuje średnie nachylenie i wariancję nachyleń między grupami. Pominięcie losowego nachylenia, gdy grupy naprawdę się różnią, zaniża błąd standardowy efektu stałego i daje zbyt optymistyczne p.

Co to jest losowe nachylenie?

Losowe nachylenie (ang. random slope) to składnik modelu wielopoziomowego, który pozwala, by związek predyktora poziomu 1 ze zmienną zależną miał inną siłę w każdej grupie: klasie, szkole, oddziale albo u każdej osoby w pomiarach powtarzanych. Model szacuje średnie nachylenie (efekt stały, γ₁₀) i wariancję odchyleń grup od niego (τ₁₁). Ogólne rozróżnienie opisuje hasło efekty stałe i losowe. Tu chodzi o to, kiedy losowe nachylenie dodać i co się dzieje, gdy go zabraknie.

Kiedy je dodać

  • Gdy predyktor zmienia się wewnątrz grup, a teoria lub schemat badania dopuszcza różne efekty w grupach. Barr i in. (2013) zalecają w testowaniu hipotez strukturę losową „maksymalną”, uzasadnioną schematem badania.
  • Gdy model się nie zbiega, upraszczaj go stopniowo. Matuschek i in. (2017) pokazują, że struktura wybrana na podstawie danych daje większą moc bez zawyżania błędu I rodzaju.
  • Zawsze przy interakcji międzypoziomowej, bo to ona ma wyjaśniać różnice nachyleń.

W lme4 losowe nachylenie zapisuje się jako (1 + x | grupa) (Bates i in., 2015). Predyktor warto przedtem wycentrować w grupach, żeby nachylenie opisywało wyłącznie efekt wewnątrzgrupowy.

Przykład

W danych symulowanych 800 uczniów z 40 klas podawało tygodniową liczbę godzin nauki. Odchylenie standardowe nachyleń między klasami wyniosło 1.08 punktu na godzinę. Test ilorazu wiarygodności porównujący modele z losowym nachyleniem i bez niego dał χ²(2) = 111.58, p < .001. Średnie nachylenie było podobne w obu modelach (1.84 i 1.91), ale błąd standardowy bez losowego nachylenia był ponad dwa razy mniejszy (0.084 zamiast 0.187). Model bez losowego nachylenia przedstawiał więc wynik jako znacznie pewniejszy, niż pozwalają dane.

Jak opisać w pracy

Do modelu z losowym wyrazem wolnym dodano losowe nachylenie liczby godzin nauki (wycentrowanej w klasach), co istotnie poprawiło dopasowanie, χ²(2) = 111.58, p < .001 (REML). Średnie nachylenie wyniosło b = 1.91, SE = 0.19, a odchylenie standardowe nachyleń między klasami 1.08.

Na co uważać

  • Test wariancji jest na granicy przestrzeni parametrów. Wariancja nie może być ujemna, więc zwykłe p z testu ilorazu wiarygodności jest zachowawcze.
  • Porównuj modele o tych samych efektach stałych dopasowane metodą REML (REML a ML).
  • Losowe nachylenie wymaga wielu grup. Przy kilku grupach wariancja nachyleń jest oszacowana bardzo nieprecyzyjnie.

Losowe nachylenia czasu pokazuje wpis Modele wzrostu w lme4, w modelu z mediatorem – Mediacja wielopoziomowa w R, a cały model – Model wielopoziomowy krok po kroku.

Przykład reprodukowalny

Losowe nachylenie w R

Kod dopasowuje w lme4 model z samym losowym wyrazem wolnym i model z losowym nachyleniem, porównuje je testem ilorazu wiarygodności i zestawia błędy standardowe średniego nachylenia.

Czy potrzebne jest losowe nachylenie godzin nauki

Dane wejściowe: wynik testu i tygodniowa liczba godzin nauki 800 uczniów z 40 klas (dane symulowane, set.seed(3071)).

Co odczytać: odchylenie standardowe nachyleń (godz_c w VarCorr), test Chisq z df = 2 oraz Estimate, Std. Error i df nachylenia w obu modelach.

R
suppressPackageStartupMessages(library(lmerTest))
set.seed(3071)
J <- 40; nj <- 20                                            # 40 klas po 20 uczniów
klasa <- factor(rep(1:J, each = nj))
u0 <- rnorm(J, 0, 4); u1 <- rnorm(J, 0, 1.2)                 # klasy różnią się poziomem i nachyleniem
godz <- round(runif(J * nj, 0, 10), 1)                       # tygodniowe godziny nauki
godz_c <- godz - ave(godz, klasa)                            # centrowanie w obrębie klasy
wynik <- 60 + u0[klasa] + (1.5 + u1[klasa]) * godz_c + rnorm(J * nj, 0, 6)
m0 <- lmer(wynik ~ godz_c + (1 | klasa))                     # tylko losowy wyraz wolny
m1 <- lmer(wynik ~ godz_c + (1 + godz_c | klasa))            # losowe nachylenie
VarCorr(m1)
anova(m1, m0, refit = FALSE)                                 # LRT dla wariancji nachyleń (REML)
round(rbind(bez_losowego_nachylenia = summary(m0)$coefficients["godz_c", ],
            z_losowym_nachyleniem   = summary(m1)$coefficients["godz_c", ]), 3)
Wynik w R
 Groups   Name        Std.Dev. Corr   
 klasa    (Intercept) 3.6355          
          godz_c      1.0821   -0.110 
 Residual             5.8616          
Data: NULL
Models:
m0: wynik ~ godz_c + (1 | klasa)
m1: wynik ~ godz_c + (1 + godz_c | klasa)
   npar    AIC    BIC  logLik -2*log(L)  Chisq Df Pr(>Chisq)    
m0    4 5377.1 5395.9 -2684.6    5369.1                         
m1    6 5269.5 5297.7 -2628.8    5257.5 111.58  2  < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
                        Estimate Std. Error      df t value Pr(>|t|)
bez_losowego_nachylenia    1.841      0.084 759.000  21.978        0
z_losowym_nachyleniem      1.906      0.187  39.028  10.182        0

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcja lmer() pakietu lme4 z testami pakietu lmerTest). 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. lme4 (wersja 2.0.1): Bates, D., Mächler, M., Bolker, B., & Walker, S. (2015). Fitting linear mixed-effects models using lme4. Journal of Statistical Software, 67(1), 1–48. https://doi.org/10.18637/jss.v067.i01
  3. lmerTest (wersja 3.2.1): Kuznetsova, A., Brockhoff, P. B., & Christensen, R. H. B. (2017). lmerTest package: Tests in linear mixed effects models. Journal of Statistical Software, 82(13), 1–26. https://doi.org/10.18637/jss.v082.i13

Najczęstsze pytania

Jak sprawdzić, czy losowe nachylenie jest potrzebne?

Porównaj model z losowym nachyleniem i bez niego testem ilorazu wiarygodności, przy tych samych efektach stałych i estymacji REML. Weź też pod uwagę schemat badania, nie tylko wynik testu.

Co zrobić, gdy model z losowym nachyleniem się nie zbiega?

Wycentruj i przeskaluj predyktor, zmień optymalizator, a potem upraszczaj strukturę, np. usuń korelację efektów losowych. Każde uproszczenie opisz w pracy.

Dlaczego bez losowego nachylenia efekt wygląda na pewniejszy?

Model traktuje wtedy wszystkie obserwacje jak niezależne informacje o jednym nachyleniu. W przykładzie błąd standardowy spadł z 0.187 do 0.084, a stopnie swobody wzrosły z 39 do 759.

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. Barr, D. J., Levy, R., Scheepers, C., & Tily, H. J. (2013). Random effects structure for confirmatory hypothesis testing: Keep it maximal. Journal of Memory and Language, 68(3), 255–278. https://doi.org/10.1016/j.jml.2012.11.001 ● Otwarty dostęp: pełny tekst
  2. Bates, D., Mächler, M., Bolker, B., & Walker, S. (2015). Fitting linear mixed-effects models using lme4. Journal of Statistical Software, 67(1), 1–48. https://doi.org/10.18637/jss.v067.i01 ● Otwarty dostęp
  3. Matuschek, H., Kliegl, R., Vasishth, S., Baayen, H., & Bates, D. (2017). Balancing Type I error and power in linear mixed models. Journal of Memory and Language, 94, 305–315. https://doi.org/10.1016/j.jml.2017.01.001 ● Otwarty dostęp

Cytowania BibTeX

@article{barr2013random, author={Barr, Dale J. and Levy, Roger and Scheepers, Christoph and Tily, Harry J.}, title={{Random effects structure for confirmatory hypothesis testing: Keep it maximal}}, journal={Journal of Memory and Language}, year={2013}, volume={68}, number={3}, pages={255--278}, doi={10.1016/j.jml.2012.11.001}}
@article{bates2015fitting, author={Bates, Douglas and Mächler, Martin and Bolker, Ben and Walker, Steve}, title={{Fitting linear mixed-effects models using lme4}}, journal={Journal of Statistical Software}, year={2015}, volume={67}, number={1}, pages={1--48}, doi={10.18637/jss.v067.i01}}
@article{matuschek2017balancing, author={Matuschek, Hannes and Kliegl, Reinhold and Vasishth, Shravan and Baayen, Harald and Bates, Douglas}, title={{Balancing Type I error and power in linear mixed models}}, journal={Journal of Memory and Language}, year={2017}, volume={94}, pages={305--315}, doi={10.1016/j.jml.2017.01.001}}
R