W przypadku wieloczynnikowej analizy wariancji mamy do czynienia
z przynajmniej dwoma czynnikami. Najczęściej spotykanym modelem jest model dwuczynnikowy (dwuczynnikowa analiza wariancji), choć tych czynników może być znacznie więcej.
Stosując wieloczynnikową analizę wariancji chcemy sprawdzić wpływ kilku czynników (zmiennych niezależnych) na zmienną zależną.
Wieloczynnikowy model analizy wariancji dostarcza o wiele więcej informacji niż zwykła, jednoczynnikowa analiza wariancji, czy też porównania testami t-Studenta. Ponadto, gdy badamy, czy dany czynnik wpływa na zmienną zależną, to wprowadzenie kolejnego czynnika może dostarczyć nam bardzo cennych informacji, tj. efekt interakcji i zmienić nasz pogląd na badane zjawisko.
Niektóre bakterie produkują charakterystyczne barwniki. Przeprowadzono eksperyment, gdzie hodowano cztery różne gatunki bakterii (Pseudomonas aeruginosa –S1; Escherichia vulneris- S2; Bacillus subtilis-S3; Streptococcus pyogenes- S4) na dwóch różnych podłożach (LB
i TSB). Dla każdej kombinacji bakteria-podłoże wykonano cztery niezależne od siebie powtórzenia. Zbadać czy średnia ilość produkowanych barwników różnią się w zależności od gatunku bakterii i podłoża, na jakich zostały one hodowane oraz czy występuje ewentualna interakcja bakteria-podłoże.
Do obliczeń używamy programu R w wersji 3.1.2, a za poziom istotności wykonywanej analizy przyjmujemy α= 0,05.
H0: Produkcja barwników przez wszystkie gatunki bakterii jest identyczna.
H1: Istnieje różnica w produkcji barwników dla przynajmniej dwóch gatunków bakterii.
dane<-read.csv2("F:/projekt/dane3_bakterie.csv")
dane
podloze gat_bakterii ilosc_barwnika
1 LB S1 1.787
2 LB S1 2.325
3 LB S1 1.256
4 LB S1 2.315
5 LB S2 1.100
6 LB S2 1.326
7 LB S2 0.965
8 LB S2 1.132
9 LB S3 1.563
10 LB S3 2.423
11 LB S3 1.973
12 LB S3 1.756
13 LB S4 0.013
14 LB S4 0.102
15 LB S4 0.062
16 LB S4 0.056
17 TSB S1 1.962
18 TSB S1 2.625
19 TSB S1 1.654
20 TSB S1 2.514
21 TSB S2 1.325
22 TSB S2 1.635
23 TSB S2 1.389
24 TSB S2 1.374
25 TSB S3 1.986
26 TSB S3 2.648
27 TSB S3 2.364
28 TSB S3 2.214
29 TSB S4 0.026
30 TSB S4 0.326
31 TSB S4 0.095
32 TSB S4 0.132
attach(dane)
by(ilosc_barwnika,gat_bakterii,sd)
gat_bakterii: S1
[1] 0.4714348
------------------------------------------------------------
gat_bakterii: S2
[1] 0.2085349
------------------------------------------------------------
gat_bakterii: S3
[1] 0.3627551
------------------------------------------------------------
gat_bakterii: S4
[1] 0.09894876
Największe odchylenie standardowe jest w grupie bakterii Pseudomonas aeruginosa (S1), natomiast najmniejsze odchylenie standardowym charakteryzuje się grupa bakterii z gatunku Streptococcus pyogenes (S4).
mean(ilosc_barwnika)
[1] 1.388219
by(ilosc_barwnika,gat_bakterii,mean)
gat_bakterii: S1
[1] 2.05475
------------------------------------------------------------
gat_bakterii: S2
[1] 1.28075
------------------------------------------------------------
gat_bakterii: S3
[1] 2.115875
------------------------------------------------------------
gat_bakterii: S4
[1] 0.1015
Największa średnia ilość produkowanego barwnika jest w grupie Bacillus subtilis (S3), natomiast najmniejsza w Streptococcus pyogenes (S4).
model.tables(aov(ilosc_barwnika~gat_bakterii),type="means")
Tables of means
Grand mean
1.388219
gat_bakterii
gat_bakterii
S1 S2 S3 S4
2.0548 1.2808 2.1159 0.1015
δ2 S1- wariancja średniej odpowiedzi dla S1
δ2 S2 -wariancja średniej odpowiedzi dla S2
δ2S3 - wariancja średniej odpowiedzi dla S3
δ2S4 - wariancja średniej odpowiedzi dla S4
H0: Wszystkie wariancje są identyczne.
H1: Przynajmniej jedna wariancja różni się od pozostałych.
(pobranie pakietu car, w którym znajduje się test levence)
Packages → Install package(s) → car →OK
library(car)
leveneTest(ilosc_barwnika~gat_bakterii,center="mean")
Levene's Test for Homogeneity of Variance (center = "mean")
Df F value Pr(>F)
group 3 0.4075 0.7488
28
Z uzyskanej analizy uzyskaliśmy p-value równe 0,7488. Jest ona większa od ustalonego poziomu istotności α = 0,05, zatem przyjmujemy hipotezę zerową, a odrzucamy hipotezę alternatywną. Oznacza to, że obliczona wartość nie jest statystycznie istotna, a wariancje są identyczne (są homogeniczne), zatem można dalej przeprowadzać analizę wariancji.
model<-aov(ilosc_barwnika~gat_bakterii)
str(model)
model$residuals
1 2 3 4 5 6 7 8
-0.305750 0.232250 -0.532750 0.222250 0.292500 0.120500 0.259500 0.426500
9 10 11 12 13 14 15 16
0.322125 0.182125 -0.267875 -0.484875 0.025250 -0.295750 -0.325750 -0.731750
17 18 19 20 21 22 23 24
-0.130750 0.532250 -0.438750 0.421250 -0.380500 -0.070500 -0.316500 -0.331500
25 26 27 28 29 30 31 32
-0.254875 0.407125 0.123125 -0.026875 0.038250 1.338250 0.107250 -0.155750
H0: Występuje normalność rozkładu reszt.
H1: Reszty nie podlegają rozkładowi normalnemu.
shapiro.test(model$residuals)
Shapiro-Wilk normality test
data: model$residuals
W = 0.937, p-value = 0.0614
Z uzyskanej analizy uzyskaliśmy p-value równe 0,0614. Jest ona większa od ustalonego poziomu istotności α= 0,05, zatem przyjmujemy hipotezę zerową, a odrzucamy hipotezę alternatywną. W takim przypadku można wykonać test Bartlett’a, który sprawdzenia homogeniczność wariancji.
H0: Wszystkie wariancje są identyczne.
H1: Przynajmniej jedna wariancja różni się od pozostałych.
bartlett.test(ilosc_barwnika~gat_bakterii)
Bartlett test of homogeneity of variances
data: ilosc_barwnika by gat_bakterii
Bartlett's K-squared = 4.0483, df = 3, p-value = 0.2563
Z uzyskanej analizy uzyskaliśmy p-value równe 0,2563. Jest ona większa od α (0,05), zatem przyjmujemy hipotezę zerową, a odrzucamy hipotezę alternatywną. Przeprowadzony test potwierdził, że wariancje są homogeniczne.
summary(model)
Df Sum Sq Mean Sq F value Pr(>F)
gat_bakterii 3 1.227 0.4089 2.241 0.105
Residuals 28 5.108 0.1824
Źródło zmienności | Liczba stopni swobody | Suma kwadratów | Średni kwadrat | Statystyka testowa F | p-wartość |
---|---|---|---|---|---|
Czynniki eksperymentalne (metoda) |
3 | 1,227 | 0,4089 Zróżnicowanie między grupami- MSA czy MS between |
2,241 | 0,105 |
Czynnik losowy (naturalna zmienność wewnątrz grup) | 28 | 5,108 | 0,1824 Zróżnicowanie wewnątrz grup |
Z uzyskanej analizy uzyskaliśmy p-wartość równą 0,105. Jest ona większa od α (0,05), zatem przyjmujemy hipotezę zerową, a odrzucamy hipotezę alternatywną. Oznacza to, że wariancje są homogeniczne (podobnie jak we wcześniejszej analizie).
granova.1w(ilosc_barwnika,gat_bakterii)
$grandsum
Grandmean df.bet df.with MS.bet MS.with
2.01 3.00 28.00 0.41 0.18
F.stat F.prob SS.bet/SS.tot
2.24 0.11 0.19
$stats
Size Contrast Coef Wt'd Mean Mean Trim'd Mean Var. St. Dev.
S2 8 -0.30 1.71 1.71 1.70 0.10 0.32
S4 8 -0.02 1.99 1.99 1.89 0.37 0.60
S1 8 0.09 2.09 2.09 2.09 0.16 0.41
S3 8 0.23 2.24 2.24 2.25 0.10 0.31
Niebieski kwadrat (średni kwadrat wewnątrz grup zmienność czynnika losowego), czerwony (średni kwadrat pomiędzy grupami zmienność czynnika eksperymentalnego).
Jeżeli czerwony kwadracik jest dużo większy( ok 6 razy) od niebieskiego to słuszne jest żeby odrzucić hipotezę zerową wariancji, jednak w naszym przypadku nie ma podstaw do odrzucenia hipotezy zerowej.
H0: Wartości przeciętne (mediany) produkcji barwników są identyczne we wszystkich grupach.
H1: Co najmniej dwie grupy różnią się względem mediany plonów.
kruskal.test(ilosc_barwnika~gat_bakterii)
Kruskal-Wallis rank sum test
data: ilosc_barwnika by gat_bakterii
Kruskal-Wallis chi-squared = 7.0085, df = 3, p-value = 0.07163
P- wartość przeprowadzonego testu wynosi 0,07163, jest zatem większa od ustalonego poziomu istotności α =0,05. W związku z tym nie ma podstaw do odrzucenia hipotezy zerowej, co oznacza, że mediany produkcji barwników są identyczne we wszystkich grupach.
ilosc_barwnika
[1] 1.787 2.325 1.560 2.315 1.998 1.826 1.965 2.132 2.563 2.423 1.973 1.756
[13] 2.013 1.692 1.662 1.256 1.962 2.625 1.654 2.514 1.325 1.635 1.389 1.374
[25] 1.986 2.648 2.364 2.214 2.026 3.326 2.095 1.832
rank (ilosc_barwnika)
[1] 11 25 5 24 18 12 15 22 29 27 16 10 19 9 8 1 14 30 7 28 2 6 4 3 17
[26] 31 26 23 20 32 21 13
Przypisanie każdej wartości odpowiadającej jej rangi.
sort (ilosc_barwnika)
[1] 1.256 1.325 1.374 1.389 1.560 1.635 1.654 1.662 1.692 1.756 1.787 1.826
[13] 1.832 1.962 1.965 1.973 1.986 1.998 2.013 2.026 2.095 2.132 2.214 2.315
[25] 2.325 2.364 2.423 2.514 2.563 2.625 2.648 3.326
Wartości posortowane są rosnąco.
by (rank(ilosc_barwnika),gat_bakterii,sum)
gat_bakterii: S1
[1] 144
------------------------------------------------------------
gat_bakterii: S2
[1] 82
------------------------------------------------------------
gat_bakterii: S3
[1] 179
------------------------------------------------------------
gat_bakterii: S4
[1] 123
by(ilosc_barwnika,gat_bakterii,sum)
gat_bakterii: S1
[1] 16.742
------------------------------------------------------------
gat_bakterii: S2
[1] 13.644
------------------------------------------------------------
gat_bakterii: S3
[1] 17.927
------------------------------------------------------------
gat_bakterii: S4
[1] 15.902
anova(lm(ilosc_barwnika~gat_bakterii+podloze+gat_bakterii:podloze))
Analysis of Variance Table
Response: ilosc_barwnika
Df Sum Sq Mean Sq F value Pr(>F)
gat_bakterii 3 1.2266 0.40886 2.7893 0.06231 .
podloze 1 0.0928 0.09277 0.6329 0.43409
gat_bakterii:podloze 3 1.4975 0.49917 3.4054 0.03385 *
Residuals 24 3.5180 0.14658
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
0.03385 jest mniejsze od alfy więc wystąpiła statystycznie istotna interakcja między gatunkiem bakterii i podłożem.
interaction.plot(gat_bakterii,podloze,ilosc_barwnika,ylab="średni ilosc_barwnika")
Występuje interakcja ponieważ linie się przecinają.
interaction.plot(podloze,gat_bakterii,ilosc_barwnika,ylab="średni ilosc_barwnika")
plot.design(ilosc_barwnika~gat_bakterii+podloze+gat_bakterii:podloze)
tapply (ilosc_barwnika,gat_bakterii:podloze,mean)
S1:LB S1:TSB S2:LB S2:TSB S3:LB S3:TSB S4:LB S4:TSB
1.99675 2.18875 1.98025 1.43075 2.17875 2.30300 1.65575 2.31975
by(ilosc_barwnika,gat_bakterii:podloze,mean)
gat_bakterii:podloze: S1:LB
[1] 1.99675
------------------------------------------------------------
gat_bakterii:podloze: S1:TSB
[1] 2.18875
------------------------------------------------------------
gat_bakterii:podloze: S2:LB
[1] 1.98025
------------------------------------------------------------
gat_bakterii:podloze: S2:TSB
[1] 1.43075
------------------------------------------------------------
gat_bakterii:podloze: S3:LB
[1] 2.17875
------------------------------------------------------------
gat_bakterii:podloze: S3:TSB
[1] 2.303
------------------------------------------------------------
gat_bakterii:podloze: S4:LB
[1] 1.65575
------------------------------------------------------------
gat_bakterii:podloze: S4:TSB
[1] 2.31975