anova君を使った分散分析
TRANSCRIPT
ANOVA君を使った分散分析ANOVA君を使った分散分析
広島大学 教育学研究科
学習心理学研究室 (D1)
山根 嵩史
広島大学 教育学研究科
学習心理学研究室 (D1)
山根 嵩史
お品書きお品書き
R で分散分析をしよう
-ANOVA 君とは
-ANOVA 君の入手・読み込み
-ANOVA 君の使い方
-ANOVA 君の引数 ( 多重比較 )
ANOVA 君をもっと便利に
-repAnova とは
-repAnova の使い方
R で分散分析をしよう
-ANOVA 君とは
-ANOVA 君の入手・読み込み
-ANOVA 君の使い方
-ANOVA 君の引数 ( 多重比較 )
ANOVA 君をもっと便利に
-repAnova とは
-repAnova の使い方
所属:広島大学教育学研究科 学習心理学研究室(D1)
専門領域:記憶 / メタ記憶 R 使用暦: 3 年弱
Twitter : @T_Yamane
所属:広島大学教育学研究科 学習心理学研究室(D1)
専門領域:記憶 / メタ記憶 R 使用暦: 3 年弱
Twitter : @T_Yamane
自己紹介自己紹介
なんで HSP で発表を?
僕にも何がなんだか…
気がついたら発表することに
なっていました。
お品書きお品書き
R で分散分析をしよう
-ANOVA 君とは
-ANOVA 君の入手・読み込み
-ANOVA 君の使い方
-ANOVA 君の引数 ( 多重比較 )
ANOVA 君をもっと便利に
-repAnova とは
-repAnova の使い方
R で分散分析をしよう
-ANOVA 君とは
-ANOVA 君の入手・読み込み
-ANOVA 君の使い方
-ANOVA 君の引数 ( 多重比較 )
ANOVA 君をもっと便利に
-repAnova とは
-repAnova の使い方
一元配置の分散分析を行う oneway.test 関数高度な分析に対応した aov 関数, anova 関数
⇒ 出力がちょっと不親切
⇒ 多重比較までまとめてやってほしい
R あるある
一元配置の分散分析を行う oneway.test 関数高度な分析に対応した aov 関数, anova 関数
⇒ 出力がちょっと不親切
⇒ 多重比較までまとめてやってほしい
R あるある
Rで分散分析Rで分散分析
井関龍太 先生 ( 理化学研究所 ) によって
作成された,分散分析用の関数R で分散分析をするならとりあえずこれで
OK
出力も美しい!
井関龍太 先生 ( 理化学研究所 ) によって
作成された,分散分析用の関数R で分散分析をするならとりあえずこれで
OK
出力も美しい!
ANOVA君とはANOVA君とは
参加者間要因,参加者内要因,
またはその両方を含む分散分析 # 何でもできる!
単純主効果の検討,多重比較 # 一度でできる!効果量の算出 # 重要!!
要するに,分散分析に必要なものはほとんど
備わっています
参加者間要因,参加者内要因,
またはその両方を含む分散分析 # 何でもできる!
単純主効果の検討,多重比較 # 一度でできる!効果量の算出 # 重要!!
要するに,分散分析に必要なものはほとんど
備わっています
ANOVA君でできることANOVA君でできること
井関先生のホームページより最新版をダウンロード
※ 2013.05.07 時点では anovakun_433
R のワーキングディレクトリに入れておきましょう
井関先生のホームページより最新版をダウンロード
※ 2013.05.07 時点では anovakun_433
R のワーキングディレクトリに入れておきましょう
ANOVA君を入手するANOVA君を入手する
source 関数で ANOVA 君を読み込み
※1 拡張子まで含めること
※2 いわゆるパッケージとは読み込み方が違うので注意
source 関数で ANOVA 君を読み込み
※1 拡張子まで含めること
※2 いわゆるパッケージとは読み込み方が違うので注意
ANOVA君を読み込むANOVA君を読み込む
source(“anovakun_433.txt”)
ANOVA 君の分析用にデータセットを作る
・参加者間要因は縦に,参加者内要因は横に並べる
(ANOVA4 みたいなイメージ )
例 ) 参加者間要因 参加者内要因
ANOVA 君の分析用にデータセットを作る
・参加者間要因は縦に,参加者内要因は横に並べる
(ANOVA4 みたいなイメージ )
例 ) 参加者間要因 参加者内要因
ANOVA君の使い方①:データセットを作るANOVA君の使い方①:データセットを作る
ID class
001 A 75
002 A 74
003 B 60
004 B 62
ID time1 time2
001 75 81
002 74 83
003 77 85
004 74 80
2 要因以上の場合は入れ子状に
例 ) 2 要因参加者間 2 要因参加者内計画
2 要因以上の場合は入れ子状に
例 ) 2 要因参加者間 2 要因参加者内計画
ANOVA君の使い方①:データセットを作るANOVA君の使い方①:データセットを作る
ID class gender
001 A M 75
002 A M 74
003 A F 70
004 A F 71
005 B M 60
006 B M 62
007 B F 58
008 B F 58
time1 time2
ID test1 test2 test1 test2
001 75 80 81 85
002 74 79 83 88
003 77 80 85 87
004 74 82 80 83
“分散分析の実行は anovakun” 関数
“s” を挟んで左側に参加者間要因,右側に参加者内要因の文字
その後に各要因の水準数を追記
例 ) 3 要因参加者間計画
> anovakun(data,”ABCs”,3,2,2,…)
2 つの参加者間要因と 1 つの参加者内要因の混合計画
> anovakun(data,”ABsC”,2,2,2,…)
“分散分析の実行は anovakun” 関数
“s” を挟んで左側に参加者間要因,右側に参加者内要因の文字
その後に各要因の水準数を追記
例 ) 3 要因参加者間計画
> anovakun(data,”ABCs”,3,2,2,…)
2 つの参加者間要因と 1 つの参加者内要因の混合計画
> anovakun(data,”ABsC”,2,2,2,…)
ANOVA君の使い方②:関数 anovakunANOVA君の使い方②:関数 anovakun
anovakun( データ,“ ”要因計画の型 ,各要因の水準数,… )
多重比較の指定
デフォルトでは Shaffer の方法による多重比較を行う
Holm の方法:
Holland-Copenhaver の方法:
多重比較の指定
デフォルトでは Shaffer の方法による多重比較を行う
Holm の方法:
Holland-Copenhaver の方法:
ANOVA君の使い方③:オプションを使うANOVA君の使い方③:オプションを使う
anovakun( “ ”データ, 要因計画の型 ,各要因の水準数, holm=T)
anovakun( “ ”データ, 要因計画の型 ,各要因の水準数, hc=T)
効果量の指定
偏 η2 乗: peta=T ,オメガ 2 乗: omega=T
球面性の検定
Mauchly の球面性検定: mau=T
などなど 詳しくは
効果量の指定
偏 η2 乗: peta=T ,オメガ 2 乗: omega=T
球面性の検定
Mauchly の球面性検定: mau=T
などなど 詳しくは
ANOVA君の使い方③:オプションを使うANOVA君の使い方③:オプションを使う
ANOVA 君は非常に便利ですが…
データセットを
作り直すのが
面倒くさい…
ID class gender time1 time2 time3 ・・・
001 B M 75 77 80
002 A F 62 65 70
003 A F 66 68 72
004 C F 71 70 72
005 A M 73 76 78
006 B M 59 61 65
・・・
こういう
データから… ID class
001 A 75
002 A 74
003 B 60
004 B 62
ID time1 time2
001 75 81
002 74 83
003 77 85
004 74 80
こういう subset を
作るのが面倒だ!
逆に考えるんだ
「整形しなくても分析 できるようにすれば良い」
と考えるんだ
repAnova のご紹介
十河 ( そごう ) 宏行 先生 ( 愛媛大学 ) によって作成された ANOVA 君用のインターフェース
ANOVA 君を構成する関数を使って,
出力を更に見やすく
十河 ( そごう ) 宏行 先生 ( 愛媛大学 ) によって作成された ANOVA 君用のインターフェース
ANOVA 君を構成する関数を使って,
出力を更に見やすく
repAnovaとはrepAnovaとは
十河先生のホームページ
からダウンロード
読み込み方は ANOVA君と同様 source関数で
十河先生のホームページ
からダウンロード
読み込み方は ANOVA君と同様 source関数で
repAnovaを入手,読み込むrepAnovaを入手,読み込む
source("repAnova.r")
分散分析の実行は“ repAnova” 関数
参加者の識別番号が入力された列を指定
分散分析の実行は“ repAnova” 関数
参加者の識別番号が入力された列を指定
repAnovaの使い方①:関数repAnovarepAnovaの使い方①:関数repAnova
repAnova( データ,“ ”参加者 “ ” “ ” “ ”, 参加者間要因 , 参加者内要因 , 従属変数 ,… )
分散分析の実行は“ repAnova” 関数
参加者間要因変数が入力された列を指定
参加者間要因が無い場合には NULL
複数ある場合には c(“○○” “, ××”)
分散分析の実行は“ repAnova” 関数
参加者間要因変数が入力された列を指定
参加者間要因が無い場合には NULL
複数ある場合には c(“○○” “, ××”)
repAnovaの使い方①:関数repAnovarepAnovaの使い方①:関数repAnova
repAnova( “ ”データ, 参加者 ,“ ”参加者間要因 “ ” “ ”, 参加者内要因 , 従属変数 ,… )
分散分析の実行は“ repAnova” 関数
参加者内要因変数が入力された列を指定
無い場合には NULL
分散分析の実行は“ repAnova” 関数
参加者内要因変数が入力された列を指定
無い場合には NULL
repAnovaの使い方①:関数repAnovarepAnovaの使い方①:関数repAnova
repAnova( “ ” “ ”データ, 参加者 , 参加者間要因 ,“ ”参加者内要因 “ ”, 従属変数 ,… )
分散分析の実行は“ repAnova” 関数
比較する数値が入力された列名を指定
分散分析の実行は“ repAnova” 関数
比較する数値が入力された列名を指定
repAnovaの使い方①:関数repAnovarepAnovaの使い方①:関数repAnova
repAnova( “ ” “ ” “ ”データ, 参加者 , 参加者間要因 , 参加者内要因 ,“ ”従属変数 ,… )
実行例実行例
time1 について
class(3) と gender(2) で
2 要因参加者間の
分散分析
time1 について
class(3) と gender(2) で
2 要因参加者間の
分散分析
ID class gender time1 time2 time3 ・・・
001 B M 75 77 80
002 A F 62 65 70
003 A F 66 68 72
004 C F 71 70 72
005 A M 73 76 78
006 B M 59 61 65
・・・
repAnova( データ ,“ID”, c(“class”,“gender”), NULL, “time1”)
データ整形不要! #repAnova の凄いポイント① データ整形不要! #repAnova の凄いポイント①
repAnova は HTML ファイルで出力される
ANOVA 君では“ A” ,“ a1”
だった要因名,水準名が
分かりやすく!
#repAnova の凄いポイント②
repAnova は HTML ファイルで出力される
ANOVA 君では“ A” ,“ a1”
だった要因名,水準名が
分かりやすく!
#repAnova の凄いポイント②
repAnovaの使い方②:出力repAnovaの使い方②:出力
データ整形をしなくても,入力したままの状態から分散分析ができる!
こんな状態にならなくて済む →
データ整形をしなくても,入力したままの状態から分散分析ができる!
こんな状態にならなくて済む →
repAnovaを使えば…repAnovaを使えば…
参考にした HP参考にした HP
ー fin - ー fin -
井関龍太のページ
(http://www11.atpages.jp/~riseki/pukiwikiplus/index.php)
十河研究室 HP
(http://www.s12600.net/psy/index.html)
井関龍太のページ
(http://www11.atpages.jp/~riseki/pukiwikiplus/index.php)
十河研究室 HP
(http://www.s12600.net/psy/index.html)