R ANOVA õpetus: ühesuunaline ja kahesuunaline (näidetega)

Mis on ANOVA?

Dispersiooni analüüs (ANOVA) on statistiline meetod, mida tavaliselt kasutatakse kahe või enama rühma keskmise erinevuste uurimiseks. ANOVA test keskendub tüüpilise muutuja erinevatele variatsiooniallikatele. ANOVA R-s annab peamiselt tõendeid rühmade keskmise võrdsuse olemasolu kohta. See statistiline meetod on t-testi laiendus. Seda kasutatakse olukorras, kus tegurimuutujal on rohkem kui üks rühm.

Ühesuunaline ANOVA

On palju olukordi, kus peate võrdlema mitme rühma keskmist. Näiteks soovib turundusosakond teada, kas kolmel meeskonnal on sama müügitulemus.

  • Meeskond: 3 tasemetegur: A, B ja C
  • Müük: jõudluse mõõt

ANOVA test võib öelda, kas kolmel rühmal on sarnased tulemused.

Et selgitada, kas andmed pärinevad samast populatsioonist, saate teha a ühesuunaline dispersioonanalüüs (edaspidi ühesuunaline ANOVA). See test, nagu kõik teised statistilised testid, annab tunnistust sellest, kas H0 hüpoteesi saab aktsepteerida või tagasi lükata.

Hüpotees ühesuunalises ANOVA testis

  • H0: rühmadevahelised keskmised on identsed
  • H3: Vähemalt ühe rühma keskmine on erinev

Teisisõnu, H0 hüpotees viitab sellele, et pole piisavalt tõendeid, et tõestada, et rühma (teguri) keskmine erineb teisest.

See test on sarnane t-testiga, kuigi ANOVA testi on soovitatav kasutada olukorras, kus on rohkem kui 2 rühma. Peale selle annavad t-test ja ANOVA sarnased tulemused.

Eeldused

Eeldame, et iga tegur on juhuslikult valitud, sõltumatu ja pärineb normaalselt jaotunud populatsioonist, mille dispersioon on teadmata, kuid võrdne.

ANOVA testi tõlgendamine

F-statistikat kasutatakse selleks, et testida, kas andmed pärinevad oluliselt erinevatest populatsioonidest, st erineva valimi keskmisega.

F-statistika arvutamiseks peate jagama rühmadevaheline varieeruvus üle grupisisene varieeruvus.

. rühmade vahel varieeruvus peegeldab erinevusi rühmade vahel kogu populatsiooni sees. Rühmadevahelise dispersiooni mõiste mõistmiseks vaadake kahte allolevat graafikut.

Vasakpoolne graafik näitab väga väikest erinevust kolme rühma vahel ja on väga tõenäoline, et kolm keskmist kalduvad üldine keskmine (st kolme rühma keskmine).

Parempoolne graafik kujutab kolme jaotust üksteisest kaugel ja ükski neist ei kattu. On suur tõenäosus, et erinevus kogukeskmise ja rühmade keskmise vahel on suur.

ANOVA testi tõlgendamine

. rühma sees varieeruvus võtab arvesse rühmadevahelist erinevust. Variatsioon tuleneb üksikutest vaatlustest; mõned punktid võivad olla täiesti erinevad, kui rühm tähendab. The rühma sees varieeruvus tuvastab selle efekti ja viitab valimiveale.

Grupisisese varieeruvuse kontseptsiooni visuaalseks mõistmiseks vaadake allolevat graafikut.

Vasakpoolne osa kujutab kolme erineva rühma jaotust. Suurendasite iga valimi levikut ja on selge, et individuaalne dispersioon on suur. F-test väheneb, mis tähendab, et kipute nõustuma nullhüpoteesiga

Parempoolne osa näitab täpselt samu valimeid (identne keskmine), kuid väiksema varieeruvusega. See toob kaasa F-testi suurenemise ja kaldub alternatiivse hüpoteesi kasuks.

ANOVA testi tõlgendamine

F-statistika koostamiseks saate kasutada mõlemat mõõdet. F-statistikat on väga intuitiivne mõista. Kui lugeja suureneb, tähendab see, et rühmadevaheline varieeruvus on suur ja on tõenäoline, et valimis olevad rühmad on koostatud täiesti erinevatest jaotustest.

Teisisõnu, madal F-statistika näitab vähest olulist erinevust rühma keskmise vahel või üldse mitte.

Näide Ühesuunaline ANOVA test

Ühesuunalise ANOVA testi rakendamiseks kasutate mürgiandmestikku. Andmekogum sisaldab 48 rida ja 3 muutujat:

  • Aeg: looma ellujäämisaeg
  • mürk: Kasutatud mürgi tüüp: faktori tase: 1,2 ja 3
  • ravi: Kasutatud ravi tüüp: faktori tase: 1,2 ja 3

Enne ANOVA testi arvutamise alustamist peate valmistama andmed järgmiselt:

  • 1. toiming: importige andmed
  • 2. samm: eemaldage mittevajalik muutuja
  • 3. samm: teisendage muutuja mürk järjestatud tasemele
library(dplyr)
PATH <- "https://raw.githubusercontent.com/guru99-edu/R-Programming/master/poisons.csv"
df <- read.csv(PATH) %>%
select(-X) %>% 
mutate(poison = factor(poison, ordered = TRUE))
glimpse(df)

Väljund:

## Observations: 48
## Variables: 3
## $ time   <dbl> 0.31, 0.45, 0.46, 0.43, 0.36, 0.29, 0.40, 0.23, 0.22, 0...
## $ poison <ord> 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2...
## $ treat  <fctr> A, A, A, A, A, A, A, A, A, A, A, A, B, B, B, B, B, B, ...		

