R 実験計画法 直交表から要因効果の計算
はじめに
統計処理環境であるRを使い始めたら、すごく便利なことに気がつきました。今回は前回の続きのである、直交表から要因効果を計算してみたいと思います。思いっきり、個人メモです。質問に答えられないので予めご了承下さいね。
データについて
データは前回の分散分析に使ったデータです。
ぽっとの陽だまり研究室 : R 実験計画法 直交表の分散分析メモ
data <- data.frame(
A = c("1","1","1","2","2","2","3","3","3"),
B = c("1","2","3","1","2","3","1","2","3"),
C = c("1","2","3","2","3","1","3","1","2"),
e = c("1","2","3","3","1","2","2","3","1"),
y = c(1.0,1.2,1.3,1.1,1.0,1.4,1.4,1.5,1.6)
)
簡単な解説
前回のL9のデータから各水準の効果について調べたいと思います。まず、直交表の各因子について、各水準毎の平均を求めます。その求めた平均が各因子の水準の効果です。
例えば、因子Aについて水準1の効果は、因子Aの水準1の平均になるので、以下のコマンドで因子Aの水準1の効果を得ることが出来ます。水準2,3についても同様にコマンドを与えることで得ることが出来ます。
## 因子Aの水準1の効果
mean(subset(data,A==1)$y)
## 因子Aの水準2の効果
mean(subset(data,A==2)$y)
## 因子Aの水準3の効果
mean(subset(data,A==3)$y)
簡単なプログラムで
直交表が大きくなると、上記方法では面倒なので簡単なプログラムを作ってみます。dataからdatに列が因子、行が水準で計算結果を代入しています。もっと良い方法があると思いますが、とりあえず簡単な方法で書いてみました。
## 要因効果の抽出
dat <- matrix(, nrow=3, ncol=3)
for(j in 1:3){
for(i in 1:3){
dat[i,j] = mean(subset(data,data[,j]==i)$y)
}
}
dat
最後に
Rって便利ですね。以前は、重回帰分析のプログラムを自分で作ってデータの分析をしたこともあったけど、Rならば簡単に重回帰分析もできて、いろいろな統計処理が簡単に出来るので便利です。そしてなによりも、多くの研究者達が利用されているので、情報を得ることができるのも良いですね。