Rで分散分析
ANOVA君
Rで分散分析をするには,aov関数を使用する方法もあるが,ANOVA君が非常に楽で使い勝手が良い
以下に簡単に使い方をまとめる。が,本家サイトに全部載っているのでそっちを見たほうがいいと思うよ
ANOVA君の関数(anovakun)をDLする
上記URLの「ANOVA君のファイル」から,「anovakun_xxx.txt」というリンクをクリックし,PCの適当な場所に保存する。
拡張子を確認するためには,登録済み拡張子がエクスプローラー上で見えるようになっていなければならない。わかなければ自分でググること
ソースファイルの読み込み(Rファイルの実行)
ソースファイルとは
誰かが用意してくれた関数のこと,ソースファイルが集まったものをパッケージと呼ぶ
自分でも作れる
ソースファイル(anovakun_xxx.txt)を読み込む
ソースファイルの読み込みは,コンソールからだけでなく,GUIの操作によっても可能
GUI「ファイル」→「Rコードのソースを読み込み」
source("ファイル名"): ソースの読み込み
# source()は,あらかじめ用意された関数を読み込む関数
# ファイルパスは個人ごとに異なるので,適宜修正する
source("C:/Users/*******/******/anovakun_xxx.txt")
xxxはバージョンの数字。ファイル名に従って入力する
Mac/Linuxの場合は,source関数のオプションとして「encoding = 'CP932'」を指定して実行する
anovakunのデータを用意する
解析用データは,縦(行)に参加者間要因,横(列)に参加者内要因を並べる
被験者間要因が1つある場合
1列目に要因と水準を示すラベルを記載する(a1,a1,…a2,a2,...など。文字列でなくても,数値でも構わない)
被験者間要因がn個ある場合
最初のn列に水準を示すラベルを記載する(1列目にa1,a1,…a2,a2,...,2列目にb1...,b2...,b1...,b2...)
解析用データは,データフレームで用意する
動かないときは,as.data.frame()をすればいける気がする
たとえばcsvを読み込む場合には,read.csv() を使う。
data <- read.csv("data.csv")
被験者内1要因3水準データの例
被験者内2要因データの例(被験者内2水準 x 被験者内3水準)
被験者間1要因3水準データの例
被験者間2要因データの例 (被験者間2水準 x 被験者間2水準)
混合2要因データの例(被験者間2水準 x 被験者内3水準)
anovakunを実行する
要因・水準の数は例です。自身の実験計画に沿った数値を入力すること
# 被験者間1要因3水準ANOVA
anovakun(data, "As",3)
# 被験者内1要因3水準ANOVA
anovakun(data, "sA",3)
# 被験者間2要因ANOVA (2 x 2)
anovakun(data, "ABs",2,2)
# 被験者内2要因ANOVA (2 x 3)
anovakun(data, "sAB",2, 3)
# 混合2要因ANOVA (3,5)
anovakun(data, "AsB",3,5)
# 3要因以下も同様に実行可能です
1要因3水準分散分析 実行例(youtube)
RStudioじゃなくてふつうのRで実行しているので少しインターフェースが違います
anovakunのオプション
多重比較
デフォルトはBonferroniの改訂版であるShafferの方法
基本はこれを使っていればいい
anovakunではBonferroniの方法は実装していない(が,bonferroniは自分で簡単に計算可能)
# Holm の方法:Bonferroniの改訂版のひとつ
holm = T
anovakun(data, "sA",3, holm = T)
効果量
効果量はどれを使えば正解,というものはない。先行研究(デザイン同じであることが望ましい)で使用されているものと同じものを使った方が比較が簡単なので,そういう基準で選べばいいと思います。
上記のholmの方法のように記述する。カンマで区切っていけば,複数の効果量を出力することも可能
anovakun(data, "sA",3, holm = T, eta = T, peta = T)
# イータ二乗
eta = T
# 偏イータ二乗
peta = T
# 一般化イータ二乗
geta = T
# オメガ二乗
omega = T
# 偏オメガ二乗
pomega = T
# 一般化オメガ二乗
gomega = T
球面性の仮定の崩れへの対処
デフォルトだと球面性の仮定に対する検定はおこなってくれるが,対処(自由度調整)はしてくれないので,手動で指定する必要がある。
ただし,サンプル数がある程度大きくないとチェック不可能
K(K−1)/2<N のときに使用可能 (Oberfield and Franke, 2013)。 K は水準数
これに関しても,どれを使えばいいか,に関して正解はない。使用する際には,本家サイトの説明,統計の教科書,論文等をしっかりと読むこと。
# すべての被験者内効果についてGreenhouse-Geisserのεによる調整を適用
gg = T
# すべての被験者内効果について,Chi-Mullerのεによる調整を適用
cm=T
# 球面性検定の結果が有意であった被験者内効果について,Greenhouse-Geisserのεによる調整を適用
auto=T
統計検定の詳しいこと(初歩的なこと)については心理学統計入門(板口・森,2017)を参照ください(Amazonリンク)