<<目次へ


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