8. nodaļa. Dispersijas analīze
8.1 Teorētiskais pamatojums
Vēl jāuzraksta!
8.2 Dati
Dispersijas analīzes piemēram izmantosim datu failu augi.txt
, kas satur informāciju par augu biomasu parauglaukumā eksperimentā, kurā pētīta barības vielu daudzuma (barv
) un ūdens daudzuma (udens
) ietekme. Barības vielu daudzumam ir četras iespējamās grupas: kontrole (kontr
), papildus fosfors(fosf
), papildus slāpeklis (slap
) un šo abu elementu kombinācija (slfo
). Faktoram ūdens ir divi līmeņi: kontrole (norm
) un papildus ūdens (papild
).
augi<-read.table(file="augi.txt",header=TRUE,sep="\t",dec=".")
str(augi)
## 'data.frame': 40 obs. of 3 variables:
## $ biomasa: num 60.8 61.3 49.6 53.8 54.1 47.6 63.7 50.3 50.9 55.7 ...
## $ barv : Factor w/ 4 levels "fosf","kontr",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ udens : Factor w/ 2 levels "norm","papild": 1 1 1 1 1 2 2 2 2 2 ...
summary(augi)
## biomasa barv udens
## Min. :47.60 fosf :10 norm :20
## 1st Qu.:55.67 kontr:10 papild:20
## Median :59.20 slap :10
## Mean :59.66 slfo :10
## 3rd Qu.:63.70
## Max. :74.90
Lai gūtu sākotnējo priekštatu par augu biomasas atšķirībām starp katra no faktoriem gradācijas klasēm, var izmantot funkciju tapply()
, kurai kā argumentus norādam kolonnu, kas satur datus, kolonnu, kas satur dalījuma līmeņus, kā arī rādītāju, kuru vēlamies aprēķināt. Šo funkciju pielietojam, lai apskatītu kāda ir vidējā aritmētiskā augu biomasa katrā no barības vielu un katrā no ūdens režīmiem.
tapply(augi$biomasa,augi$barv,mean)
## fosf kontr slap slfo
## 61.04 54.78 57.44 65.37
tapply(augi$biomasa,augi$udens,mean)
## norm papild
## 59.755 59.560
8.3 Dispersiju homogenitāte
Tā kā viens no dispersijas analīzes pieņēmumiem ir, ka dispersijas starp gradācijas līmeņiem ir homogēnas, tas ir, to atšķirība nav statistiski būtiska,ir jāveic dispersiju salīdzināšana. Viens no testiem, ko var izmantot, ir Bartletta tests, ko veic ar funkciju bartlett.test()
. Šai funkcijai kā argumenti jānorāda kolonna, kas satur datus, kā arī kolonna, kas satur dalījuma līmeņus. Analīzes rezultātos parādās aprēķinātā \(K^2\) vērtība, brīvības pakāpju skaits un p-vērtība.
with(augi,bartlett.test(biomasa,barv))
##
## Bartlett test of homogeneity of variances
##
## data: biomasa and barv
## Bartlett's K-squared = 4.4872, df = 3, p-value = 0.2134
Secinājums: tā kā iegūtā p-vērtība (0.2134) ir lielāka par būtiskuma līmeni (\(\alpha=0.05\)), tad atšķirība starp dispersijām nav statistiski būtiska jeb dispersijas ir homogēnas.
with(augi,bartlett.test(biomasa,udens))
##
## Bartlett test of homogeneity of variances
##
## data: biomasa and udens
## Bartlett's K-squared = 1.4017, df = 1, p-value = 0.2364
Secinājums: tā kā iegūtā p-vērtība (0.2364) ir lielāka par būtiskuma līmeni (\(\alpha=0.05\)), tad atšķirība starp dispersijām nav statistiski būtiska jeb dispersijas ir homogēnas.
8.4 Modeļu definēšana
Pašas dispersijas analīzes veikšanai var izmantot vairākas funkcijas, no kurām viena ir funkcija aov()
. Šai funkcijai kā argumenti jānorāda analīzējamais mainīgais (šajā gadījumā biomasa
), tad ir tildes zīme un viens vai vairāki ietekmējošie faktori. Ja jāpārbauda tikai faktoru atsevišķa ietekme, tad tos jāatdala ar plus zīmi, bet ja ir nepieciešams pārbaudīt arī faktoru kombinācijas ietekmi, tad faktorus var atdalīt ar zvaigznītes zīmi. Beigās jānorāda arī no kuras tabulas šos datus ņemt.
Dispersijas analīzē ir svarīgi, lai programma faktoru uztvertu tiešām kā faktoru. Ja gradācijas līmeņi ir nosaukti ar rakstu zīmēm, tad problēmu nav. Ja gradācijas līmeņi ir apzīmēti ar skaitļiem, tad pirms analīzes veikšanas šo mainīgo vajag pārvērst par faktoru ar funkcijas as.factor()
palīdzību.
Analīzes rezultātā parādās katra faktora un atlikuma vērtību brīvības pakāpju skaits, noviržu kvadrātu summa un vidējā noviržu kvadrātu summa, atbilstošā F vērtība un p-vērtība (Pr(>F)
).
mod1<-aov(biomasa~barv*udens,data=augi)
summary(mod1)
## Df Sum Sq Mean Sq F value Pr(>F)
## barv 3 632.5 210.84 9.834 9.52e-05 ***
## udens 1 0.4 0.38 0.018 0.895
## barv:udens 3 43.7 14.56 0.679 0.571
## Residuals 32 686.1 21.44
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Secinājums: faktora barības vielu daudzums ietekme uz augu biomasu ir statistiski būtiska, jo iegūtā p-vērtība ir mazāka par noteikto būtiskuma līmeni (\(\alpha=0.05\)), bet faktora ūdens un abu faktoru kombinācijas ietekme nav statistiski būtiska, jo iegūtās p-vērtības ir lielākas par būtiskuma līmeni.
Tā kā faktora ūdens un faktoru kombinācijas ietekme nav būtiska, tad varam izveidot arī vienkāršāku modeli, kurā ir atstāts tikai faktors barības vielu daudzums. Arī šajā modelī barības vielu daudzuma ietekme ir būtiska.
mod2<-aov(biomasa~barv,data=augi)
summary(mod2)
## Df Sum Sq Mean Sq F value Pr(>F)
## barv 3 632.5 210.84 10.39 4.54e-05 ***
## Residuals 36 730.1 20.28
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
8.5 Gradācijas klašu salīdzināšana
Konstatējot kāda faktora būtisku ietekmi, var veikt tā saucamo post-hoc testu, tas ir, salīdzināt gradācijas klases savā starpā. Viena no funkcijām šādam testam ir TukeyHSD
. Šai funkcijai kā argumenti jānorāda piemērotās dispersijas analīzes modelis, kā arī pēdiņās jānorāda faktora nosaukums, kura gradācijas klases savā starpā vēlas salīdzināt. Analīzes rezultātos iegūst vidējo aritmētisko starpību starp katrām divām gradācijas klasēm, šo vidējo aritmētisko starpības ticamības intervālu un atbilstošo p-vērtību.
TukeyHSD(mod2,"barv")
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = biomasa ~ barv, data = augi)
##
## $barv
## diff lwr upr p adj
## kontr-fosf -6.26 -11.68427 -0.8357301 0.0183777
## slap-fosf -3.60 -9.02427 1.8242699 0.2958204
## slfo-fosf 4.33 -1.09427 9.7542699 0.1570183
## slap-kontr 2.66 -2.76427 8.0842699 0.5561038
## slfo-kontr 10.59 5.16573 16.0142699 0.0000391
## slfo-slap 7.93 2.50573 13.3542699 0.0019671
Secinājums: statistiski būtiska atšķirība pastāv starp gradācijas klasēm kontrole-fosfors, kontrole-fosfors/slapeklis, kā arī slāpeklis-fosfors/slapeklis, jo atbilstošās p-vērtības ir mazākas par būtiskuma līmeni. Pārējos gadījumos atšķirības starp gradācijas klašu vidējiem aritmētiskajiem nav statistiski būtiska, jo iegūtās p-vērtības ir lielākas par noteikto būtiskuma līmeni.
8.6 Rezultātu grafiskā attēlošana
Dispersijas analīzes rezultātu grafiskai attēlošanai var izmantot vairākus grafiku veidus, piemēram, box-plot grafiku apvienojumu, kur katrai gradācijas klasei ir savs mazais box-plot attēls (8.1 attēls).
boxplot(augi$biomasa~augi$barv)
Vēl viens variants ir izmantot funkciju plotmeans()
no paketes gplots
. Šī funkcija izveido grafiku, kurā attēlots katras gradācijas klases vidējais aritmētiskais un tā ticamības intervāls (8.2 attēls). Kā papildus arguments izmantots connect=FALSE
, lai vidējie aritmētiskie netiktu savā starpā automātiski savienoti.
library(gplots)
##
## Attaching package: 'gplots'
## The following object is masked from 'package:plotrix':
##
## plotCI
## The following object is masked from 'package:stats':
##
## lowess
plotmeans(augi$biomasa~augi$barv,connect=FALSE,xlab="baribas vielas")