Jak wykonać trójczynnikową anova w r
Trójczynnikową analizę ANOVA stosuje się w celu ustalenia, czy istnieje statystycznie istotna różnica pomiędzy średnimi z trzech lub większej liczby niezależnych grup, które zostały rozdzielone na trzy czynniki.
Poniższy przykład pokazuje, jak wykonać trójczynnikową analizę ANOVA w R.
Przykład: Trójczynnikowa ANOVA w R
Załóżmy, że badacz chce ustalić, czy dwa programy treningowe prowadzą do różnej średniej poprawy wysokości skoku wśród koszykarzy z college’u.
Badacz podejrzewa, że płeć i podział (I lub II Dywizja) również mogą mieć wpływ na wysokość skoku, dlatego zbiera dane również na temat tych czynników.
Jego celem jest wykonanie trójczynnikowej analizy ANOVA w celu określenia, w jaki sposób program treningowy, płeć i kategoria wpływają na wysokość skoku.
Wykonaj następujące kroki, aby wykonać trójczynnikową ANOVA w R:
Krok 1: Utwórz dane
Najpierw utwórzmy ramkę danych do przechowywania danych:
#create dataset df <- data. frame (program=rep(c(1, 2), each= 20 ), gender=rep(c(' M ', ' F '), each= 10 , times= 2 ), division=rep(c(1, 2), each= 5 , times= 4 ), height=c(7, 7, 8, 8, 7, 6, 6, 5, 6, 5, 5, 5, 4, 5, 4, 3, 3, 4, 3, 3, 6, 6, 5, 4, 5, 4, 5, 4, 4, 3, 2, 2, 1, 4, 4, 2, 1, 1, 2, 1)) #view first six rows of dataset head(df) program gender division height 1 1 M 1 7 2 1 M 1 7 3 1 M 1 8 4 1 M 1 8 5 1 M 1 7 6 1 M 2 6
Krok 2: Wyświetl statystyki opisowe
Przed wykonaniem trójczynnikowej analizy ANOVA możemy użyć dplyr , aby szybko podsumować średni wzrost wysokości skoku pogrupowany według programu treningowego, płci i klasy:
library (dplyr) #calculate mean jumping height increase grouped by program, gender, and division df %>% group_by(program, gender, division) %>% summarize(mean_height = mean(height)) # A tibble: 8 x 4 # Groups: program, gender [4] program gender division mean_height 1 1 F 1 4.6 2 1 F 2 3.2 3 1 M 1 7.4 4 1 M 2 5.6 5 2 F 1 2.6 6 2 F 2 1.4 7 2 M 1 5.2 8 2 M 2 4
Oto jak zinterpretować wynik:
- Średni wzrost wysokości skoku kobiet z I ligi, które korzystały z Programu treningowego 1, wyniósł 4,6 cala .
- Średni wzrost wysokości skoku wśród kobiet z Oddziału II, które korzystały z Programu Treningowego 1, wyniósł 3,2 cala .
- Średni wzrost wysokości skoku wśród mężczyzn z Dywizji I, którzy korzystali z Programu Treningowego 1, wyniósł 7,4 cala .
I tak dalej.
Krok 3: Wykonaj trójczynnikową ANOVA
Następnie możemy użyć funkcji aov() , aby wykonać trójczynnikową analizę ANOVA:
#perform three-way ANOVA model <- aov(height ~ program * gender * division, data=df) #view summary of three-way ANOVA summary(model) Df Sum Sq Mean Sq F value Pr(>F) program 1 36.1 36.10 65.636 2.98e-09 *** gender 1 67.6 67.60 122.909 1.71e-12 *** division 1 19.6 19.60 35.636 1.19e-06 *** program:gender 1 0.0 0.00 0.000 1.000 program:division 1 0.4 0.40 0.727 0.400 gender:division 1 0.1 0.10 0.182 0.673 program:gender:division 1 0.1 0.10 0.182 0.673 Residuals 32 17.6 0.55 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Kolumna Pr(>F) wyświetla wartość p dla każdego pojedynczego czynnika i interakcje między czynnikami.
Z wyników wynika, że żadna z interakcji pomiędzy trzema czynnikami nie była istotna statystycznie.
Widzimy też, że każdy z trzech czynników – program, płeć i podział – był istotny statystycznie.
Możemy teraz ponownie użyć dplyr, aby znaleźć średni wzrost wysokości skoku oddzielnie dla programu, płci i dywizji:
library (dplyr) #find mean jumping increase by program df %>% group_by(program) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 program mean_height 1 1 5.2 2 2 3.3 #find mean jumping increase by gender df %>% group_by(gender) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 gender mean_height 1 F 2.95 2M 5.55 #find mean jumping increase by division df %>% group_by(division) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 division mean_height 1 1 4.95 2 2 3.55
Na podstawie wyniku możemy zaobserwować, co następuje:
- Średni wzrost wysokości skoku u osób, które korzystały z programu treningowego 1 ( 5,2 cala ) był większy niż średni wzrost u osób, które korzystały z programu treningowego 2 (3,3 cala ).
- Średni wzrost wysokości skoku dla mężczyzn ( 5,55 cala ) był większy niż średni wzrost dla kobiet (2,95 cala ).
- Średni wzrost wysokości skoku wśród graczy Division 1 ( 4,95 cala ) był większy niż średni wzrost wśród graczy Division 2 (3,55 cala ).
Podsumowując, można powiedzieć, że program treningowy, płeć i kategoria są znaczącymi wskaźnikami zwiększonej wysokości skoku u zawodników.
Powiedzielibyśmy również, że nie ma znaczących efektów interakcji między tymi trzema czynnikami.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak dopasować inne modele ANOVA w R:
Jak wykonać jednokierunkową ANOVA w R
Jak wykonać dwukierunkową ANOVA w R