mcnemar.test() wywołany dla tabeli k × k.Co to jest test symetrii Bowkera?
Test symetrii Bowkera (ang. Bowker’s test of symmetry) sprawdza, czy w kwadratowej tabeli k × k dla tych samych osób zmiany w jedną stronę są równie częste jak zmiany w przeciwną. Typowy przykład to poziom wiedzy (niski, średni, wysoki) przed szkoleniem i po nim. Test opisał Bowker (1948). Jest uogólnieniem testu McNemara z tabeli 2 × 2 na więcej kategorii; przy k = 2 daje ten sam wynik co McNemar bez poprawki na ciągłość.
Jak liczyć
nij to liczba osób z kategorią i przed i j po. Jak w teście McNemara, liczą się tylko komórki poza przekątną, czyli osoby, które zmieniły kategorię (Pembury Smith i Ruxton, 2020). Hipoteza zerowa mówi, że tabela jest symetryczna: tyle samo osób przeszło z niskiego poziomu na średni, ile ze średniego na niski. W R funkcja mcnemar.test() wywołana dla tabeli k × k liczy właśnie test Bowkera.
Przykład
Poziom wiedzy 120 uczestników oceniono przed szkoleniem i po nim (dane przykładowe). Kategorię zachowały 63 osoby (52.5%), wyżej przeszło 47 (39.2%), a niżej 10 (8.3%). Liczba osób z niskim poziomem spadła z 46 do 24, a z wysokim wzrosła z 20 do 40. Test Bowkera: χ²(3) = 24.06, p < .001, więc zmiany nie rozkładają się symetrycznie.
Jak opisać w pracy
Na co uważać
- Nie używaj testu chi-kwadrat niezależności dla tej samej grupy mierzonej dwa razy. Ta tabela krzyżowa opisuje pary pomiarów, a nie dwie niezależne zmienne.
- Gdy obie komórki symetrycznej pary są puste, R zwraca
NaN. Połącz wtedy kategorie albo opisz zmiany bez testu. - Test nie korzysta z uporządkowania kategorii, więc przy skali porządkowej nie powie, o ile poziomów ktoś awansował. Przy kilku zmiennych 0/1 zamiast jednej porządkowej sięgnij po test Q Cochrana.
- Pełną analizę pokazuje wpis badanie wiedzy przed i po szkoleniu, a budowę samego testu – ankieta wiedzy.
Test Bowkera w R
Kod buduje tabelę 3 × 3 i liczy test Bowkera funkcją mcnemar.test(), a potem sprawdza wynik wzorem.
Poziom wiedzy przed szkoleniem i po nim
R
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
tab
mcnemar.test(tab) # dla tabeli k × k R liczy test symetrii Bowkera
# to samo ręcznie: suma (n_ij − n_ji)² / (n_ij + n_ji) nad przekątną, df = k(k − 1)/2
g <- upper.tri(tab); chi2 <- sum((tab[g] - t(tab)[g])^2 / (tab[g] + t(tab)[g]))
c(chi2 = chi2, df = sum(g), p = pchisq(chi2, sum(g), lower.tail = FALSE))Wynik w R
po
przed niski sredni wysoki
niski 18 22 6
sredni 5 30 19
wysoki 1 4 15
McNemar's Chi-squared test
data: tab
McNemar's chi-squared = 24.058, df = 3, p-value = 2.43e-05
chi2 df p
2.405774e+01 3.000000e+00 2.429611e-05Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats). W pracy podaj wersję R, której faktycznie użyto (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/
Najczęstsze pytania
Czym test Bowkera różni się od testu McNemara?
Test McNemara dotyczy tabeli 2 × 2, a test Bowkera tabeli k × k z trzema lub więcej kategoriami. Przy dwóch kategoriach oba dają ten sam wynik, jeśli McNemar nie ma poprawki na ciągłość.
Jak policzyć test Bowkera w R?
Zbuduj kwadratową tabelę pomiar przed × pomiar po, z kategoriami w tej samej kolejności, i wywołaj mcnemar.test(tabela). Dla tabeli większej niż 2 × 2 R liczy test symetrii Bowkera.
Ile stopni swobody ma test Bowkera dla tabeli 3 × 3?
Trzy, bo df = k(k − 1)/2, a w tabeli 3 × 3 są trzy pary komórek symetrycznych względem przekątnej.
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
Badanie wiedzy przed i po szkoleniu
Test t i Wilcoxona z d_z, McNemar z korektą Holma, znormalizowany przyrost, test Bowkera i pomiar odroczony – z danymi, kodem R i opisem APA.
Czytaj →PoradnikTest chi-kwadrat krok po kroku
Test zgodności i niezależności na jednym badaniu: odsetki, liczebności oczekiwane, reszty, V Craméra, test Fishera i gotowy opis APA.
Czytaj →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
- Pembury Smith, M. Q. R., & Ruxton, G. D. (2020). Effective use of the McNemar test. Behavioral Ecology and Sociobiology, 74(11), Article 133. https://doi.org/10.1007/s00265-020-02916-y ● Otwarty dostęp
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{pemburysmith2020effective, author={Pembury Smith, Matilda Q. R. and Ruxton, Graeme D.}, title={{Effective use of the McNemar test}}, journal={Behavioral Ecology and Sociobiology}, year={2020}, volume={74}, number={11}, eid={133}, doi={10.1007/s00265-020-02916-y}}