Teste ANOVA

Testarea ipotezelor în R

Richie Cotton

Data Evangelist at DataCamp

Satisfacția la locul de muncă: 5 categorii

stack_overflow %>% 
  count(job_sat)
# A tibble: 5 x 2
  job_sat                   n
  <fct>                 <int>
1 Very dissatisfied       187
2 Slightly dissatisfied   385
3 Neither                 245
4 Slightly satisfied      777
5 Very satisfied          981
Testarea ipotezelor în R

Vizualizarea distribuțiilor multiple

Întrebare: Compensația anuală medie diferă în funcție de nivelul de satisfacție la locul de muncă?

stack_overflow %>% 
  ggplot(aes(x = job_sat, y = converted_comp)) +
  geom_boxplot() +
  coord_flip()

Grafic box plot care arată distribuția compensației pentru fiecare dintre cele 5 categorii. „Foarte satisfăcut" pare ușor mai ridicat față de celelalte categorii, dar este greu de stabilit cu certitudine.

Testarea ipotezelor în R

Analiza varianței (ANOVA)

mdl_comp_vs_job_sat <- lm(converted_comp ~ job_sat, data = stack_overflow)
anova(mdl_comp_vs_job_sat)
Analysis of Variance Table

Response: converted_comp
            Df   Sum Sq  Mean Sq F value Pr(>F)   
job_sat      4 1.09e+12 2.73e+11    3.65 0.0057 **
Residuals 2570 1.92e+14 7.47e+10                  

Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
1 Regresia liniară cu lm() este predată în „Introduction to Regression in R"
Testarea ipotezelor în R

Teste pereche

  • $\mu_{\text{very dissatisfied}} \neq \mu_{\text{slightly dissatisfied}}$
  • $\mu_{\text{very dissatisfied}} \neq \mu_{\text{neither}}$
  • $\mu_{\text{very dissatisfied}} \neq \mu_{\text{slightly satisfied}}$
  • $\mu_{\text{very dissatisfied}} \neq \mu_{\text{very satisfied}}$
  • $\mu_{\text{slightly dissatisfied}} \neq \mu_{\text{neither}}$
  • $\mu_{\text{slightly dissatisfied}} \neq \mu_{\text{slightly satisfied}}$
  • $\mu_{\text{slightly dissatisfied}} \neq \mu_{\text{very satisfied}}$
  • $\mu_{\text{neither}} \neq \mu_{\text{slightly satisfied}}$
  • $\mu_{\text{neither}} \neq \mu_{\text{very satisfied}}$
  • $\mu_{\text{slightly satisfied}} \neq \mu_{\text{very satisfied}}$

 

Nivelul de semnificație: $\alpha = 0.2$.

Testarea ipotezelor în R

pairwise.t.test()

pairwise.t.test(stack_overflow$converted_comp, stack_overflow$job_sat, p.adjust.method = "none")
    Pairwise comparisons using t tests with pooled SD 

data:  stack_overflow$converted_comp and stack_overflow$job_sat 

                      Very dissatisfied Slightly dissatisfied Neither Slightly satisfied
Slightly dissatisfied 0.26860           -                     -       -                 
Neither               0.79578           0.36858               -       -                 
Slightly satisfied    0.29570           0.82931               0.41248 -                 
Very satisfied        0.34482           0.00384               0.15939 0.00084           

P value adjustment method: none

Diferențe semnificative: „Foarte satisfăcut" vs. „Ușor nesatisfăcut"; „Foarte satisfăcut" vs. „Nici/nici"; „Foarte satisfăcut" vs. „Ușor satisfăcut"

Testarea ipotezelor în R

Pe măsură ce nr. de grupuri crește...

Grafic de dispersie care arată numărul de perechi față de numărul de grupuri. Pe măsură ce numărul de grupuri crește, numărul de perechi crește cuadratic.

Grafic de dispersie care arată probabilitatea de a obține cel puțin un rezultat semnificativ față de numărul de grupuri. Pe măsură ce numărul de grupuri crește, probabilitatea de a obține cel puțin un rezultat semnificativ crește.

Testarea ipotezelor în R

Corecția Bonferroni

pairwise.t.test(stack_overflow$converted_comp, stack_overflow$job_sat, p.adjust.method = "bonferroni")
    Pairwise comparisons using t tests with pooled SD 

data:  stack_overflow$converted_comp and stack_overflow$job_sat 

                      Very dissatisfied Slightly dissatisfied Neither Slightly satisfied
Slightly dissatisfied 1.0000            -                     -       -                 
Neither               1.0000            1.0000                -       -                 
Slightly satisfied    1.0000            1.0000                1.0000  -                 
Very satisfied        1.0000            0.0384                1.0000  0.0084            

P value adjustment method: bonferroni

Diferențe semnificative: „Foarte satisfăcut" vs. „Ușor nesatisfăcut"; „Foarte satisfăcut" vs. „Ușor satisfăcut"

Testarea ipotezelor în R

Mai multe metode

p.adjust.methods
"holm"  "hochberg"  "hommel"  "bonferroni"  "BH"  "BY"  "fdr"  "none" 
Testarea ipotezelor în R

Ajustările Bonferroni și Holm

p_values
0.268603 0.795778 0.295702 0.344819 0.368580 0.829315 0.003840 0.412482 0.159389 0.000838

Bonferroni

pmin(1, 10 * p_values)
1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 0.03840 1.00000 1.00000 0.00838

Holm (aproximativ)

pmin(1, 10:1 * sort(p_values))
0.00838 0.03456 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 0.82931
Testarea ipotezelor în R

Să exersăm!

Testarea ipotezelor în R

Preparing Video For Download...