I doing a three way Anova (or Ancova - I'm not sure, hence my question) in R. I am testing how temperature, the development stage and the size of a carcass affect the development rate of maggots.
My response variable is Duration
(a measurement of hours) and my factors are Size
(2 levels = small and large), and Stage
(7 levels = eggs, 1st instar, 2nd instar, 3rd instar, postfeed, pupa and total) and Temperature
(4 levels = 15, 20, 25, 30).
I intend to examine how Duration
varies with Temperature
and Size
and Stage
.
I imported my data set (AnovaTWD). One function I have tried is:
model1 <-(aov(Duration~Stage*Temperature*Size, AnovaTWD))
summary(model1)
This gave me:
Df Sum Sq Mean Sq F value Pr(>F)
Stage 6 7206782 1201130 149.059 < 2e-16 ***
Temperature 1 1924926 1924926 238.881 < 2e-16 ***
Size 1 78491 78491 9.741 0.00205 **
Stage:Temperature 6 2500293 416716 51.714 < 2e-16 ***
Stage:Size 6 120539 20090 2.493 0.02367 *
Temperature:Size 1 140090 140090 17.385 4.43e-05 ***
Stage:Temperature:Size 6 184679 30780 3.820 0.00122 **
Residuals 214 1724431 8058
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Am I right in thinking that R is recognising Temperature as a continuous variable here?
Another function I have tried is:
AnovaTWD$Temperature <- factor(AnovaTWD$Temperature)
model2 <-(aov(Duration~Stage*Temperature*Size, AnovaTWD))
summary(model2)
This gave me:
Df Sum Sq Mean Sq F value Pr(>F)
Stage 6 7206782 1201130 527.084 < 2e-16 ***
Temperature 3 2399926 799975 351.048 < 2e-16 ***
Size 1 116577 116577 51.157 1.90e-11 ***
Stage:Temperature 18 3068185 170455 74.800 < 2e-16 ***
Stage:Size 6 157139 26190 11.493 6.34e-11 ***
Temperature:Size 3 214981 71660 31.446 < 2e-16 ***
Stage:Temperature:Size 18 292783 16266 7.138 1.10e-13 ***
Residuals 186 423861 2279
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
I know that R is treating Temperature as a fixed factor now. However, I have been advised to treat Temperature
as a covariate. I read "ANCOVA is easily reached using the aov()
function using the syntax +
variable name
to indicate that the predictor variable is a covariate."
So I tried:
summary(aov(Duration~Size*Stage+Temperature, AnovaTWD))
This gave me:
Df Sum Sq Mean Sq F value Pr(>F)
Size 1 87904 87904 4.928 0.0274 *
Stage 6 7223925 1203988 67.497 <2e-16 ***
Temperature 3 2411455 803818 45.063 <2e-16 ***
Size:Stage 6 143505 23917 1.341 0.2400
Residuals 225 4013443 17838
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Is this now ANCOVA and treating Temperature
as a covariate? Or is it not testing an interaction with the other factors?
I could simply treat Temperature
as a fixed variable as my experiment design used the 4 constant temperatures (15, 20, 25, 30). However, I know this approach is not giving all the information possible, hence I am looking into ANCOVA as it is usually used when there are both continuous and categorical predictors.