Słownik metodologiczny · Testy statystyczne

Kontrast planowany – jak sprawdzić konkretną hipotezę w ANOVA?

Kontrast planowany zamienia hipotezę w zestaw wag dla średnich grup. Pokazujemy, jak dobrać wagi, sprawdzić ortogonalność, policzyć kontrast w R i opisać wynik.

Strona główna / Słownik / Kontrast planowany
W skrócie: Kontrast planowany to porównanie średnich zapisane jako wagi sumujące się do zera i ustalone przed analizą danych. Testuje jedną konkretną hipotezę zamiast ogólnego pytania testu F. Wynikiem jest różnica średnich z przedziałem ufności i testem t.

Co to jest kontrast planowany?

Kontrast planowany (ang. planned contrast, a priori contrast) to porównanie średnich grup zapisane jako zestaw wag, ustalone przed zobaczeniem danych i wynikające wprost z hipotezy. Ogólny test F w ANOVA mówi tylko, że jakieś średnie się różnią. Kontrast odpowiada na jedno konkretne pytanie, np. „czy oba treningi obniżają stres w porównaniu z kontrolą?”. Schad i in. (2020) pokazują, że kontrasty zaplanowane z góry są lepszym testem hipotez konfirmacyjnych niż sam test F.

Jak ustalić wagi

ψ = Σ cj · Mj,   przy czym Σ cj = 0

cj to waga grupy j, a Mj – jej średnia. Porównywane grupy dostają wagi o przeciwnych znakach, a pomijane – zero. Gdy wagi każdej strony sumują się do 1 i −1, kontrast jest po prostu różnicą średnich w punktach skali. Dwa kontrasty są ortogonalne, gdy suma iloczynów ich wag wynosi zero. Przy k grupach zestaw ortogonalny liczy najwyżej k − 1 kontrastów.

Przykład

Trzy grupy po 30 osób: kontrola, trening relaksacji i trening uważności; wynik to skala stresu 0–40 (dane symulowane). Średnie wyniosły 25.07, 19.07 i 21.27. Kontrast 1 (wagi 1, −0.5, −0.5) porównuje kontrolę ze średnią obu treningów: różnica 4.90 pkt, 95% CI [2.76, 7.04], t(87) = 4.55, p < .001. Kontrast 2 (wagi 0, 1, −1) porównuje treningi między sobą: −2.20 pkt, 95% CI [−4.67, 0.27], t(87) = −1.77, p = .081. Oba kontrasty są ortogonalne.

Jak opisać w pracy

Hipotezy sprawdzono dwoma ortogonalnymi kontrastami planowanymi. Grupa kontrolna miała wyższy poziom stresu niż średnia obu grup treningowych, różnica = 4.90, 95% CI [2.76, 7.04], t(87) = 4.55, p < .001. Trening relaksacji i trening uważności nie różniły się istotnie, różnica = −2.20, 95% CI [−4.67, 0.27], t(87) = −1.77, p = .081.

Na co uważać

  • Plan musi powstać przed analizą. Kontrast wybrany po obejrzeniu średnich jest w praktyce porównaniem post hoc i wymaga ostrzejszej procedury, np. testu Scheffégo. Granziol i in. (2025) przypominają, że porównania post hoc poza badaniami eksploracyjnymi zwiększają ryzyko błędu I rodzaju i obniżają moc.
  • Kilka kontrastów to kilka testów. Przy większej liczbie kontrastów, zwłaszcza nieortogonalnych, zastosuj korektę Bonferroniego lub Holma (zob. problem wielokrotnych porównań).
  • Każda grupa z kontrolą to osobny, typowy przypadek – do niego służy test Dunnetta.

Kontrasty dla interakcji, trendy wielomianowe i kodowanie kontrastów w modelach R opisuje wpis Kontrasty planowane i analiza trendu.

Przykład reprodukowalny

Kontrasty planowane w R

Kod liczy średnie brzegowe z modelu liniowego i dwa kontrasty o wagach podanych na liście.

