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.
- 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.
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ö:
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ö:
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 |