Anova 2-czynnikowa

Anova 2-czynnikowa

W Anovie 2-czynnikowej badamy 2 hipotezy. Pierwsza dotyczy ewentualnej różnicy między wynikami (score) ankiety nt. satysfakcji z pracy osób o różnej płci. Druga dotyczy ewentualnych różnic dla osob z różnym wykształceniem.

Badać możemy również trzecią - dodatkową hipotezę zerową: interakcje między czynnikami (płcią i wykształceniem).

Statystyki opisowe

Zobaczmy jak wygląda rozkład wyników - satysfakcji z pracy pracowników o różnej płci i wykształceniu.

ggplot(jobsatisfaction, aes(x=score)) +
  geom_histogram(bins=10) +
  facet_grid(gender~education_level)

pudelkowy<- ggboxplot(jobsatisfaction, x="gender",
          y="score", color="education_level")
pudelkowy

Zerknijmy, jak wyglądają poszczególne statystyki opisowe wg grup płci i wykształcenia dla ocen z satysfakcji z pracy:

Statystyki opisowe
Mężczyzna.Średnie (N = 9) Kobieta.Średnie (N = 10) Mężczyzna.Licencjat (N = 9) Kobieta.Licencjat (N = 10) Mężczyzna.Mgr i wyższe (N = 10) Kobieta.Mgr i wyższe (N = 10)
Min 4.78 4.93 5.58 5.65 8.70 6.52
Max 5.94 6.38 6.74 7.10 10.00 9.57
Q1 5.22 5.51 6.01 6.23 9.03 8.04
Mediana 5.51 5.72 6.30 6.45 9.20 8.48
Q3 5.65 6.05 6.45 6.78 9.50 9.06
Średnia 5.43 5.74 6.22 6.46 9.29 8.41
Odch. std. 0.36 0.47 0.34 0.47 0.44 0.94
Skośność -0.29 -0.12 -0.35 -0.13 0.45 -0.58
Kurtoza -1.20 -1.30 -0.89 -1.30 -1.25 -0.81

Założenie

Sprawdźmy, czy mamy prawo używać Anovy parametrycznej.

Obserwacje odstające

jobsatisfaction %>% 
  group_by(gender, education_level) %>%
  identify_outliers(score)
## [1] gender          education_level id              score          
## [5] is.outlier      is.extreme     
## <0 wierszy> (lub 'row.names' o zerowej długości)

Brak obserwacji odstajÄ…cych.

Normalność

jobsatisfaction %>% 
  group_by(gender, education_level) %>%
  shapiro_test(score)
## # A tibble: 6 x 5
##   gender    education_level variable statistic     p
##   <fct>     <fct>           <chr>        <dbl> <dbl>
## 1 Mężczyzna Średnie         score        0.980 0.966
## 2 Mężczyzna Licencjat       score        0.958 0.779
## 3 Mężczyzna Mgr i wyższe    score        0.916 0.323
## 4 Kobieta   Średnie         score        0.963 0.819
## 5 Kobieta   Licencjat       score        0.963 0.819
## 6 Kobieta   Mgr i wyższe    score        0.950 0.674

Nie ma podstaw, aby odrzucić hipotezę o normalności rozkładów ocen z satysfakcji z pracy dla każdej badanej grupy. Wyniki mają rozkłady normalne (p>0.05).

Zobaczmy, jak wyglądają wykresy normalności wg podgrup:

ggqqplot(jobsatisfaction, "score") +
  facet_grid(gender~education_level)

Wszystkie punkty (odpowiedzi ankietowanych) leżą na linii referencyjnej normalności - dla każdej z podgrup, a więc możemy uznać, że rozkłady satysfakcji z pracy są normalne.

Jednorodna wariancja

jobsatisfaction %>%
  levene_test(score~gender*education_level)
## # A tibble: 1 x 4
##     df1   df2 statistic      p
##   <int> <int>     <dbl>  <dbl>
## 1     5    52      2.20 0.0686

