ANOVA君/ANOVA君の使い方 - 井関龍太のページ

ホーム   編集 凍結 差分 バックアップ 添付 コピー 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

ANOVA君/ANOVA君の使い方

Last-modified: 2016年02月01日 (月) 20:52:39 (1019d)
Top > ANOVA君 > ANOVA君の使い方

ANOVA君の使い方

1.Rのインストール

ANOVA君はR上で動作する関数です。使用するには,PCにRをインストールしている必要があります。
Rのインストールの仕方については,ここここを参考にしてください。

※バージョンや環境によっては,インストール直後,Rのコンソールが文字化けしていることがあります。
これは,日本語に対応していないフォントがデフォルトとして設定されているためです。
そのような場合は,メニューの「編集」→「GUI プリファレンス」を選択し,Fontの設定を日本語に対応したフォント(「MS Gothic」など)に変更してください。

2.関数のセット

ANOVA君のファイルをRに読み込みます。
予め,ANOVA君のページからANOVA君のファイルをコンピュータに保存しておいてください。
この節は,一般的なRの関数の読み込みかたの説明です。既にご存知の方は飛ばしてください。

  1. Rを起動します。
  2. Rのメニューバーから「ファイル」をクリックします。
  3. 現れたメニューの中から「Rコードのソースを読み込み」をクリックします。
  4. ファイルの選択画面になるので,ANOVA君のファイルを選んで「開く」をクリックします(このとき,ファイルの種類を「All files」にしていないと,テキストファイルであるANOVA君のファイルは表示されません。)