Meie eesmärk on testida järgmist eeldust:

  • H0: Elulemusaja keskmine erinevus rühmade vahel ei erine
  • H3: Elulemusaja keskmine on vähemalt ühe rühma puhul erinev.

Teisisõnu tahate teada, kas meriseale antud mürgitüübi järgi on elulemusaja keskmisel statistiliselt erinevusi.

Te jätkate järgmiselt:

  • 1. samm: kontrollige muutuja mürgi vormingut
  • 2. samm: printige kokkuvõtlik statistika: arv, keskmine ja standardhälve
  • 3. samm: joonistage kasti krunt
  • 4. samm: arvutage ühesuunaline ANOVA test
  • 5. samm: käivitage paarikaupa t-test

Step 1) Mürgi taset saate kontrollida järgmise koodiga. Peaksite nägema kolme tähemärgi väärtust, kuna teisendate need faktoriks mutatsiooniverbiga.

levels(df$poison)

Väljund:

## [1] "1" "2" "3"

Step 2) Arvutate välja keskmise ja standardhälbe.

df % > %
	group_by(poison) % > %
	summarise(
		count_poison = n(),
		mean_time = mean(time, na.rm = TRUE),
		sd_time = sd(time, na.rm = TRUE)
	)

Väljund:

## 
# A tibble: 3 x 4
##   poison count_poison mean_time    sd_time
##    <ord>        <int>     <dbl>      <dbl>
## 1      1           16  0.617500 0.20942779
## 2      2           16  0.544375 0.28936641
## 3      3           16  0.276250 0.06227627

Step 3) Kolmandas etapis saate graafiliselt kontrollida, kas jaotuse vahel on erinevusi. Pange tähele, et lisate värisenud punkti.

ggplot(df, aes(x = poison, y = time, fill = poison)) +
    geom_boxplot() +
    geom_jitter(shape = 15,
        color = "steelblue",
        position = position_jitter(0.21)) +
    theme_classic()

Väljund:

Ühesuunalise ANOVA testi näide

Step 4) Ühesuunalise ANOVA testi saate käivitada käsuga aov. ANOVA testi põhisüntaks on:

aov(formula, data)
Arguments:			
- formula: The equation you want to estimate
- data: The dataset used	

Valemi süntaks on:

y ~ X1+ X2+...+Xn # X1 +  X2 +... refers to the independent variables
y ~ . # use all the remaining variables as independent variables

Saate vastata meie küsimusele: kas merisigade ellujäämisajal on erinevusi, teades antud mürgi tüüpi.

Pange tähele, et tulemuste paremaks väljatrükkimiseks on soovitatav mudel salvestada ja kasutada funktsiooni summary().

anova_one_way <- aov(time~poison, data = df)
summary(anova_one_way)

Koodi selgitus

  • aov(aeg ~ mürk, andmed = df): Käivitage ANOVA test järgmise valemiga
  • summary(anova_one_way): printige testi kokkuvõte

Väljund:

##             Df Sum Sq Mean Sq F value   Pr(>F)
## poison       2  1.033  0.5165   11.79 7.66e-05 ***
## Residuals   45  1.972  0.0438                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

P-väärtus on madalam kui tavaline lävi 0.05. Võite kindlalt väita, et rühmade vahel on statistiline erinevus, mida tähistab "*".

Paaripõhine võrdlus

Ühesuunaline ANOVA test ei anna teavet, millisel rühmal on erinev keskmine. Selle asemel saate teha Tukey testi funktsiooniga TukeyHSD().

TukeyHSD(anova_one_way)

Väljund:

Paaripõhine võrdlus

Kahesuunaline ANOVA

Kahesuunaline ANOVA test lisab valemisse veel ühe rühmamuutuja. See on identne ühesuunalise ANOVA testiga, kuigi valem muutub veidi:

y=x1+x2

with on kvantitatiivne muutuja ja ja on kategoorilised muutujad.

Hüpotees kahesuunalises ANOVA testis

  • H0: mõlema muutuja keskmised on võrdsed (st tegurimuutuja)
  • H3: Mõlema muutuja keskmised on erinevad

Lisate meie mudelile ravimuutuja. See muutuja näitab meriseale antud ravi. Teid huvitab, kas mürgi ja meriseale antud ravi vahel on statistiline sõltuvus.

Kohandame oma koodi, lisades ravi teise sõltumatu muutujaga.

anova_two_way <- aov(time~poison + treat, data = df)
summary(anova_two_way)

Väljund:

##             Df Sum Sq Mean Sq F value  Pr(>F)    
## poison       2 1.0330  0.5165   20.64 5.7e-07 ***
## treat        3 0.9212  0.3071   12.27 6.7e-06 ***
## Residuals   42 1.0509  0.0250                    
## ---

Võite järeldada, et nii mürk kui ka ravim erinevad statistiliselt 0-st. Võite NULL-hüpoteesi ümber lükata ja kinnitada, et ravi või mürgi muutmine mõjutab ellujäämise aega.

kokkuvõte

Testi saame kokku võtta allolevas tabelis:

test kood Hüpotees P-väärtus
Ühesuunaline ANOVA
aov(y ~ X, data = df)
H3: Vähemalt ühe rühma keskmine on erinev 0.05
Paarikaupa
TukeyHSD(ANOVA summary)
0.05
Kahesuunaline ANOVA
aov(y ~ X1 + X2, data = df)
H3: mõlema rühma keskmine on erinev 0.05

Võta see postitus kokku järgmiselt: