R ANOVA -opetusohjelma: yksisuuntainen ja kaksisuuntainen (esimerkein)

Mikรค on ANOVA?

Varianssianalyysi (ANOVA) on tilastollinen tekniikka, jota kรคytetรครคn yleisesti kahden tai useamman ryhmรคn keskiarvojen vรคlisten erojen tutkimiseen. ANOVA-testi keskittyy tyypillisen muuttujan eri vaihtelulรคhteisiin. ANOVA R:ssรค tarjoaa ensisijaisesti todisteita keskimรครคrรคisen tasa-arvon olemassaolosta ryhmien vรคlillรค. Tรคmรค tilastollinen menetelmรค on t-testin laajennus. Sitรค kรคytetรครคn tilanteessa, jossa tekijรคmuuttujalla on useampi kuin yksi ryhmรค.

Yksisuuntainen ANOVA

On monia tilanteita, joissa sinun on verrattava useiden ryhmien keskiarvoa. Esimerkiksi markkinointiosasto haluaa tietรครค, onko kolmella tiimillรค sama myyntitulos.

  • Joukkue: 3 tasotekijรค: A, B ja C
  • Myynti: Suorituskyvyn mitta

ANOVA-testi voi kertoa, ovatko kolme ryhmรครค samanlaisia.

Selvittรครคksesi, tulevatko tiedot samasta populaatiosta, voit suorittaa a yksisuuntainen varianssianalyysi (yksisuuntainen ANOVA jรคljempรคnรค). Tรคmรค testi, kuten kaikki muutkin tilastolliset testit, osoittaa, voidaanko H0-hypoteesi hyvรคksyรค vai hylรคtรค.

Hypoteesi yksisuuntaisessa ANOVA-testissรค

  • H0: Ryhmien keskiarvot ovat samat
  • H3: Ainakin yhden ryhmรคn keskiarvo on erilainen

Toisin sanoen H0-hypoteesi viittaa siihen, ettรค ei ole tarpeeksi todisteita osoittamaan, ettรค ryhmรคn (tekijรคn) keskiarvo on erilainen kuin toisesta.

Tรคmรค testi on samanlainen kuin t-testi, vaikka ANOVA-testiรค suositellaan tilanteessa, jossa on enemmรคn kuin 2 ryhmรครค. Sitรค paitsi t-testi ja ANOVA antavat samanlaiset tulokset.

Oletukset

Oletamme, ettรค jokainen tekijรค on satunnaisesti otettu, riippumaton ja tulee normaalijakaumasta populaatiosta, jonka varianssit ovat tuntemattomia, mutta samat.

Tulkitse ANOVA-testi

F-tilastolla testataan, ovatko tiedot merkittรคvรคsti eri populaatioista eli eri otoskeskiarvoista.

F-tilaston laskemiseksi sinun on jaettava ryhmien vรคlistรค vaihtelua yli ryhmรคn sisรคistรค vaihtelua.

ryhmรคn vรคlillรค vaihtelu heijastaa ryhmien vรคlisiรค eroja koko vรคestรถn sisรคllรค. Katso alla olevia kahta kaaviota ymmรคrtรครคksesi ryhmien vรคlisen varianssin kรคsitteen.

Vasen kaavio nรคyttรครค hyvin vรคhรคn vaihtelua kolmen ryhmรคn vรคlillรค, ja on erittรคin todennรคkรถistรค, ettรค kolme keskiarvoa pyrkii yleinen keskiarvo (eli kolmen ryhmรคn keskiarvo).

Oikeassa kaaviossa on kolme jakaumaa kaukana toisistaan, eikรค mikรครคn ole pรครคllekkรคistรค. On suuri mahdollisuus, ettรค ero kokonaiskeskiarvon ja ryhmien keskiarvon vรคlillรค on suuri.

Tulkitse ANOVA-testi

ryhmรคn sisรคllรค vaihtelu ottaa huomioon ryhmien vรคlisen eron. Vaihtelu tulee yksittรคisistรค havainnoista; Jotkut kohdat voivat olla tรคysin erilaisia โ€‹โ€‹kuin ryhmรค tarkoittaa. The ryhmรคn sisรคllรค vaihtelevuus poimii tรคmรคn vaikutuksen ja viittaa nรคytteenottovirheeseen.

Ymmรคrtรครคksesi visuaalisesti ryhmรคn sisรคisen vaihtelun kรคsitteen, katso alla olevaa kaaviota.

Vasen osa kuvaa kolmen eri ryhmรคn jakautumista. Kasvatit jokaisen otoksen leviรคmistรค ja on selvรครค, ettรค yksilรถllinen varianssi on suuri. F-testi pienenee, mikรค tarkoittaa, ettรค sinulla on taipumus hyvรคksyรค nollahypoteesi

Oikea osa nรคyttรครค tรคsmรคlleen samat nรคytteet (identtinen keskiarvo), mutta pienemmรคllรค vaihtelulla. Se johtaa F-testin kasvuun ja puoltaa vaihtoehtoista hypoteesia.

Tulkitse ANOVA-testi

Voit kรคyttรครค molempia mittareita F-tilastojen muodostamiseen. F-tilaston ymmรคrtรคminen on erittรคin intuitiivista. Jos osoittaja kasvaa, se tarkoittaa, ettรค ryhmien vรคlinen vaihtelu on suuri, ja on todennรคkรถistรค, ettรค otoksen ryhmรคt on otettu tรคysin erilaisista jakaumista.

Toisin sanoen alhainen F-tilasto osoittaa vain vรคhรคn tai ei ollenkaan merkittรคvรครค eroa ryhmรคn keskiarvon vรคlillรค.

Esimerkki Yksisuuntainen ANOVA-testi