p-value > 0.05, a więc stwierdzamy brak istotnej różnicy wariancji (nie możemy odrzucić hipotezy zerowej). Zatem wariancje są jednorodne.

Anova

wyniki <- jobsatisfaction %>% anova_test(score~gender*education_level)
## Coefficient covariances computed by hccm()
wyniki
## ANOVA Table (type II tests)
## 
##                   Effect DFn DFd       F                           p p<.05
## 1                 gender   1  52   0.745 0.3920000000000000150990331      
## 2        education_level   2  52 187.892 0.0000000000000000000000016     *
## 3 gender:education_level   2  52   7.338 0.0020000000000000000416334     *
##     ges
## 1 0.014
## 2 0.878
## 3 0.220

W powyższej tabeli ANOVY widzimy, że istotne różnice w ocenie satysfakcji z pracy występują dla różnego poziomu wykształcenia. Dodatkowo zauważamy, że istnieją istotne interakcje między płcią a wykształceniem.

ges - oznacza uogólniony (generalized) efekt standaryzowany - czyli ilość wariancji, zróżnicowania objaśnianego przez czynnik.

Testy post-hoc

W przypadku odrzucenia hipotez zerowych w Anovie zwykle przeprowadza się tzw. testy post-hoc aby sprawdzić, co sprawiło, iż pojawia się istotna różnica między średnimi - czyli aby zobaczyć, które dokładnie z nich różnią się istotnie.

Sprawdźmy, jak dokładnie wyniki ocen satysfakcji z pracy różnią się wg poziomu wykształcenia i płci:

wynik2<- jobsatisfaction %>%
  group_by(gender) %>%
  tukey_hsd(score~education_level)
wynik2
## # A tibble: 6 x 10
##   gender    term   group1 group2 null.value estimate conf.low conf.high    p.adj
## * <fct>     <chr>  <chr>  <chr>       <dbl>    <dbl>    <dbl>     <dbl>    <dbl>
## 1 Mężczyzna educa~ Średn~ Licen~          0    0.797   0.341       1.25 5.59e- 4
## 2 Mężczyzna educa~ Średn~ Mgr i~          0    3.87    3.42        4.31 3.28e-14
## 3 Mężczyzna educa~ Licen~ Mgr i~          0    3.07    2.62        3.51 3.99e-14
## 4 Kobieta   educa~ Średn~ Licen~          0    0.722  -0.0163      1.46 5.62e- 2
## 5 Kobieta   educa~ Średn~ Mgr i~          0    2.66    1.93        3.40 4.3 e- 9
## 6 Kobieta   educa~ Licen~ Mgr i~          0    1.94    1.20        2.68 1.58e- 6
## # ... with 1 more variable: p.adj.signif <chr>

Jak widzimy powyżej, dla prawie wszystkich par średnich (dla kobiet i mężczyzn vs. wykształcenie) różnice w ocenach satysfakcji z pracy okazały się istotne (p<0.05). Dla jednej pary różnice nie są istotne (ns - non significant) - dla kobiet z wykształceniem college vs. school.

Podsumowanie

Podsumujmy testy Anova za pomocą wykresu ujmujÄ…cego razem wszystkie poziomy badanych czynnikĂłw z etykietami i podpisami.

wynik2 <- wynik2 %>% add_xy_position(x="gender")
pudelkowy +
  stat_pvalue_manual(wynik2) +
  labs(
    subtitle=get_test_label(wyniki,detailed=TRUE),
    caption=get_pwc_label(wynik2)
  )

Jak widać, interakcje między czynnikami są istotne (F=7.34, p=0.002).

attach(jobsatisfaction)
interaction.plot(education_level,gender,score,type="b",col=c(2:3),leg.bty="o ",leg.bg="beige",lwd=2,pch=c(18,24) ,xlab="Wykształcenie",ylab="Satysfakcja z pracy",main="Wykres interakcji")