1要因の分散分析 対応がない場合(CRデザイン)T [データ数が等しいケース]
プログラム
anova.CR1 <- function(dat){
n = nrow(dat)
p = ncol(dat)
X = sum(dat)^2 / (n*p)
AS = sum(dat^2)
A = (1/n) * sum(apply(dat, 2, sum)^2)
SSa = A - X
SSwc = AS - A
SSt = AS - X
SS <- c(SSa, SSwc, SSt)
DFa = p-1
DFwc = p * (n-1)
DFt = n*p - 1
DF <- c(DFa, DFwc, DFt)
MSa = SSa / DFa
MSwc = SSwc / DFwc
MS <- c(MSa, MSwc, NA)
Fa = MSa / MSwc
F <- c(Fa, NA, NA)
Pa = 1 - pf(Fa, DFa, DFwc)
P <- c(Pa, NA, NA)
aov.table <- cbind(SS, DF, MS, F, P)
rownames(aov.table) <- c("主効果", "誤差", "総")
colnames(aov.table) <- c("SS", "DF", "MS", "F-value", "p-value")
aov.table
}
使用法
引数に指定するデータ行列は必ず参考文献に掲載されているものと同じ形式にしてください。そうでないと異なる結果になります。
> dat
[,1] [,2] [,3] [,4]
[1,] 9 6 10 9
[2,] 7 5 13 11
[3,] 8 6 8 13
[4,] 8 3 13 14
[5,] 12 6 12 16
[6,] 11 7 14 12
[7,] 8 10 14 15
[8,] 13 9 16 14
> anova.CR1(dat)
SS DF MS F-value p-value
主効果 217.5 3 72.500000 13.71622 1.088819e-05
誤差 148.0 28 5.285714 NA NA
総 365.5 31 NA NA NA
参考文献
森・吉田『心理学のためのデータ解析テクニカルブック』北大路書房 p86-88