``Kovarianssianalyysi''

``Kovarianssianalyysi'' on vanhentunut termi. Se on peräisin ajalta ennen lineaarisia malleja, jolloin jatkuvien muuttujien ja luokkamuuttujien yhdistäminen nähtiin merkillisenä ja oman terminsä arvoisena. Lineaarisissa malleissa kovarianssianalyysi syntyy yksinkertaisena malliyhtälönä. Muinoin kovarianssianalyysiä käytettiin silloin, kun suunnitellun kokeen kiinteiden tekijöiden lisäksi oli joitain satunnaisia jatkuvia muuttujia. Päähuomio kohdistui kiinteisiin luokkamuuttujiin, mutta jatkuvien ``taustamuuttujien'' vaikutus haluttiin poistaa ennen varsinaiseen varianssianalyysiin ryhtymistä. Nykykielellä voisimme sanoa, että kovarianssianalyysi on satunnaisten ja kiinteiden vaikutusten sekamalli, jossa jatkuvat muuttujat ovat satunnaistekijöitä. Näinkin määriteltynä mallin sovittaminen poikkeaa vanhoista ajoista, sillä nykyään kaikki tekijät sovitetaan yhtaikaa eikä peräjälkeen kuten muinoin.

Esimerkki 8.22 Ranta et al. (1989, aineisto daphnia paketissa rekola) käsittelevät perinteisen kovarianssianalyysin malliin aineistoa, jossa tutkitaan lämpötilan (muuttuja lampo, tasot 15, 20 ja 25oC) vaikutusta vesikirpun Daphnia longispina jälkeläistuottoon. Lisääntymiskertojen lukumäärä vaihteli vesikirpuittain, ja mitä ilmeisimmin tämä vaikuttaa jälkeläistuottoon. Lisääntymiskerrat (muuttuja kerrat) on siis satunnainen jatkuva kovariaatti. Graafinen tarkastelu tukee kuvaustamme (kuva 10).

Analysoimme aluksi täydellistä mallia, jossa on myös yhdysvaikutus lämpötilan ja lisääntymiskertojen välillä. Merkitsevä yhdysvaikutus viittaisi siihen, että eri lämmöissä syntyy kertaa kohti eri määrä jälkeläisiä:

> daphnia.full <- lm(lisa ~ lampo*kerrat, data=daphnia)
> summary(daphnia.full)

Coefficients:
               Estimate Std. Error t value Pr(>|t|)
(Intercept)     4.23366    0.44670   9.478 1.01e-07
lampo.L         1.93840    0.75946   2.552 0.022095
lampo.Q        -1.24475    0.78770  -1.580 0.134907
kerrat          0.74699    0.15123   4.940 0.000178
lampo.L.kerrat -0.26275    0.28195  -0.932 0.366135
lampo.Q.kerrat  0.08562    0.24025   0.356 0.726520
Muuttuja lampo on luonnollisestikin käsitelty järjestettynä faktorina (§7.9), joten se on esitetty lineaarisena ja kvadraattisena kontrastina. Järjestämättömän faktorin oletusesityshän olisi ollut esittää lämpötilojen 20 ja 25oC erot tasoon 15oC. Interaktiotermit eivät näytä olevan merkitseviä, joten kokeilemme niiden poistamista ja analysoimme vain päävaikutuksia:
> daphnia.main <- lm(lisa ~ lampo + kerrat, data=daphnia)
> anova(daphnia.main, daphnia.full)
Analysis of Variance Table

Model 1: lisa ~ lampo + kerrat
Model 2: lisa ~ lampo + kerrat + lampo:kerrat
  Res.Df Res.Sum Sq Df  Sum Sq F value Pr(>F)
1     17    10.3020                          
2     15     9.6349  2  0.6671  0.5193 0.6052
> summary(daphnia.main)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   4.1864     0.4277   9.788 2.12e-08
lampo.L       1.3161     0.2998   4.390 0.000400
lampo.Q      -1.0265     0.3163  -3.245 0.004760
kerrat        0.7429     0.1421   5.227 6.84e-05
Päävaikutusmallin mukaan lämpötila on merkitsevä. Lämpötilan vaikutus näyttää olevan merkitsevästi kvadraattinen. Koska kvadraattisen termin kerroin on negatiivinen, malli ennustaa että vesikirpulla on optimi jossain lämpötila-akselilla. Epämerkitsevä kvadraattinen termi olisi merkinnyt, että vaste on lineaarinen. Kvadraattisuus näkyy myös kuvasta 10, missä jälkeläismäärät ovat suurimmat keskimmäisessä paneelissa. ANOVAn mukaan tämä ero on myös merkitsevä. Myös perinteisen ANOVAn malliin analysoituna, lämpötila on merkitsevä tekijä (saman tuloksen olisi tietysti saanut funktiolla aov):
> anova(update(daphnia.main, . ~ . -lampo), daphnia.main)
Analysis of Variance Table

Model 1: lisa ~ kerrat
Model 2: lisa ~ lampo + kerrat
  Res.Df Res.Sum Sq Df Sum Sq F value    Pr(>F)
1     19     27.234                            
2     17     10.302  2 16.932  13.970 0.0002579
Kuva 10: Daphnia longispinan jälkeläistuotto suhteessa lisääntymiskertoihin 15, 20 ja 25oC lämpötiloissa: havainnot sekä sovitetut arvot ja niiden 95 % luottamusvälit.

\includegraphics[width=\textwidth]{daphnia.eps}

Lopuksi piirrämme kuvan, johon lisäämme havaintopisteiden lisäksi myös ennustetut arvot sekä niiden luottamysvälit. Suoria varten meidän on järjestettävä x-akseli (sort.list).

> daphnia.ci <- predict(daphnia.main, interval="confidence")
> coplot(lisa ~ kerrat | lampo, columns=3, show.given=F, subscripts=T,
+   panel=function(x,y,subscripts, ...) { points(x,y)
+   i <- sort.list(x); fv <- daphnia.ci[subscripts,]
+   matlines(x[i],fv[i,], col=1, lty=c(1,2,2)) } )

Aineiston olisi tietysti pystynyt analysoimaan myös siten, että muuttuja kerrat olisi määritelty satunnaistekijäksi funktioissa aov tai lme (paketti nlme, §7.7).


Jari Oksanen 2003-01-21