Sferyczność: test Mauchly’ego i poprawka Greenhouse’a-Geissera
Sferyczność to założenie ANOVA z powtarzanymi pomiarami: różnice między każdą parą pomiarów mają podobną wariancję. Typowe pytanie z pracy dyplomowej: co zrobić, gdy program pokazuje test Mauchly’ego i trzy różne wartości p – „bez korekty”, „Greenhouse-Geisser” i „Huynh-Feldt”?
W prostych słowachMierzysz te same osoby trzy razy. Dla każdej osoby możesz policzyć, o ile zmieniła się między pomiarami 1 i 2, 1 i 3 oraz 2 i 3. Sferyczność oznacza, że te zmiany są u różnych osób mniej więcej tak samo zróżnicowane w każdej parze. Gdy tak nie jest, zwykły test F za często daje istotny wynik. Poprawka Greenhouse’a-Geissera zmniejsza wtedy stopnie swobody, a wartość p rośnie.
Kiedy sprawdzać sferyczność?
- liczysz ANOVA z powtarzanymi pomiarami albo dwuczynnikową ANOVA z powtarzanymi pomiarami;
- czynnik powtarzany ma co najmniej trzy poziomy – przy dwóch pomiarach jest tylko jedna różnica, więc sferyczność jest spełniona zawsze;
- chcesz zdecydować, którą wartość p raportować: bez korekty czy z poprawką.
To odpowiednik założenia o równych wariancjach w grupach niezależnych, które sprawdza się testem Levene’a. Gdy dane są porządkowe albo mocno skośne, zamiast ANOVA użyj testu Friedmana, który sferyczności nie wymaga.
Wzór na ε Greenhouse’a-Geissera i W Mauchly’ego
- \(k,\ n\)
- liczba pomiarów i liczba osób
- \(V_{12},\ V_{13},\ V_{23}\)
- wariancje różnic między pomiarami 1 i 2, 1 i 3 oraz 2 i 3 – policzone tak jak zwykła wariancja
- \(\mathbf{S}\)
- macierz kowariancji dwóch „porównań” (kontrastów): pierwsze zestawia pomiar 1 z 2, drugie – średnią z pomiarów 1 i 2 z pomiarem 3; dla trzech pomiarów ma wymiar 2×2
- \(a,\ b,\ c\)
- elementy tej macierzy: wariancje obu porównań i ich kowariancja
- \(\operatorname{tr} \mathbf{S}\)
- ślad, czyli suma liczb na przekątnej: a + b
- \(\operatorname{tr}(\mathbf{S}^2)\)
- dla macierzy 2×2: a² + b² + 2c²
- \(\det \mathbf{S}\)
- wyznacznik: a · b − c²
- \(\varepsilon\)
- (epsilon) miara sferyczności: 1 = idealna, najmniej 1 / (k − 1), czyli 0,5 przy trzech pomiarach
- \(W\)
- statystyka testu Mauchly’ego: 1 = idealna sferyczność, im bliżej 0, tym silniejsze naruszenie
Na głos: „epsilon to kwadrat sumy przekątnej macierzy podzielony przez liczbę pomiarów minus jeden i przez sumę kwadratów wszystkich jej elementów”. Gdy wariancje różnic są równe, c = 0 i a = b, więc ε = 1.
Przykład krok po kroku
Pięcioro studentów oceniło swoją wiedzę ze statystyki (skala 1–10) przed warsztatami, zaraz po nich i miesiąc później. Średnie pomiarów to 5, 6 i 7. Dla każdej osoby liczysz trzy różnice i ich odchylenia od średniej różnicy.
| Osoba | Przed | Po | Miesiąc | d₁₂ = przed − po | (d₁₂ + 1)² | d₁₃ = przed − miesiąc | (d₁₃ + 2)² | d₂₃ = po − miesiąc | (d₂₃ + 1)² |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 6 | 6 | 7 | 0 | 1 | −1 | 1 | −1 | 0 |
| 2 | 4 | 5 | 6 | −1 | 0 | −2 | 0 | −1 | 0 |
| 3 | 4 | 8 | 7 | −4 | 9 | −3 | 1 | 1 | 4 |
| 4 | 6 | 6 | 7 | 0 | 1 | −1 | 1 | −1 | 0 |
| 5 | 5 | 5 | 8 | 0 | 1 | −3 | 1 | −3 | 4 |
| Σ | 25 | 30 | 35 | −5 (średnia −1) | 12 | −10 (średnia −2) | 4 | −5 (średnia −1) | 8 |
- Wariancje różnic. Sumy kwadratów dzielisz przez n − 1 = 4: V₁₂ = 12 / 4 = 3; V₁₃ = 4 / 4 = 1; V₂₃ = 8 / 4 = 2. Przy idealnej sferyczności te trzy liczby byłyby równe.
- Element a. a = V₁₂ / 2 = 3 / 2 = 1,5.
- Element b. b = (2 · 1 + 2 · 2 − 3) / 6 = (2 + 4 − 3) / 6 = 3 / 6 = 0,5.
- Element c². c² = (1 − 2)² / 12 = 1 / 12 = 0,0833.
- Ślad. tr S = a + b = 1,5 + 0,5 = 2. Do kwadratu: 2² = 4. (Ślad to zawsze średnia z trzech wariancji różnic: (3 + 1 + 2) / 3 = 2.)
- Ślad kwadratu macierzy. a² + b² + 2c² = 2,25 + 0,25 + 2 · 0,0833 = 2,6667.
- Epsilon. ε = 4 / (2 · 2,6667) = 4 / 5,3333 = 0,75. To pośrodku między 1 (pełna sferyczność) a 0,5 (najgorszy możliwy przypadek).
- Test Mauchly’ego. det S = 1,5 · 0,5 − 0,0833 = 0,6667. Mianownik: (2 / 2)² = 1. W = 0,6667 / 1 = 0,67. Program przelicza W na statystykę chi-kwadrat: χ² = −3 · ln(0,6667) = 3 · 0,4055 = 1,22 przy df = 2 (mnożnik 3 to n − 1 − (2 · 2² + 2 + 2) / (6 · 2) = 4 − 1). Wartość p = 0,544 (w R:
pchisq(1.22, 2, lower.tail = FALSE)). - Zwykły test F. SS pomiaru = 5 · [(5 − 6)² + (6 − 6)² + (7 − 6)²] = 10; SS błędu = 8. F = (10 / 2) / (8 / 8) = 5,00; df = 2 i 8; p = 0,039.
- Korekta. Mnożysz oba df przez ε: 2 · 0,75 = 1,5 oraz 8 · 0,75 = 6. Wartość F się nie zmienia, ale dla F(1,5; 6) = 5,00 wychodzi p = 0,059. Wartość krytyczna rośnie z 4,46 (
qf(0.95, 2, 8)) do 5,47 (qf(0.95, 1.5, 6)).
Jak zinterpretować i opisać wynik?
Test Mauchly’ego nie wykazał naruszenia sferyczności, a jednak ε = 0,75 i po korekcie wynik przestaje być istotny. Nie ma tu sprzeczności. Przy pięciu osobach test Mauchly’ego ma bardzo małą moc: nie „widzi” nawet trzykrotnych różnic w wariancjach. Przy setkach osób – odwrotnie – wyłapuje drobiazgi. Dlatego wielu metodologów radzi nie uzależniać decyzji od samego testu Mauchly’ego, tylko zawsze patrzeć na ε i wynik z poprawką Greenhouse’a-Geissera. Gdy ε jest większe od 0,75, część autorów zaleca łagodniejszą poprawkę Huynha-Feldta (Girden, 1992). W naszym przykładzie wynik bez korekty i z korektą prowadzi do różnych wniosków, więc w pracy uczciwie pokaż oba.
Zapis w stylu APA: Test Mauchly’ego nie wykazał naruszenia założenia sferyczności, W = 0,67; χ²(2) = 1,22; p = 0,544. Ze względu na małą liczebność próby zastosowano jednak poprawkę Greenhouse’a-Geissera (ε = 0,75). Zmiana samooceny wiedzy między pomiarami była nieistotna statystycznie, F(1,5; 6) = 5,00; p = 0,059; η²G = 0,45.
Jak sprawdzić sferyczność w R?
przed <- c(6, 4, 4, 6, 5); po <- c(6, 5, 8, 6, 5); miesiac <- c(7, 6, 7, 7, 8)
# 1) „ręcznie”: wariancje różnic, macierz 2×2, epsilon i W Mauchly'ego
V12 <- var(przed - po); V13 <- var(przed - miesiac); V23 <- var(po - miesiac)
a <- V12 / 2; b <- (2 * V13 + 2 * V23 - V12) / 6; c2 <- (V13 - V23)^2 / 12
eps <- (a + b)^2 / (2 * (a^2 + b^2 + 2 * c2)) # Greenhouse-Geisser
W <- (a * b - c2) / ((a + b) / 2)^2 # Mauchly
round(c(V12 = V12, V13 = V13, V23 = V23, eps = eps, W = W), 3)
# 2) gotowe funkcje (pakiet afex)
dane <- data.frame(id = factor(rep(1:5, 3)), y = c(przed, po, miesiac),
pomiar = factor(rep(c("przed", "po", "miesiac"), each = 5)))
suppressPackageStartupMessages(library(afex))
fit <- aov_ez("id", "y", dane, within = "pomiar")
suppressWarnings(summary(fit))$sphericity.tests # test Mauchly'ego
anova(fit, correction = "GG") # F z poprawką GG
Wynik w konsoli R:
V12 V13 V23 eps W
3.000 1.000 2.000 0.750 0.667
Test statistic p-value
pomiar 0.66667 0.54433
Anova Table (Type 3 tests)
Response: y
num Df den Df MSE F ges Pr(>F)
pomiar 1.5 6 1.3333 5 0.45455 0.05859 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Wzór „ręczny” daje te same liczby co pakiet: ε = 0,75 i W = 0,667. Pakiet afex sam mnoży stopnie swobody przez ε i podaje F(1,5; 6) z p = 0,059. Bez argumentu correction afex domyślnie stosuje korektę Greenhouse’a-Geissera.
Greenhouse-Geisser czy Huynh-Feldt – którą poprawkę wybrać?
Greenhouse-Geisser jest bezpieczniejszy, ale nieco zbyt surowy, gdy naruszenie jest niewielkie. Huynh-Feldt koryguje tę surowość i czasem daje ε większe od 1 – wtedy program przycina je do 1, czyli w praktyce nie robi korekty. Tak jest w naszym przykładzie: ε Huynha-Feldta wyszło 1,1, więc p = 0,039 jak bez korekty. Prosta reguła: przy ε poniżej 0,75 raportuj Greenhouse’a-Geissera, powyżej – możesz wybrać Huynha-Feldta. Inną drogą jest analiza wielozmiennowa (MANOVA dla pomiarów powtarzanych), która sferyczności nie zakłada, ale potrzebuje więcej osób.
Najczęstsze błędy
- Uznanie, że nieistotny test Mauchly’ego „dowodzi” sferyczności. Przy małej próbie to raczej brak mocy.
- Podawanie F z poprawionymi wartościami p, ale z całkowitymi df, np. F(2, 8). Po korekcie df są ułamkowe: F(1,5; 6).
- Sprawdzanie sferyczności przy dwóch pomiarach – tam założenie zawsze jest spełnione.
- Mylenie sferyczności z normalnością albo z równością wariancji samych pomiarów. Chodzi o wariancje różnic między pomiarami.
- Raportowanie W Mauchly’ego jako „ε”. To dwie różne liczby: W jest statystyką testu, ε – miarą do korekty.
Bibliografia
- Mauchly, J. W. (1940). Significance test for sphericity of a normal n-variate distribution. The Annals of Mathematical Statistics, 11(2), 204–209. https://doi.org/10.1214/aoms/1177731915
- Greenhouse, S. W., & Geisser, S. (1959). On methods in the analysis of profile data. Psychometrika, 24(2), 95–112. https://doi.org/10.1007/BF02289823
- Girden, E. R. (1992). ANOVA: Repeated measures. SAGE.
- Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. SAGE.
- Hryniewicz, K., & Milewska, A. (2023). SZTOS: System Zautomatyzowanego Tworzenia Opisu Statystycznego [Oprogramowanie]. SZTOS IT. https://sztos-it.com/
Zobacz też
- Słownik wzorówANOVA z powtarzanymi pomiarami
- Słownik wzorówDwuczynnikowa ANOVA z powtarzanymi pomiarami
- Słownik wzorówTest Friedmana
- Słownik wzorówTest Levene’a
- PoradnikTesty parametryczne
- Słownik wzorówSłownik wzorów statystycznych – wszystkie hasła
- Przykładowy raportTest t Studenta
Potrzebujesz pomocy z analizą do pracy dyplomowej?
Policzymy Twoje wyniki, przygotujemy tabele, wykresy i opis w standardzie APA, który wykorzystasz w swojej pracy. Pomagamy jak statystyk i redaktor – autorem pracy zostajesz Ty. Konsultacja i wycena są bezpłatne.