Co to jest test Cochrana–Mantela–Haenszela?
Test Cochrana–Mantela–Haenszela (CMH) sprawdza związek dwóch zmiennych dychotomicznych, gdy dane podzielono na warstwy według trzeciej zmiennej, np. ośrodka, grupy wiekowej albo poziomu umiejętności. Zamiast jednej tabeli 2 × 2 masz k tabel, czyli układ 2 × 2 × k. Mantel i Haenszel (1959) opisali tę metodę dla badań retrospektywnych, w których trzeba kontrolować zmienne zakłócające bez budowania modelu regresji.
Statystyka testu i wspólny OR
W każdej warstwie porównuje się liczebność jednej komórki z liczebnością oczekiwaną przy braku związku. Różnice sumuje się po warstwach i odnosi do sumy wariancji. Wynik ma w dużych próbach rozkład χ² z 1 df, a hipoteza zerowa mówi, że wspólny iloraz szans wynosi 1. Obok testu podaje się wspólny OR Mantela–Haenszela, czyli ważoną średnią OR z warstw: ORMH = Σ(aidi/ni) / Σ(bici/ni). Przedział ufności liczy się zwykle z estymatora wariancji Robinsa, Breslowa i Greenlanda (1986), poprawnego zarówno przy wielu małych warstwach, jak i przy kilku dużych. Bez warstw zostaje zwykły test chi-kwadrat niezależności.
Przykład
W klasycznych danych o przyjęciach na studia (zbiór UCBAdmissions w R: 4526 kandydatów, 6 wydziałów) surowy OR przyjęcia mężczyzn względem kobiet wynosił 1.84. Po rozwarstwieniu według wydziału wspólny ORMH spadł do 0.90, 95% CI [0.77, 1.06], a test CMH był nieistotny: χ²(1) = 1.43, p = .232. Kobiety częściej kandydowały na wydziały, na które trudniej się dostać – to paradoks Simpsona. Test Woolfa pokazał jednak, że OR różnią się między wydziałami: Q(5) = 17.90, p = .003; na wydziale A OR = 0.35.
Jak opisać w pracy
Na co uważać
- Niejednorodne OR. Wspólny OR ma sens, gdy OR w warstwach są podobne. Przy przeciwnych kierunkach efekty się znoszą. Sprawdź jednorodność (Breslow–Day lub Woolf) i pokaż OR z warstw.
- Warstwy to nie mediator. Warstwuj według zmiennej, która poprzedza ekspozycję, a nie według jej skutku.
- Zastosowanie w psychometrii. Holland i Thayer (1986) użyli procedury Mantela–Haenszela do wykrywania DIF; warstwami są poziomy wyniku ogólnego. Krok po kroku pokazuje to wpis DIF krok po kroku.
Pojedynczą tabelę 2 × 2 policzysz w kalkulatorze tabeli 2×2.
Test Cochrana–Mantela–Haenszela w R
Kod liczy surowy OR i OR w każdej warstwie, wykonuje test CMH funkcją mantelhaen.test() i ręcznie sprawdza jednorodność OR testem Woolfa.
Płeć a przyjęcie na studia z kontrolą wydziału
R
tab <- UCBAdmissions # przyjęcia na studia: 2 × 2 × 6 wydziałów
surowa <- margin.table(tab, c(1, 2)) # tabela 2 × 2 bez podziału na wydziały
OR_surowy <- (surowa[1, 1] * surowa[2, 2]) / (surowa[1, 2] * surowa[2, 1])
OR_warstwy <- apply(tab, 3, function(t) (t[1, 1] * t[2, 2]) / (t[1, 2] * t[2, 1]))
round(c(OR_surowy = OR_surowy, OR_warstwy), 2) # OR przyjęcia: mężczyźni vs kobiety
mantelhaen.test(tab) # test CMH i wspólny OR Mantela–Haenszela
# jednorodność OR między warstwami (test Woolfa, liczony ręcznie)
lor <- log(OR_warstwy)
w <- 1 / apply(tab, 3, function(t) sum(1 / t))
Q <- sum(w * (lor - sum(w * lor) / sum(w))^2)
round(c(Q_Woolf = Q, df = length(lor) - 1,
p = pchisq(Q, df = length(lor) - 1, lower.tail = FALSE)), 4)Wynik w R
OR_surowy A B C D E F
1.84 0.35 0.80 1.13 0.92 1.22 0.83
Mantel-Haenszel chi-squared test with continuity correction
data: tab
Mantel-Haenszel X-squared = 1.4269, df = 1, p-value = 0.2323
alternative hypothesis: true common odds ratio is not equal to 1
95 percent confidence interval:
0.7719074 1.0603298
sample estimates:
common odds ratio
0.9046968
Q_Woolf df p
17.9017 5.0000 0.0031 Bibliografia 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
Kiedy użyć testu Cochrana–Mantela–Haenszela zamiast zwykłego chi-kwadrat?
Gdy związek dwóch zmiennych dychotomicznych trzeba ocenić z kontrolą trzeciej zmiennej kategorialnej, np. ośrodka lub grupy wiekowej. Zwykły chi-kwadrat na zsumowanej tabeli może dać obraz zniekształcony przez zmienną zakłócającą.
Jak policzyć test CMH w R?
Przygotuj tablicę 2 × 2 × k i wywołaj mantelhaen.test(tablica). Wynik zawiera statystykę χ² z 1 df, p, wspólny OR Mantela–Haenszela i jego 95% przedział ufności.
Co zrobić, gdy ilorazy szans w warstwach są różne?
Sprawdź jednorodność OR testem Breslowa–Daya lub Woolfa. Przy wyraźnej niejednorodności pokaż OR osobno dla warstw i rozważ regresję logistyczną z interakcją zamiast jednego wspólnego OR.
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
DIF krok po kroku: Mantel–Haenszel, regresja i IRT
Trzy metody wykrywania DIF na jednych danych: klasyfikacja ETS, ΔR² w regresji logistycznej, IRT z kotwicą, DTF i wzór opisu.
Czytaj →PoradnikKalkulator tabeli 2×2 i r×c
Chi-kwadrat, test dokładny Fishera, V Craméra i reszty dla tabel do 5 × 5, a dla 2 × 2 także OR, RR i różnica odsetków z przedziałami ufności.
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)
- Holland, P. W., & Thayer, D. T. (1986). Differential item functioning and the Mantel–Haenszel procedure. ETS Research Report Series, 1986(2). https://doi.org/10.1002/j.2330-8516.1986.tb00186.x
- Mantel, N., & Haenszel, W. (1959). Statistical aspects of the analysis of data from retrospective studies of disease. Journal of the National Cancer Institute, 22(4), 719–748. https://doi.org/10.1093/jnci/22.4.719
- Robins, J., Breslow, N., & Greenland, S. (1986). Estimators of the Mantel-Haenszel variance consistent in both sparse data and large-strata limiting models. Biometrics, 42(2), 311–323. https://doi.org/10.2307/2531052
Cytowania BibTeX
@article{holland1986differential, author={Holland, Paul W. and Thayer, Dorothy T.}, title={{Differential item functioning and the Mantel–Haenszel procedure}}, journal={ETS Research Report Series}, year={1986}, volume={1986}, number={2}, doi={10.1002/j.2330-8516.1986.tb00186.x}}@article{mantel1959statistical, author={Mantel, Nathan and Haenszel, William}, title={{Statistical aspects of the analysis of data from retrospective studies of disease}}, journal={Journal of the National Cancer Institute}, year={1959}, volume={22}, number={4}, pages={719--748}, doi={10.1093/jnci/22.4.719}}@article{robins1986estimators, author={Robins, James and Breslow, Norman and Greenland, Sander}, title={{Estimators of the Mantel-Haenszel variance consistent in both sparse data and large-strata limiting models}}, journal={Biometrics}, year={1986}, volume={42}, number={2}, pages={311--323}, doi={10.2307/2531052}}