potatoes.RdFisher's potato crop data set is of historical interest as an early example of a multi-factor block design.
data(potatoes)A data frame with 64 observations on the following 5 variables.
a factor with levels 1:4.
a factor with 16 levels A to H and
J to Q, i.e., LETTERS[1:17][-9].
a factor specifying the amount of nitrogen
sulfate (\(NH_4\)), with the four levels 0,1,2,4.
a factor specifying the amount of potassium (K,
‘kalium’) sulfate, with the four levels 0,1,2,4.
a numeric vector giving the yield of potatoes in ...
Bennett, J. H. (1972) Collected Papers of R. A. Fischer vol.~II, 1925-31; The University of Adelaide.
T.Eden and R. A. Fisher (1929) Studies in Crop Variation. VI. Experiments on the Response of the Potato to Potash and Nitrogen. J. Agricultural Science 19, 201–213. Accessible from Bennett (1972), see above.
data(potatoes)
## See the experimental design:
with(potatoes, {
cat("4 blocks of experiments;",
"each does every (nitrogen,potash) combination (aka 'treat'ment) once.",
'', sep="\n")
print(ftable(table(nitrogen, potash, treat)))
print(ftable(tt <- table(pos,potash,nitrogen)))
tt[cbind(pos,potash,nitrogen)] <- as.character(treat)
cat("The 4 blocks pos = 1, 2, 3, 4:\n")
ftable(tt)
})
#> 4 blocks of experiments;
#> each does every (nitrogen,potash) combination (aka 'treat'ment) once.
#>
#> treat A B C D E F G H J K L M N O P Q
#> nitrogen potash
#> 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> 1 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> 2 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0
#> 4 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0
#> 1 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0
#> 1 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0
#> 2 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0
#> 4 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0
#> 2 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0
#> 1 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0
#> 2 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0
#> 4 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0
#> 4 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0
#> 1 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0
#> 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0
#> 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
#> nitrogen 0 1 2 4
#> pos potash
#> 1 0 1 1 1 1
#> 1 1 1 1 1
#> 2 1 1 1 1
#> 4 1 1 1 1
#> 2 0 1 1 1 1
#> 1 1 1 1 1
#> 2 1 1 1 1
#> 4 1 1 1 1
#> 3 0 1 1 1 1
#> 1 1 1 1 1
#> 2 1 1 1 1
#> 4 1 1 1 1
#> 4 0 1 1 1 1
#> 1 1 1 1 1
#> 2 1 1 1 1
#> 4 1 1 1 1
#> The 4 blocks pos = 1, 2, 3, 4:
#> nitrogen 0 1 2 4
#> pos potash
#> 1 0 A E J N
#> 1 B F K O
#> 2 C G L P
#> 4 D H M Q
#> 2 0 A E J N
#> 1 B F K O
#> 2 C G L P
#> 4 D H M Q
#> 3 0 A E J N
#> 1 B F K O
#> 2 C G L P
#> 4 D H M Q
#> 4 0 A E J N
#> 1 B F K O
#> 2 C G L P
#> 4 D H M Q
## First plot:
with(potatoes, interaction.plot(potash,nitrogen, response=yield))
## ANOVAs:
summary(aov(yield ~ nitrogen * potash + Error(pos), data = potatoes))
#>
#> Error: pos
#> Df Sum Sq Mean Sq F value Pr(>F)
#> Residuals 3 11303 3768
#>
#> Error: Within
#> Df Sum Sq Mean Sq F value Pr(>F)
#> nitrogen 3 209646 69882 32.30 2.7e-11 ***
#> potash 3 32926 10975 5.07 0.0041 **
#> nitrogen:potash 9 18925 2103 0.97 0.4756
#> Residuals 45 97361 2164
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# "==>" can use simply
summary(aov(yield ~ nitrogen + potash + pos, data = potatoes))
#> Df Sum Sq Mean Sq F value Pr(>F)
#> nitrogen 3 209646 69882 32.45 4e-12 ***
#> potash 3 32926 10975 5.10 0.0035 **
#> pos 3 11303 3768 1.75 0.1678
#> Residuals 54 116286 2153
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# and
summary(aov(yield ~ nitrogen + potash, data = potatoes))
#> Df Sum Sq Mean Sq F value Pr(>F)
#> nitrogen 3 209646 69882 31.2 4.5e-12 ***
#> potash 3 32926 10975 4.9 0.0042 **
#> Residuals 57 127589 2238
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1