Dwa ortogonalne kontrasty w jednoczynnikowej ANOVA

Dane wejściowe: wynik skali stresu w trzech grupach po 30 osób (dane symulowane, set.seed(175)).

Co odczytać: kolumnę estimate (różnica średnich), przedział lower.CL–upper.CL, t.ratio z 87 df i p.value.

R
set.seed(175)
grupa <- factor(rep(c("kontrola", "relaksacja", "uwaznosc"), each = 30))
stres <- round(rnorm(90, mean = c(24, 21, 20)[grupa], sd = 5))   # skala stresu 0–40 (dane symulowane)
suppressPackageStartupMessages(library(emmeans))
sr <- emmeans(lm(stres ~ grupa), ~ grupa)
kontrasty <- list("kontrola vs treningi" = c(1, -0.5, -0.5),     # wagi sumują się do 0
                  "relaksacja vs uwaznosc" = c(0, 1, -1))
wynik <- as.data.frame(summary(contrast(sr, kontrasty), infer = TRUE))
cbind(wynik[1], round(wynik[-1], 3))
Wynik w R
                contrast estimate    SE df lower.CL upper.CL t.ratio p.value
1   kontrola vs treningi      4.9 1.078 87    2.758    7.042   4.546   0.000
2 relaksacja vs uwaznosc     -2.2 1.245 87   -4.674    0.274  -1.768   0.081

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats oraz pakiet emmeans).

  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. emmeans (wersja 2.0.2): Lenth, R., & Piaskowski, J. (2026). emmeans: Estimated marginal means, aka least-squares means [R package]. https://doi.org/10.32614/CRAN.package.emmeans

Najczęstsze pytania

Czy kontrast planowany wymaga istotnego testu F w ANOVA?

Nie. Kontrast planowany wynika z hipotezy, więc testujesz go bezpośrednio, niezależnie od wyniku ogólnego testu F.

Jak sprawdzić, czy dwa kontrasty są ortogonalne?

Pomnóż wagi obu kontrastów dla każdej grupy i zsumuj iloczyny. Suma równa zeru oznacza kontrasty ortogonalne (przy równych liczebnościach grup).

Ile kontrastów planowanych można sprawdzić w jednej ANOVA?

Przy k grupach zestaw ortogonalny ma najwyżej k − 1 kontrastów. Więcej porównań, zwłaszcza nieortogonalnych, wymaga korekty na wielokrotne testowanie.

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. Granziol, U., Rabe, M., Gallucci, M., Spoto, A., & Vidotto, G. (2025). Not another post hoc paper: A new look at contrast analysis and planned comparisons. Advances in Methods and Practices in Psychological Science, 8(1), Article 25152459241293110. https://doi.org/10.1177/25152459241293110 ● Otwarty dostęp
  2. Schad, D. J., Vasishth, S., Hohenstein, S., & Kliegl, R. (2020). How to capitalize on a priori contrasts in linear (mixed) models: A tutorial. Journal of Memory and Language, 110, Article 104038. https://doi.org/10.1016/j.jml.2019.104038 ● Otwarty dostęp

Cytowania BibTeX

@article{granziol2025not, author={Granziol, Umberto and Rabe, Maximilian and Gallucci, Marcello and Spoto, Andrea and Vidotto, Giulio}, title={{Not another post hoc paper: A new look at contrast analysis and planned comparisons}}, journal={Advances in Methods and Practices in Psychological Science}, year={2025}, volume={8}, number={1}, eid={25152459241293110}, doi={10.1177/25152459241293110}}
@article{schad2020capitalize, author={Schad, Daniel J. and Vasishth, Shravan and Hohenstein, Sven and Kliegl, Reinhold}, title={{How to capitalize on a priori contrasts in linear (mixed) models: A tutorial}}, journal={Journal of Memory and Language}, year={2020}, volume={110}, eid={104038}, doi={10.1016/j.jml.2019.104038}}
R