Co to jest test Stuarta–Maxwella?
Test Stuarta–Maxwella (ang. Stuart–Maxwell test, test jednorodności brzegów) sprawdza, czy w kwadratowej tabeli krzyżowej k × k dla tych samych osób rozkład kategorii w wierszach jest taki sam jak w kolumnach. Stuart (1955) zaproponował go jako test jednorodności rozkładów brzegowych, a Maxwell (1970) zastosował do porównania klasyfikacji tych samych osób przez dwóch niezależnych sędziów. Jest uogólnieniem testu McNemara na więcej kategorii; przy k = 2 daje ten sam wynik co McNemar bez poprawki na ciągłość. Statystyka ma w przybliżeniu rozkład chi-kwadrat z df = k − 1.
Jednorodność brzegów a symetria
Test symetrii Bowkera pyta o coś mocniejszego: czy z kategorii i do j przeszło tyle samo osób co z j do i (df = k(k − 1)/2). Tabela symetryczna zawsze ma jednorodne brzegi, ale nie odwrotnie. Gdy osoby przechodzą „w kółko” (z niskiego na średni, ze średniego na wysoki, z wysokiego na niski), liczebności brzegowe się nie zmieniają, a tabela jest niesymetryczna. Test Stuarta–Maxwella odpowiada więc na pytanie, czy zmienił się rozkład w grupie, a Bowker – czy zmiany w obu kierunkach się równoważą.
Przykład
Wykorzystaliśmy tabelę z hasła o teście Bowkera: poziom wiedzy 120 osób przed szkoleniem i po nim. Liczba osób z niskim poziomem spadła z 46 do 24, a z wysokim wzrosła z 20 do 40. Test Stuarta–Maxwella: χ²(2) = 22.62, p < .001. W drugiej tabeli ze zmianami „w kółko” χ² = 0, a test Bowkera dał χ²(3) = 16.00, p = .001.
Jak opisać w pracy
Na co uważać
- Tylko dane zależne. Dla dwóch niezależnych grup użyj testu chi-kwadrat niezależności.
- Jednorodność to nie zgodność. Dwóch sędziów może mieć identyczne brzegi, a mimo to często się nie zgadzać. Zgodność opisuje kappa Cohena.
- Rzadkie kategorie. Gdy w jakiejś kategorii nikt nie zmienił odpowiedzi ani do niej nie przeszedł, macierz kowariancji różnic może być osobliwa i test nie da wyniku – połącz wtedy kategorie.
Test Stuarta–Maxwella w R
Kod liczy test Stuarta–Maxwella funkcją StuartMaxwellTest() z pakietu DescTools, sprawdza wynik wzorem macierzowym, a na drugiej tabeli pokazuje, że brzegi mogą być jednorodne, choć tabela nie jest symetryczna.
Jednorodność brzegów a symetria tabeli 3 × 3
R
suppressPackageStartupMessages(library(DescTools))
poziomy <- c("niski", "sredni", "wysoki")
tab <- matrix(c(18, 22, 6,
5, 30, 19,
1, 4, 15), nrow = 3, byrow = TRUE,
dimnames = list(przed = poziomy, po = poziomy)) # dane przykładowe, N = 120
rbind(przed = rowSums(tab), po = colSums(tab)) # rozkłady brzegowe
StuartMaxwellTest(tab) # jednorodność brzegów, df = k − 1
# ręcznie: d – różnice brzegów, S – macierz kowariancji d (bez ostatniej kategorii)
k <- nrow(tab); d <- (rowSums(tab) - colSums(tab))[-k]
S <- -(tab + t(tab))[-k, -k]
diag(S) <- (rowSums(tab) + colSums(tab) - 2 * diag(tab))[-k]
chi2 <- drop(t(d) %*% solve(S) %*% d)
round(c(chi2 = chi2, df = k - 1, p = pchisq(chi2, k - 1, lower.tail = FALSE)), 6)
# tabela z równymi brzegami, ale niesymetryczna: zmiany "w kółko"
tab2 <- matrix(c(20, 10, 2,
2, 20, 10,
10, 2, 20), nrow = 3, byrow = TRUE,
dimnames = list(przed = poziomy, po = poziomy))
as.numeric(StuartMaxwellTest(tab2)$statistic) # brzegi jednorodne: chi2 = 0
mcnemar.test(tab2) # test symetrii BowkeraWynik w R
niski sredni wysoki
przed 46 54 20
po 24 56 40
Stuart-Maxwell test
data: tab
chi-squared = 22.616, df = 2, p-value = 1.228e-05
chi2 df p
22.615860 2.000000 0.000012
[1] 0
McNemar's Chi-squared test
data: tab2
McNemar's chi-squared = 16, df = 3, p-value = 0.001134Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet DescTools). 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/
- DescTools (wersja 0.99.60): Signorell, A. (2025). DescTools: Tools for descriptive statistics (R package version 0.99.60) [Computer software]. https://doi.org/10.32614/CRAN.package.DescTools
Najczęstsze pytania
Kiedy wybrać test Stuarta–Maxwella, a kiedy test Bowkera?
Stuart–Maxwell odpowiada na pytanie, czy zmienił się rozkład kategorii w grupie. Bowker pyta, czy przejścia między każdą parą kategorii są równie częste w obu kierunkach. Do pytania „czy po szkoleniu jest więcej osób z wysokim poziomem” wystarczy Stuart–Maxwell.
Jak policzyć test Stuarta–Maxwella w R?
Funkcją StuartMaxwellTest(tab) z pakietu DescTools, gdzie tab to kwadratowa tabela z tymi samymi kategoriami w wierszach i kolumnach. Wbudowana funkcja mcnemar.test() dla tabeli k × k liczy test Bowkera, nie Stuarta–Maxwella.
Czy test Stuarta–Maxwella mierzy zgodność dwóch sędziów?
Nie. Sprawdza tylko, czy sędziowie równie często używają poszczególnych kategorii. Mogą mieć identyczne brzegi i mimo to często się nie zgadzać, dlatego zgodność opisuje się kappą Cohena.
Powiązane hasła
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)
- Bowker, A. H. (1948). A test for symmetry in contingency tables. Journal of the American Statistical Association, 43(244), 572–574. https://doi.org/10.1080/01621459.1948.10483284
- Maxwell, A. E. (1970). Comparing the classification of subjects by two independent judges. British Journal of Psychiatry, 116(535), 651–655. https://doi.org/10.1192/bjp.116.535.651
- Stuart, A. (1955). A test for homogeneity of the marginal distributions in a two-way classification. Biometrika, 42(3–4), 412–416. https://doi.org/10.1093/biomet/42.3-4.412
Cytowania BibTeX
@article{bowker1948test, author={Bowker, Albert H.}, title={{A test for symmetry in contingency tables}}, journal={Journal of the American Statistical Association}, year={1948}, volume={43}, number={244}, pages={572--574}, doi={10.1080/01621459.1948.10483284}}@article{maxwell1970comparing, author={Maxwell, A. E.}, title={{Comparing the classification of subjects by two independent judges}}, journal={British Journal of Psychiatry}, year={1970}, volume={116}, number={535}, pages={651--655}, doi={10.1192/bjp.116.535.651}}@article{stuart1955test, author={Stuart, Alan}, title={{A test for homogeneity of the marginal distributions in a two-way classification}}, journal={Biometrika}, year={1955}, volume={42}, number={3–4}, pages={412--416}, doi={10.1093/biomet/42.3-4.412}}