Kรคytรคt myrkkytietojoukkoa toteuttaaksesi yksisuuntaisen ANOVA-testin. Tietojoukko sisรคltรครค 48 riviรค ja 3 muuttujaa:

  • Aika: Elรคimen selviytymisaika
  • myrkky: Kรคytetty myrkkytyyppi: tekijรคtaso: 1,2 ja 3
  • hoito: Kรคytetty hoitotyyppi: tekijรคtaso: 1,2 ja 3

Ennen kuin aloitat ANOVA-testin laskemisen, sinun on valmisteltava tiedot seuraavasti:

  • Vaihe 1: Tuo tiedot
  • Vaihe 2: Poista tarpeeton muuttuja
  • Vaihe 3: Muunna muuttuva myrkky mรครคrรคtyksi tasoksi
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)

lรคhtรถ:

## 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, ...		

Tavoitteemme on testata seuraavaa oletusta:

  • H0: Eloonjรครคmisajan keskiarvossa ei ole eroa ryhmien vรคlillรค
  • H3: Eloonjรครคmisajan keskiarvo on erilainen ainakin yhdessรค ryhmรคssรค.

Toisin sanoen haluat tietรครค, onko eloonjรครคmisajan keskiarvon vรคlillรค tilastollista eroa marsulle annetun myrkyn tyypin mukaan.

Toimit seuraavasti:

  • Vaihe 1: Tarkista muuttujan myrkyn muoto
  • Vaihe 2: Tulosta yhteenvetotilasto: mรครคrรค, keskiarvo ja keskihajonna
  • Vaihe 3: Piirrรค laatikkokuva
  • Vaihe 4: Laske yksisuuntainen ANOVA-testi
  • Vaihe 5: Suorita pareittainen t-testi

Vaihe 1) Voit tarkistaa myrkyn tason seuraavalla koodilla. Sinun pitรคisi nรคhdรค kolme merkkiarvoa, koska muunnat ne muuttujaverbillรค.

levels(df$poison)

lรคhtรถ:

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

Vaihe 2) Lasket keskiarvon ja keskihajonnan.

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

lรคhtรถ:

## 
# 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

Vaihe 3) Kolmannessa vaiheessa voit tarkistaa graafisesti, onko jakelun vรคlillรค eroa. Huomaa, ettรค sisรคllytรคt vรคrinรคpisteen.

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

lรคhtรถ:

Esimerkki yksisuuntaisesta ANOVA-testistรค

Vaihe 4) Voit suorittaa yksisuuntaisen ANOVA-testin komennolla aov. ANOVA-testin perussyntaksi on:

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

Kaavan syntaksi on:

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

Voit vastata kysymykseemme: Onko marsun selviytymisajassa eroa, kun tiedรคt annetun myrkyn tyypin.

Huomaa, ettรค on suositeltavaa tallentaa malli ja kรคyttรครค funktiota summary() saadaksesi paremman tulosteen tuloksista.

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

Koodin selitys

  • aov(aika ~ myrkky, data = df): Suorita ANOVA-testi seuraavalla kaavalla
  • summary(anova_one_way): Tulosta testin yhteenveto

lรคhtรถ:

##             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-arvo on pienempi kuin tavallinen kynnysarvo 0.05. Voit luottaa siihen, ettรค ryhmien vรคlillรค on tilastollinen ero, joka on merkitty *-merkillรค.

Parikohtainen vertailu

Yksisuuntainen ANOVA-testi ei kerro, millรค ryhmรคllรค on erilainen keskiarvo. Sen sijaan voit suorittaa Tukey-testin funktiolla TukeyHSD().

TukeyHSD(anova_one_way)

lรคhtรถ:

Parikohtainen vertailu

Kaksisuuntainen ANOVA

Kaksisuuntainen ANOVA-testi lisรครค kaavaan toisen ryhmรคmuuttujan. Se on identtinen yksisuuntaisen ANOVA-testin kanssa, vaikka kaava muuttuu hieman:

y=x1+x2

kanssa on kvantitatiivinen muuttuja ja ja ovat kategorisia muuttujia.

Hypoteesi kaksisuuntaisessa ANOVA-testissรค

  • H0: Keskiarvot ovat samat molemmille muuttujille (eli tekijรคmuuttujalle)
  • H3: Keskiarvot ovat erilaiset molemmille muuttujille

Lisรครคt hoitomuuttujan malliimme. Tรคmรค muuttuja osoittaa marsulle annetun hoidon. Olet kiinnostunut nรคkemรครคn, onko myrkyn ja marsulle annetun hoidon vรคlillรค tilastollista riippuvuutta.

Muokkaamme koodiamme lisรครคmรคllรค hoitoon toisella riippumattomalla muuttujalla.

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

lรคhtรถ:

##             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                    
## ---

Voit pรครคtellรค, ettรค sekรค myrkky ettรค hoito eroavat tilastollisesti 0:sta. Voit hylรคtรค NULL-hypoteesin ja vahvistaa, ettรค hoidon tai myrkyn muuttaminen vaikuttaa eloonjรครคmisaikaan.

Yhteenveto

Voimme tiivistรครค testin alla olevaan taulukkoon:

Testi Koodi Hypoteesi P-arvo
Yksisuuntainen ANOVA
aov(y ~ X, data = df)
H3: Keskiarvo on erilainen ainakin yhdessรค ryhmรคssรค 0.05
Pareittain
TukeyHSD(ANOVA summary)
0.05
Kaksisuuntainen ANOVA
aov(y ~ X1 + X2, data = df)
H3: Keskiarvo on erilainen molemmissa ryhmissรค 0.05

Tiivistรค tรคmรค viesti seuraavasti: