ANOVA with aov or lm

The difference between lm and aov is mainly in the form of the output: the summary table with aov is in the traditional form for analysis of variance, with one row for each categorical variable and each interaction term. On the other hand, the summary table for lm produces one row per estimated parameter (i.e. one row for each factor level and one row for each interaction level). If you have multiple error terms then you must use aov because lm does not support the Error term. Here is the same two-way analysis of variance fitted using aov first then using lm:

daphnia<-read.table("c:\\temp\\Daphnia.txt",header=T)
attach(daphnia)
names(daphnia)

[1] "Growth.rate" "Water" "Detergent" "Daphnia"

model1<-aov(Growth.rate~Water*Detergent*Daphnia)
summary(model1)

                           Df    Sum Sq    Mean Sq    F value       Pr(>F)
Water                       1     1.985      1.985     2.8504    0.0978380       .
Detergent                   3     2.212      0.737     1.0586    0.3754783
Daphnia                     2    39.178     19.589    28.1283    8.228e-09     ***
Water:Detergent             3     0.175      0.058     0.0837    0.9686075
Water:Daphnia               2    13.732      6.866     9.8591    0.0002587     ***
Detergent:Daphnia           6    20.601      3.433     4.9302    0.0005323     ***
Water:Detergent:Daphnia     6     5.848      0.975     1.3995    0.2343235
Residuals                  48    33.428      0.696

model2<-lm(Growth.rate~Water*Detergent*Daphnia)
summary(model2)
Coefficients: Estimate Std. Error t value Pr (>|t|) (Intercept) 2.81126 0.48181 5.835 4.48e-07 WaterWear -0.15808 0.68138 -0.232 0.81753 DetergentBrandB -0.03536 0.68138 -0.052 0.95883 DetergentBrandC 0.47626 0.68138 0.699 0.48794 DetergentBrandD -0.21407 0.68138 ...

Get The R Book now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.