日々のつれづれ

不惑をむかえ戸惑いを隠せない男性の独り言

反復測定分散分析のメモ

こちらの本を読んでいて、しらないことがあったので、メモ。
ISBN:978-4765313032:detail
奥田先生の本は2冊読みました。
前半はとっつきやすく、中盤からレベルがグッとあがる感じ。
ナメているとしっぺ返しをくらいます。

反復測定分散分析は使った記憶がないなぁ。
どうやら、対応のある分散分析(3群以上の比較法)らしい。

> #10人に対して3人が測定したデータで、p.86の値を拝借しました。
> dat <- data.frame(a=c(6,2,1,3,5,8,5,4,5,8),b=c(7,5,2,4,4,9,6,6,6,9),c=c(8,6,2,6,5,10,8,7,7,8))
> dimnames(dat) <- list(paste("患者",1:10),paste("評価者",1:3))

> #評価者の偏差平方和(sum of squere)は
> SS_gr1 <- (colMeans(dat) - mean(t(dat)))^2
> SS_gr1 <- sum(SS_gr1) * nrow(dat)

> #患者の偏差平方和は
> SS_gr2 <- (rowMeans(dat) - mean(t(dat)))^2
> SS_gr2 <- sum(SS_gr2) * ncol(dat)

> #誤差の偏差平方和は
> SS_err <- (t(dat) - colMeans(dat))^2
> SS_err <- sum(SS_err) - SS_gr2

> #分散分析表は
> mat <- matrix(NA,ncol=4,nrow=4,dimnames=list(c("患者","評価者","誤差","合計"),c("SS","df","MS","F")))
> mat[-4,"SS"] <- c(SS_gr2,SS_gr1,SS_err)
> mat[-4,"df"] <- c(nrow(dat)-1,ncol(dat)-1,(ncol(dat)-1)*(nrow(dat)-1))
> mat[,"MS"] <- c(mat[,"SS"]/mat[,"df"])
> mat[1:2,"F"] <- mat[1:2,"MS"]/mat[3,"MS"]
> mat[4,1:2] <- colSums(mat[-4,1:2])

> as.table(mat)
                SS          df          MS           F
患者   123.2000000   9.0000000  13.6888889  23.2452830
評価者  20.0666667   2.0000000  10.0333333  17.0377358
誤差    10.6000000  18.0000000   0.5888889            
合計   153.8666667  29.0000000                        
> 

RjpWikiではここにありました
私の式よりかなり複雑なので、本当はもっと複雑なんだろうなぁ。