Słownik metodologiczny · Modele regresji

Stopnie swobody Kenwarda–Rogera i Satterthwaite’a – skąd wartość p w modelu mieszanym?

Przybliżenia Kenwarda–Rogera i Satterthwaite’a wyznaczają stopnie swobody testów efektów stałych w modelach mieszanych. Pokazujemy, czym się różnią, dlaczego predyktor poziomu grupy ma mało df i przykład w lmerTest.

Strona główna / Słownik / Kenward–Roger i Satterthwaite
W skrócie: Kenward–Roger i Satterthwaite to przybliżenia stopni swobody testów t i F dla efektów stałych w liniowych modelach mieszanych. Predyktor poziomu grupy dostaje df zbliżone do liczby grup, a nie osób, więc przy kilkunastu grupach wartość p wyraźnie rośnie.

Co to są stopnie swobody Kenwarda–Rogera i Satterthwaite’a?

Przybliżenia Kenwarda–Rogera i Satterthwaite’a (ang. Kenward–Roger, Satterthwaite approximation) to metody wyznaczania mianownikowych stopni swobody testów t i F dla efektów stałych w liniowym modelu mieszanym. W takim modelu nie ma jednej oczywistej liczby df: za predyktorem poziomu osoby stoi inna ilość informacji niż za predyktorem poziomu grupy. Dlatego pakiet lme4 nie podaje wartości p.

Jak działają

  • Satterthwaite wyznacza df z oszacowanych komponentów wariancji i ich niepewności. Podobną ideę wykorzystuje test Welcha. W R daje je pakiet lmerTest (Kuznetsova i in., 2017).
  • Kenward–Roger dodatkowo koryguje macierz kowariancji efektów stałych, której zwykłe oszacowanie w małych próbach jest obciążone, i stosuje skalowany test F dla modeli REML (Kenward i Roger, 1997). W lmerTest wybiera się ją opcją ddf = "Kenward-Roger" (potrzebny pakiet pbkrtest).

W symulacjach Luke’a (2017) obie metody z estymacją REML utrzymywały odsetek błędów I rodzaju najbliżej .05. Test ilorazu wiarygodności i traktowanie t jak z były nieco liberalne, zwłaszcza w małych próbach.

Przykład

W danych symulowanych 140 pacjentów z 14 poradni nowy program wdrożony w 7 poradniach wiązał się z niższym nasileniem objawów, b = −3.43, SE = 1.21, t = −2.84. Satterthwaite dał df = 11.89, a Kenward–Roger df = 11.94, w obu przypadkach p = .015. Przy df liczonych od liczby pacjentów (137) wyszłoby p = .005. Wiek pacjenta (poziom 1) w obu metodach miał około 132 df.

Jak opisać w pracy

Efekty stałe testowano z przybliżeniem stopni swobody Kenwarda–Rogera (pakiet lmerTest, model REML). Pacjenci poradni z nowym programem mieli niższe nasilenie objawów, b = −3.43, SE = 1.21, t(11.94) = −2.84, p = .015.

Na co uważać

  • df od liczby osób. Dla predyktora poziomu grupy zawyżają moc i zaniżają p, zwłaszcza przy kilkunastu grupach.
  • Zakres metod. Obie dotyczą liniowych modeli mieszanych. W glmer() dostajesz test Walda z (zob. wielopoziomowa regresja logistyczna).
  • Podaj metodę. Napisz, którą metodę df wybrano i w jakim pakiecie, także w modelach wzrostu.

Porównanie obu metod w pełnym modelu z interakcją międzypoziomową pokazuje wpis Model wielopoziomowy krok po kroku.

Przykład reprodukowalny

Kenward–Roger i Satterthwaite w R

Kod dopasowuje model mieszany w lmerTest, odczytuje df i p dla obu przybliżeń i porównuje je z naiwnymi df liczonymi od liczby pacjentów.

Df i wartości p dla predyktora poziomu poradni i pacjenta

Dane wejściowe: nasilenie objawów 140 pacjentów z 14 poradni po 10 osób; program (0/1) na poziomie poradni, wiek na poziomie pacjenta (dane symulowane, set.seed(3111)).

Co odczytać: kolumny df i Pr(>|t|) dla Satterthwaite’a (pierwsza para) i Kenwarda–Rogera (druga para), a potem t programu, naiwne df i odpowiadające im p oraz p z rozkładu normalnego.

