例題:
「表 1 のようなデータがある。4 種の肥料間で収量に差があるか,また,3 種の品種ごとに差があるか検定しなさい。」
| 肥料 | ||||
|---|---|---|---|---|
| 品種 | $B_{1}$ | $B_{2}$ | $B_{3}$ | $B_{4}$ |
| $A_{1}$ | 9 | 17 | 12 | 16 |
| $A_{2}$ | 1 | 21 | 16 | 11 |
| $A_{3}$ | 7 | 19 | 6 | 9 |
R による解析
> randblk(dat) # この関数の定義を見る
SS d.f. MS F value P value
Treatment 268.66667 3 89.55556 5.4923339 0.03719245
Replication 21.50000 2 10.75000 0.6592845 0.55102999
Residual 97.83333 6 16.30556 NA NA
Total 388.00000 11 35.27273 NA NA
aov 関数を用いる場合
> m <- matrix(c(9,1,7,17,21,19,12,16,6,16,11,9),3,4)
> m
[,1] [,2] [,3] [,4]
[1,] 9 17 12 16
[2,] 1 21 16 11
[3,] 7 19 6 9
> df <- data.frame(x=as.vector(m), Treatment=as.factor(col(m)), Replication=as.factor(row(m)))
> df
x Treatment Replication
1 9 1 1
2 1 1 2
3 7 1 3
4 17 2 1
5 21 2 2
6 19 2 3
7 12 3 1
8 16 3 2
9 6 3 3
10 16 4 1
11 11 4 2
12 9 4 3
> summary(aov(x ~ Treatment + Replication, df))
Df Sum Sq Mean Sq F value Pr(>F)
Treatment 3 268.667 89.556 5.4923 0.03719 *
Replication 2 21.500 10.750 0.6593 0.55103
Residuals 6 97.833 16.306
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1