→Rのコンソールに「source("C:~」といったコードが表示されます。特にエラーメッセージなどが出なければ,読み込み成功です。

※Mac/Linuxをご利用の方は,source関数のオプションとして「encoding = 'CP932'」を指定して実行してください。あるいは,読み込み前にANOVA君のファイルの文字コードと改行コードをMac/Linuxに適したものに変換しておく方法もあります(例えば,“UTF-8”と“LF”など)。

3.データファイルの作成

ANOVA君で分析するデータファイルは,特定の形式にしたがって作成したものでなければなりません。以下では,この形式を簡単に説明します(このデータ形式は,js-STARやANOVA4,SPSS(反復測定オプション)のものとよく似たものになっています)。Excelファイルによる作成を想定していますが,タブ区切りテキスト等も同様です。

  1. 各被験者のデータは1行ずつ並べます。
  2. 被験者内要因のデータを横(列)に並べます。
    例えば,3水準であれば,各水準のデータを順番に一列ずつ,3列並べます。
    被験者内要因が複数ある場合は,入れ子状に並べます。例えば,2(A)×3(B)の場合は,a1-b1,a1-b2,a1-b3,a2-b1,a2-b2,a2-b3の順になります(各要因の水準を「小文字+数字」で表現しています)。
    つまり以下の条件の並びに対して,
    a1 	a1 	a1 	a2 	a2 	a2
    b1 	b2 	b3 	b1 	b2 	b3
    データは以下のように並べます。
    0.64 	0.44 	0.15 	0.88 	0.54 	0.88 <--- 参加者1のデータ
    0.73 	0.70 	0.86 	0.67 	0.32 	0.79 <--- 参加者2のデータ
    0.62 	0.41 	0.45 	0.53 	0.12 	0.73 <--- 参加者3のデータ
    0.72 	0.83 	0.13 	0.92 	0.52 	0.05 <--- 参加者4のデータ
    0.44 	0.99 	0.09 	0.48 	0.90 	0.34 <--- 参加者5のデータ
    0.11 	0.51 	0.49 	0.00 	0.17 	0.18 <--- 参加者6のデータ
  3. 被験者間要因のデータを縦(行)に並べます。
    このとき,グループ(被験者間要因の水準)の違いを表す列を付け加える必要があります。列は数字でも文字でも構いません。別のグループには別の記号を割り当てる必要があります。
    被験者間要因が複数あるときは,グループを表す列を被験者間要因の数だけ増やしてください。この場合も,各水準を入れ子状に並べる必要があります。
    例えば,2要因被験者間計画なら,以下のようになります。
A要因	B要因	従属変数
a1	b1	0.44 <--- 参加者1のデータ
a1	b1	0.88 <--- 参加者2のデータ
a1	b1	0.92 <--- 参加者3のデータ 
a1	b2	0.92 <--- 参加者4のデータ
a1	b2	0.35 <--- 参加者5のデータ 
a1	b2	0.68 <--- 参加者6のデータ 
a1	b3	0.23 <--- 参加者7のデータ 
a1	b3	0.65 <--- 参加者8のデータ 
a2	b1	0.56 <--- 参加者9のデータ 
a2	b1	0.30 <--- 参加者10のデータ 
a2	b2	0.02 <--- 参加者11のデータ 
a2	b2	0.36 <--- 参加者12のデータ 
a2	b3	0.81 <--- 参加者13のデータ 
a2	b3	0.91 <--- 参加者14のデータ 
a2	b3	0.72 <--- 参加者15のデータ 

→これでデータファイルは完成です。

※なお,出力結果では,各要因のそれぞれの水準を「a1,a2,…」「b1,b2,…」のように表していますが,このときの水準の順番は作成したデータフレームの並びをそのまま反映しています。
つまり,上の例で「a1,a2,…」と割り当てているのと同じ順番で各条件に名前を割り当てています。

4.データファイルの読み込み

3で作成したデータファイルをRに読み込みます。
Rへのデータの読み込みにはいろいろな方法がありますが,以下では,クリップボードからデータをコピーする場合の方法を説明します。
この節は,一般的なRへのデータの読み込みかたの説明です。既にご存知の方は飛ばしてください。

  1. 3で作成したファイルのデータ部分をマウスで選択し,右クリックして「コピー」を選択します。
  2. Rのコンソールに以下のコードを入力します。
    dat <- read.table("clipboard")
    ※dat部分は,後でこのデータを参照するための変数名で,任意の名前をつけることができます。

Windows以外のOSの場合には,上のコードではうまく読み込めないことがあります。
2のように,すでにanovakunのファイルを読み込んでいれば,Windows/Mac/LinuxのいずれのOSでも,以下のコードでクリップボードからデータを読み込むことができます(version 4.3.2以降)。

dat <- read.clip()

詳しくはRでクリップボードからデータを読み込むのページを参照してください。

→データの読み込み完了です。読み込みが成功したかどうかは,データを読み込んだ変数名(datなど)をRのコンソールに入力してエンターキーを押せば確認できます。

5.関数の実行

ANOVA君を実行します。

  1. Rのコンソールに以下のようなコードを入力します。
    anovakun(データ, "要因計画の型", 各要因の水準数,...)
    各変数の部分には,実行したい分析に合わせて以下の内容を入力してください。
    1. データ」……分析したいデータを参照する変数の名前です。データを読み込むときにつけた変数名を入力してください(datなど)。
    2. 要因計画」……分析したい計画の型を入力します。「A」~「Z」を各要因を表すラベル,「s」を被験者のラベルとします。被験者間要因は「s」の左側,被験者内要因は「s」の右側に配置します。この表記法にしたがえば,例えば,2要因の被験者間計画は「ABs」,3要因の被験者内計画は「sABC」,2つの被験者間要因と1つの被験者内要因を持つ混合要因計画は「ABsC」と表せます。なお,要因計画の型は「""」で囲む形で入力する必要があります。
    3. 各要因の水準数」……「A」~「Z」の各要因の水準数を順に入力します。この「A」~「Z」の順番は,データファイルの入れ子の順番に対応している必要があります。入れ子の最も外側にある要因から順番に「A」~「Z」のラベルが対応します(被験者間要因がある場合は,被験者間要因の方を先に割り当てます)。水準数は「,」で区切って,要因の数だけ入力します(ABCの3つの要因があるなら,「Aの水準数,Bの水準数,Cの水準数」のようにします)。
  2. エンターキーを押します。

→結果が出力されます。

出力の際に,自分で要因や水準の名前を指定したい場合は,より高度な入力方式のページを参照してください。

オプション

ANOVA君には,いくつかのオプション機能があります。
オプションは,関数の実行の際に,かっこ内に「,」で区切って指定します。
例えば,ANOVA君のページの使用例においてHolmの方法による多重比較を指定したいときは,

anovakun(dat, "AsB", 2, 3, holm = T)

のように入力します。
「T」の部分は「TRUE」でも構いません(ただし,すべて大文字にしてください)。
以下では,各オプションについて説明します。

入力形式

データの入力形式を指定します。

  1. long・・・「long = T」とすると,ロング形式のデータを読み込んで処理を行います。詳しくは,より高度な入力方式を参照ください。

出力形式

結果の出力形式を変更します。

  1. tech・・・テクニカルアウトプット。「tech = T」とすると,データフレームをリストでつないだ形式で結果を出力します(「データフレーム」も「リスト」もRのデータ形式です。くわしくは,RjpWikiなどを参考にしてください)。この形式にすると,見栄えはよくありませんが,出力結果を利用してRでさらなる計算を行うのに便利です。
  2. data.frame・・・「data.frame = T」とすることで,計算を実行する際のもとになったデータを出力します。この場合,データは回帰形式(Rの一般線形モデルで用いる形式;SPSSの一般線型モデル-一変量に対応する形式)で並んでいます。もともと,開発段階で並び替えの成否をチェックするために使っていた機能ですが,データが意図通りに配置されているかを確認するのに有効です。また,この形式を利用して,Rでの他の分析やSPSSでの分析に利用することができるかと思います。
  3. nopost・・・「nopost = T」とすることで,下位検定(単純主効果の検定および多重比較)の計算を省略します。要因数が多すぎて下位検定の計算に時間がかかる場合などにご利用ください。
  4. copy・・・「copy = T」とすることで,結果をクリップボードに出力します。クリップボードの内容はエディタ等に貼り付け(ctr + v)できます。ANOVA君の実行以前にクリップボードに保存していた内容は上書きされるので注意してください。また,出力の量が多いときにcopyを指定するとPCの動作が遅くなることがあります。Linuxでこの機能を使用するには,予めxclipをインストールしている必要があります。

平方和

anovakun 3.0.0以降では,デフォルトでは,タイプⅢ平方和を計算します。

  1. type2・・・「type2 = T」とすると,タイプⅡ平方和を計算します。

多重比較

ANOVA君は,デフォルトではShafferの方法(Modified Sequentially Rejective Bonferroni Procedure)による多重比較を行ないますが,オプションを指定することで,同系統(ステップダウン方式の修正Bonferroni手続き)の以下の多重比較法を選択することができます。各手法の詳細については,多重比較の方法や永田・吉田(1997)を参考にしてください。

  1. holm・・・「holm = T」とすることで,Holmの方法(Sequentially Rejective Bonferroni Procedure)を指定できます。Shafferの方法よりも若干検出力が落ちますが,使用に際しての制約がより少なく,広い場面で適用できる方法です。
  2. hc・・・「hc = T」とすることで,Holland-Copenhaverの方法(Improved Sequentially Rejective Bonferroni Test Procedure)を指定できます。Shafferの方法よりも若干検出力が高まりますが,相互に相関のあるデータ(反復測定データ)に適用することの妥当性は明確にされていません。
  3. s2r・・・「s2r = T」とすることで,RasmussenのアルゴリズムによるShaffer2の方法を指定できます。以下の方法ともども,くわしくは,Shafferの方法のバリエーションを参照してください。
  4. s2d・・・「s2d = T」とすることで,DonoghueのアルゴリズムによるShaffer2の方法を指定できます。
  5. fs1・・・「fs1 = T」とすることで,主効果(単純主効果)の結果を反映させたShaffer1の方法を指定できます。
  6. fs2r・・・「fs2r = T」とすることで,主効果(単純主効果)の結果を反映させたShaffer2の方法を指定できます(Rasmussenのアルゴリズム)。
  7. fs2d・・・「fs2r = T」とすることで,主効果(単純主効果)の結果を反映させたShaffer2の方法を指定できます(Donoghueのアルゴリズム)。
  8. welch・・・「welch = T」とすると,多重比較の際にKeselman-Keselman-Shafferの統計量とWelch-Satterthwaiteの近似自由度を使用します。Welchの方法を複数の要因を含むデザインや反復測定要因を含むデザインに拡張した方法に基づいており,等分散性や多標本球面性が成立しない場合により適切な手法です(Keselman et al., 1991)。
  9. criteria・・・「criteria = T」とすると,多重比較の結果の出力時に,調整済みp値の代わりに調整後の有意水準を表示します。

球面性検定

ANOVA君は反復測度を含む計画については,デフォルトでは,Mendozaの多標本球面性検定を行います。他の検定を適用したい場合には,以下のオプションによって指定することができます。

  1. mau・・・「mau = T」とすることで,Mauchlyの球面性検定を指定できます。分散分析の文脈における球面性の仮定の検討方法として最もオーソドックスな方法ですが,混合要因計画の場合の多標本球面性の仮定には対応していません。多標本球面性の仮定を検討したい場合には,群間での分散の等質性の検定を併せて行うか,他の一段階多標本球面性検定を用いる必要があります。
  2. har・・・「har = T」とすることで,Harrisの多標本球面性検定を指定できます。Mendozaの検定と同様に多標本球面性の仮定について一段階で検定することができます。

自由度調整

ANOVA君球面性検定の結果を出力しますが,デフォルトでは,ε(イプシロン)による自由度の調整を行いません。
自由度の調整を行なうには,以下のオプションを指定します。
調整を行なうと,分散分析表の自由度の値が調整後の値になり,p値も調整後の自由度に基づいたものになります。

  1. lb・・・「lb = T」とすることで,すべての被験者内効果について,εの下限値(lower bound)による調整を行ないます。この方法は,Geisser-Greenhouseの保守的検定と呼ばれます。
  2. gg・・・「gg = T」とすることで,すべての被験者内効果について,Greenhouse-Geisserのεによる調整を行ないます。
  3. hf・・・「hf = T」とすることで,すべての被験者内効果について,Huynh-Feldtのεによる調整を行ないます。球面性からの逸脱が小さい場合は(Greenhouse-Geisserのεが0.75以上のとき),Greenhouse-Geisserのεによる調整よりも適切であるとされています。
  4. cm・・・「cm = T」とすることで,すべての被験者内効果について,Chi-Mullerのεによる調整を行ないます。球面性からの逸脱の度合いにかかわらず一般的に使える指標として提案されています。
  5. auto・・・「auto = T」とすることで,球面性検定の結果が有意であった被験者内効果について,Greenhouse-Geisserのεによる調整を行ないます。このような適用の仕方は慣例的に行なわれていると思いますが,統計学的に妥当な方法であるかは保証の限りではありません。

一般近似検定

非釣り合い型計画において多標本球面性の仮定が維持されない場合に適用できる方法です。これらの方法を用いると,検出力は低くなりますが,仮定の崩れによるタイプⅠエラー率の増大を抑えることができます。

  1. iga・・・「iga = T」とすることで,Huynhの改良版一般近似検定(Huynh's Improved General Approximation Test)を行うことができます。ただし,より適切な方法として修正版のCIGAがあります。このオプションは,過去の計算例やプログラムとの一貫性を確認するためのものと考え,実用にはCIGAをご利用ください。
  2. ciga・・・「ciga = T」とすることで,Algina-Lecoutreの修正改良版一般近似検定(Algina-Lecoutre's Corrected Improved General Approximation Test)を行うことができます。

効果量とp_rep

効果量については広島大学 認知心理生理学研究室の中のERPについてのQ & Aのページが参考になります。
p_repについては,村山航さんが日本語による詳しい解説を公開されています。また,SQABのページに行くと,Killeen(2005)のオリジナルの論文と関連論文,p_repの計算式を記述したExcelシートなどをセットにしたp-rep packを無料でダウンロードできます(Tutorialsの中にあります)。他にも,このページでは様々な統計関連の資料を入手できます。

  1. eta・・・「eta = T」とすることで,分散分析表にイータ二乗(eta squared)を追加します。各要因によるデータ変動の説明率を表します。
  2. peta・・・「peta = T」とすることで,分散分析表に偏イータ二乗(partial eta squared)を追加します。各要因によるデータ変動の説明率を表します。
  3. geta・・・「geta = T」とすることで,分散分析表に一般化イータ二乗(generalized eta squared)を追加します。また,「T」の代わりに要因を表す文字列を用いることで(geta = "B"など)測定変数を指定できます。詳しくは,反復測定デザインにおける効果量を参照ください。
  4. eps・・・「eps = T」とすることで,分散分析表にイプシロン二乗(epsilon squared)を追加します。イータ二乗の母集団推定値に当たります。
  5. peps・・・「peps = T」とすることで,分散分析表に偏イプシロン二乗(partial epsilon squared)を追加します。偏イータ二乗の母集団推定値に当たります。
  6. geps・・・「geps = T」とすることで,分散分析表に一般化イプシロン二乗(generalized epsilon squared)を追加します。また,「T」の代わりに要因を表す文字列を用いることで(geps = "B"など)測定変数を指定できます。詳しくは,反復測定デザインにおける効果量オメガ二乗の複雑な事情を参照ください。
  7. omega・・・「omega = T」とすることで,分散分析表に加算モデルに基づくオメガ二乗(omega squared)を追加します。イータ二乗の母集団推定値に当たります。
  8. omegana・・・「omegana = T」とすることで,分散分析表に非加算モデルに基づくオメガ二乗(omega squared)を追加します。加算モデルと非加算モデルの違いについては,オメガ二乗の複雑な事情をご覧ください。
  9. pomega・・・「pomega = T」とすることで,分散分析表に偏オメガ二乗(partial omega squared)を追加します。偏イータ二乗の母集団推定値に当たります。
  10. gomega・・・「gomega = T」とすることで,分散分析表に加算モデルに二基づく一般化オメガ二乗(generalized omega squared)を追加します。また,「T」の代わりに要因を表す文字列を用いることで(gomega = "B"など)測定変数を指定できます。詳しくは,反復測定デザインにおける効果量を参照ください。
  11. gomegana・・・「gomegana = T」とすることで,分散分析表に非加算モデルに基づく一般化オメガ二乗(generalized omega squared)を追加します。また,「T」の代わりに要因を表す文字列を用いることで(gomega = "B"など)測定変数を指定できます。加算モデルと非加算モデルの違いについては,オメガ二乗の複雑な事情をご覧ください。
  12. prep・・・「prep = T」とすることで,分散分析表にp_repを追加します。p値から計算した,検定結果の再現率を表します。現在のところ,このオプションは分散が既知の場合の2群の比較のための方法を用いているので,使用は推奨しません。このオプションは,将来的に廃止もしくは修正する可能性があります。
  13. nesci・・・「nesci = T」とすることで,非心分布アプローチに基づく効果量の信頼区間を出力します。同時にいずれかの効果量の出力を指定していないと機能しないので注意してください。反復測定要因を含む効果と非加算モデルに基づく効果量については信頼区間を出力しません。くわしくは,標準化効果量の信頼区間をご覧ください。
  14. besci・・・「besci = T」とすることで,ブートストラップ法に基づく効果量の信頼区間を出力します。同時にいずれかの効果量の出力を指定していないと機能しないので注意してください。くわしくは,標準化効果量の信頼区間をご覧ください。

信頼区間

反復測定デザインでは,それに対応した信頼区間を選ぶ必要があります。詳しくは,反復測定デザインにおける信頼区間を参照ください。

  1. cilmd・・・「cilmd = T」とすることで,記述統計量の表に差分調整型のLoftus-Massonの信頼区間を追加します。
  2. cilm・・・「cilm = T」とすることで,記述統計量の表にLoftus-Massonの信頼区間を追加します。
  3. cind・・・「cind = T」とすることで,記述統計量の表に差分調整型の正規化に基づく信頼区間を追加します。被験者間計画の場合には伝統的な方法を用いて信頼区間を計算します。
  4. cin・・・「cin = T」とすることで,記述統計量の表に正規化に基づく信頼区間を追加します。被験者間計画の場合には伝統的な方法を用いて信頼区間を計算します。
  5. ciml・・・「ciml = T」とすることで,記述統計量の表にマルチレベルモデルに基づく信頼区間を追加します。このオプションを使用するには,あらかじめlmerTestパッケージをインストールしている必要があります。また,このオプションの実行にはある程度の時間を要します。サンプルサイズが十分でない場合にはエラーメッセージが出力されることがあります。
  6. cipaird・・・「cipaird = T」とすることで,差分調整型のペアワイズ信頼区間を出力します。
  7. cipair・・・「cipair = T」とすることで,ペアワイズ信頼区間を出力します。
  8. bgraph・・・「bgraph = "信頼区間のオプション名"」とすると,信頼区間つきの棒グラフを出力します。信頼区間は内側・外側の順に2つまで指定できます。例えば,bgraph = c("cind", "ciml")とすると,差分調整型の正規化に基づく信頼区間とマルチレベルモデルに基づく信頼区間を描画します。なお,このオプションは3要因までの計画についてのみ機能します。

文献

Keselman, H. J., Keselman, J. C., & Shaffer, J. P. (1991). Multiple pairwise comparisons of repeated measures means under violation of multisample sphericity. Psychological Bulletin, 110, 162-170.
Killeen, P. R. (2005). An alternative to null-hyphothesis significance tests. Psychological Science, 16, 345-353.
永田靖・吉田道弘 (1997). 統計的多重比較法の基礎. サイエンティスト社

その他の使用法関連の記事

より高度な入力方式
ANOVA君のGUI

TrackBack(0) | 外部リンク元 | このエントリーをはてなブックマークに追加