R
library(lmerTest)                                    # ładuje lme4 i dodaje df oraz p
set.seed(3111)
J <- 14; n_j <- 10                                   # 14 poradni po 10 pacjentów (dane symulowane)
poradnia <- rep(1:J, each = n_j)
program  <- rep(rep(0:1, length.out = J), each = n_j)  # poziom 2: nowy program w 7 poradniach
wiek     <- round(rnorm(J * n_j, 45, 12))              # poziom 1: wiek pacjenta
objawy   <- 30 - 3 * program + 0.1 * (wiek - 45) + rnorm(J, 0, 2.5)[poradnia] + rnorm(J * n_j, 0, 5)
m <- lmer(objawy ~ program + wiek + (1 | poradnia))
tab <- function(ddf) summary(m, ddf = ddf)$coefficients[c("program", "wiek"), c("df", "Pr(>|t|)")]
round(cbind(tab("Satterthwaite"), tab("Kenward-Roger")), 3)
t_prog <- summary(m)$coefficients["program", "t value"]
round(c(t = t_prog, df_naiwne = J * n_j - 3,
        p_naiwne = 2 * pt(-abs(t_prog), J * n_j - 3), p_z = 2 * pnorm(-abs(t_prog))), 3)
Wynik w R
             df Pr(>|t|)      df Pr(>|t|)
program  11.895    0.015  11.940    0.015
wiek    131.790    0.001 131.811    0.001
        t df_naiwne  p_naiwne       p_z 
   -2.843   137.000     0.005     0.004

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcja lmer() pakietu lme4 z testami pakietu lmerTest; przybliżenie Kenwarda–Rogera liczy pakiet pbkrtest). 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
  4. pbkrtest (wersja 0.5.5): Halekoh, U., & Højsgaard, S. (2014). A Kenward-Roger approximation and parametric bootstrap methods for tests in linear mixed models – The R package pbkrtest. Journal of Statistical Software, 59(9), 1–30. https://doi.org/10.18637/jss.v059.i09

Najczęstsze pytania

Kiedy Kenward–Roger daje wyraźnie inny wynik niż Satterthwaite?

Głównie przy małej liczbie grup, bo Kenward–Roger koryguje też błędy standardowe efektów stałych. Przy kilkunastu i więcej grupach obie metody zwykle dają niemal te same df i p.

Dlaczego lme4 nie podaje wartości p dla efektów stałych?

Bo w modelu mieszanym nie ma jednej oczywistej liczby stopni swobody dla statystyki t. Wartości p z przybliżeniem Satterthwaite’a lub Kenwarda–Rogera dodaje pakiet lmerTest.

Ile stopni swobody ma predyktor poziomu grupy?

Zwykle niewiele mniej niż liczba grup, a nie liczba osób. W przykładzie z 14 poradniami program miał około 12 df, choć pacjentów było 140.

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. Kenward, M. G., & Roger, J. H. (1997). Small sample inference for fixed effects from restricted maximum likelihood. Biometrics, 53(3), 983–997. https://doi.org/10.2307/2533558
  2. 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 ● Otwarty dostęp
  3. Luke, S. G. (2017). Evaluating significance in linear mixed-effects models in R. Behavior Research Methods, 49(4), 1494–1502. https://doi.org/10.3758/s13428-016-0809-y ● Otwarty dostęp

Cytowania BibTeX

@article{kenward1997small, author={Kenward, Michael G. and Roger, James H.}, title={{Small sample inference for fixed effects from restricted maximum likelihood}}, journal={Biometrics}, year={1997}, volume={53}, number={3}, pages={983--997}, doi={10.2307/2533558}}
@article{kuznetsova2017lmertest, author={Kuznetsova, Alexandra and Brockhoff, Per B. and Christensen, Rune H. B.}, title={{lmerTest package: Tests in linear mixed effects models}}, journal={Journal of Statistical Software}, year={2017}, volume={82}, number={13}, pages={1--26}, doi={10.18637/jss.v082.i13}}
@article{luke2017evaluating, author={Luke, Steven G.}, title={{Evaluating significance in linear mixed-effects models in R}}, journal={Behavior Research Methods}, year={2017}, volume={49}, number={4}, pages={1494--1502}, doi={10.3758/s13428-016-0809-y}}
R