二元配置分散分析1
Excel分析ツールにある「分散分析:繰り返しのない二元配置」。本当はそんなものはない(二元配置要因分散分析で単にカテゴリ内にデータが一つしかないだけ)のだが、入門書などで見かけるので、あえて取り上げる。
大学生の自主学習時間に関する学部別学年別調査クロス集計済みデータ(架空データ)を用いる。
ある大学で学生の一日あたりの平均自習時間を調査した。学生を学部ごと、学年ごとに無作為で4人抽出し、1ヶ月の平均時間を調査し、その結果をクロス集計にまとめた。
このクロス集計表から学部・学年の違いが自習時間に影響するかどうかついて分析せよ。
経済 | 法 | 文 | 理工 | 社会 | |
---|---|---|---|---|---|
1回 | 121.50 | 116.50 | 113.75 | 112.25 | 115.75 |
2回 | 103.25 | 104.25 | 118.75 | 124.50 | 122.50 |
3回 | 113.75 | 112.25 | 111.00 | 112.75 | 106.25 |
4回 | 90.00 | 88.50 | 106.00 | 129.50 | 96.50 |
分析対象
アンケート調査において元データをそのまま使うのではなく、クロス集計表を分析する際に行う。本来は一回の実験でデータを集め、分析をするケースを想定している。
data <- read.csv("http://kyoto-edu.sakura.ne.jp/weblesson/statistics/data/self-study0.csv", fileEncoding = "utf-8") data <- na.omit(data[-1]) #1列目facultyは不要 #平均値 col.mean <- colMeans(data) #列(要因1:学年)単位の平均 row.mean <- rowMeans(data) #行(要因2:学部)単位の平均 all.mean <- mean(row.mean) #全平均 #データの大きさ col.N <- length(col.mean) #要因1数 row.N <- length(row.mean) #要因2数 N <- row.N*col.N #表のセル数 #自由度 col.df <- col.N - 1 #要因1自由度 row.df <- row.N - 1 #要因2自由度 res.df <- N - row.df - col.df -1 #残差自由度
二つの要因偏差
基本的な考え方は一元配置分散分析と同じ。変動要因が複数。
- 個々の値 ← 全体の平均 + 要因1ごとの平均差 + 要因2ごとの平均差 + 誤差(残差)
col.effects <- col.mean - all.mean #学年ごとの平均差(要因1偏差) row.effects <- row.mean - all.mean #学部ごとの平均差(要因2偏差) #要因1数*要因2数の表にする(元データ表と同じ大きさにする) col.effects.matrix <- matrix(rep(col.effects,row.N),ncol=col.N,byrow=T) row.effects.matrix <- matrix(rep(row.effects,col.N),ncol=col.N) #残差 ← 個別値 - 全体平均 - 学年ごとの平均差 - 学部ごとの平均差 res.matrix <- data - all.mean - col.effects.matrix - row.effects.matrix
表の形において、一元配置反復測定分散分析で残差から切り離したサンプル効果をもうひとつのカテゴリー効果と見なせば、今回の分析となる。したがって計算自体は一元配置反復測定分散分析と同じ。サンプル偏差が要因2偏差になる。
なお本来二元配置分散分析では検出可能な交互作用はこのケースでは検出できない。
二つの要因分散と残差分散
以下、一元配置反復測定分散分析と同じ計算を続ける。
#変動(偏差平方和) col.ss <- sum(col.effects.matrix^2) row.ss <- sum(row.effects.matrix^2) res.ss <- sum(res.matrix^2) #分散 col.ms <- col.ss / col.df row.ms <- row.ss / row.df res.ms <- res.ss / res.df
F検定
#分散比(F値) col.F <- col.ms / res.ms row.F <- row.ms / res.ms #有意性(p値) col.p <- 1 - pf(col.F,col.df,res.df) row.p <- 1 - pf(row.F,row.df,res.df)
変動要因 | 変動 | 自由度 | 分散 | F | p |
---|---|---|---|---|---|
学年 | 585.36257 | 3 | 195.12083 | 2.083465 | 0.1559275 |
学部 | 502.6750 | 4 | 125.66875 | 1.341868 | 0.3105777 |
残差 | 1123.8250 | 12 | 93.65208 |
データを集約してから分析をしているため、自由度が元データより減る。それだけ情報量が減っており、分析としては必ずしも有利ではない。元データを使える時に好んで用いる手法ではない。