統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

EZRやSPSSで反復測定分散分析はどのように行えばよいか?

経時的に何回か測定した連続量を、群間比較したい、時点の多重比較をしたい。

こういう時によく取り上げられる手法として反復測定分散分析がある。

EZR公式マニュアルのデータを使って反復測定分散分析の例を紹介する。

EZRでのやり方と、SPSSでのやり方を列挙して比べてみる。

EZRで反復測定分散分析を行う方法

データ読み込みから解析

EZR公式マニュアルP.211からの内容に沿って紹介してみる。

まずマニュアル付属の FCZ_CSA.rda を読み込む。

f:id:toukeier:20220213171112p:plain
「ファイル」→「既存のデータを読み込む」からデータを選択する

統計解析→連続変数の解析→反復測定分散分析を選択する。

f:id:toukeier:20220213171345p:plain
「統計解析」→「連続変数の解析」→「反復測定分散分析」を選択

反復測定データと群別変数を選択する。

多重比較はBonferroniを選択する。

f:id:toukeier:20220213171634p:plain
反復測定データと群別データを選択する

OKをクリックするとグラフが自動的に表示される。

平均値の折れ線グラフで、エラーバーは標準偏差を示している。

f:id:toukeier:20220116205203p:plain
平均値のプロット

平均値の折れ線グラフは以下も参照。

toukeier.hatenablog.com

結果の解釈

反復測定分散分析の結果を確認する。

Factor1.FCZが3群比較の行。

Timeが3回測定の時間の効果の行。

Factor1.FCZ:Timeが時間の経過とともに3群が異なる傾向を示すかどうかの交互作用の行。

Timeのみが統計学的有意で、時間とともに平均値が異なることがわかる。

Factor1.FCZとFactor1.FCZ:Timeは、ともに統計学的有意ではなく、3群の差はなく、時間経過の変化は3群で差がないことがわかる。

> #####対応のある2群以上の間の平均値の比較(反復[経時]測定分散分析)#####

> summary(res, multivariate=FALSE)

Univariate Type III Repeated-Measures ANOVA Assuming Sphericity

                   Sum Sq num Df Error SS den Df   F value    Pr(>F)    
(Intercept)      11553452      1  1666856    160 1109.0057 < 2.2e-16 ***
Factor1.FCZ          8035      2  1666856    160    0.3856 0.6806430    
Time                72782      2  1282273    320    9.0816 0.0001458 ***
Factor1.FCZ:Time     6370      4  1282273    320    0.3974 0.8104825    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Mauchly モークリー の Test for Spericity 球面性検定という検定がなされていて、これが統計学的有意である場合は、球面性が成り立っておらず、自由度を調整したGreenhouse-GeisserまたはHuynh-Feldtと書かれている補正した結果のほうが適切になる。

球面性というのは、2群比較で言えば等分散性みたいなもので、満たしていてほしい前提と考えればよい。

満たしていない場合は、補正した方法を使ったほうがよいということになる。2群の平均値の比較におけるWelchの方法みたいなものだ。

Huynh-FeldtはGreenhouse-Geisserの改良版となるため、Huynh-Feldtを見るのが良いと思う。

今回は補正した結果のほうが適切との結果であったが、補正前も補正後も有意確率はほとんど変わらず、結論も変わらない。

Mauchly Tests for Sphericity

                 Test statistic    p-value
Time                    0.71896 4.0534e-12
Factor1.FCZ:Time        0.71896 4.0534e-12


Greenhouse-Geisser and Huynh-Feldt Corrections
 for Departure from Sphericity

                  GG eps Pr(>F[GG])    
Time             0.78061  0.0005466 ***
Factor1.FCZ:Time 0.78061  0.7629030    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

                    HF eps   Pr(>F[HF])
Time             0.7869205 0.0005261697
Factor1.FCZ:Time 0.7869205 0.7644874541

時点間の多重比較

Bonferroni調整にチェックを入れて出力させた、時点間の多重比較の結果は以下の通り。

時点間の対応のあるデータ間の差を取って、対応のあるt検定を繰り返す方法である。

今回は交互作用がなく、群間に違いがなかったため、3群一緒の時点間の多重比較が適切である。

もし、交互作用があった場合は、群別に時点間多重比較するのが良い。

結果は、1と2、1と3の間が、統計学的有意に異なるというものであった。

> pairwise.pairedt.test(with(TempDF, cbind(CDratio1, CDratio2, CDratio3)), TempDF$Factor1.FCZ, "FCZ_CSA", p.adjust.method="bonferroni")

    Pairwise comparisons using Paired t-test 

data:  FCZ_CSA 

         CDratio1 CDratio2
CDratio2 0.2541   -       
CDratio3 0.0022   0.0124  

P value adjustment method: bonferroni 

SPSSで反復測定分散分析を実施してみるとどうなるか?

解析準備から解析実行

同じデータをSPSSで解析してみるとどうなるか?

EZRからStata形式でエクスポートして、SPSSで読み込むと簡単に移植できる。

SPSSでは、分析から一般線型モデル→反復測定を選択する。

f:id:toukeier:20220213174351p:plain
「分析」→「一般線型モデル」→「反復測定」を選択

次に出てくる窓で、被験者内因子名と水準数を入力し、追加をクリックする。

今回は、被験者内因子名をfactor1のまま(週で反復測定していたのでWeekなどとしてもよい)、水準数を3(CDratio1~3のため)として、追加をクリックする。

f:id:toukeier:20220226165355p:plain
被験者内因子名と水準数を入力する

測定因子名は、測定値のCDratioを入力し、追加をクリックする。

f:id:toukeier:20220226165544p:plain
測定因子名を入力する

そして最後に定義をクリックすると、変数の投入画面になる。

CDratio1~3を選択して、矢印をクリックすると被験者内変数に投入される。

f:id:toukeier:20220213174900p:plain
3つの変数を選択して、矢印をクリックする

被験者間因子はFCZを選択して矢印をクリックして投入する。

f:id:toukeier:20220213174955p:plain
被験者間因子を選択して投入する

結果解釈

肝心の結果の前に、多変量検定というものが出力されるが、一般的ではなく、読み解く必要はないと個人的には思っている。

まず、Mauchly モークリー の球面検定結果であるが、EZRの結果(検定統計量0.71896)と同じく検定統計量が四捨五入されているだけで同じ0.719で、統計学的有意なので、球面性を満たしておらず、Greenhouse-GeisserもしくはHuynh-Feldtの結果を採用するほうが良い。

Greenhouse-Geisserの調整値イプシロンは、0.78061≒0.781で同じだが、Hyunh-Feldtのイプシロンは、EZRが0.7869205に対して、SPSSは0.797となっている。

f:id:toukeier:20220116204811p:plain
Mauchlyの球面検定

これは二つのソフトウェアに搭載されている計算式が異なることが原因と考えられる。

Huynh-Feldtは、群間比較をする場合は、Lecoutreの修正版Huynh-Feldt-Lecoutreの方法が適切な方法なのだが、下記*の確認結果から、SPSSは、修正されていない古い論文に基づいている可能性が高い。

つまり、SPSSでは、群間比較がある場合はGreenhouse-Geisser、ない場合はHyunh-Feldtが良いと思う。

たいていは群間比較がしたいと思うので、SPSSでは、Greenhouse-Geisserを使っておくのが無難と考えられる。

Greenhouse-Geisserは、古典的だがコンサバで厳しすぎるBonferroni調整みたいなものと思っておけばよいと思う。

Bonferroni調整は、皆さん知っているので、間違いない方法という点で安心だ。それと同じような感じだ。

Greenhouse-GeisserとHuynh-Feldtについてはこちらの記事を参照。

toukeier.hatenablog.com

*EZRの反復測定分散分析におけるHuynh-Feldtのイプシロンは、Huynh-Feldt-Lecoutreに修正済みのANOVA君と同じ結果が得られたので、EZRは修正済みと考えられた。詳細は以下の記事を参照。

toukeier.hatenablog.com

被験者内効果の検定の結果は、上述のようにGreenhouse-Geisserの行を見るのが良い。

f:id:toukeier:20220116204847p:plain
被験者内効果の検定

factor1は、反復測定のことを言っていて、その値は経時的に統計学的有意に異なるという解釈になる。

ちなみにfactor1の有意確率が <.001 となっているが、ダブルクリックして、表が編集できるようにして、さらに <.001 部分をダブルクリックすると詳細な数値が現れる。

f:id:toukeier:20220226160258p:plain
<.001の数値を詳細に見るには表をダブルクリックする

この数値を見るとEZRの結果と四捨五入以外同じ 0.000547 であることがわかる。

factor1*FCZは、経時的変化が群間で異なるかという交互作用を見たものだが、これは統計学的有意ではなく、群間では異なるとは言えない。

EZRで出力された平均値の折れ線グラフを見ても、3群の平均値の変化傾向は異ならないように見える。

被験者間効果の検定は、FCZ 変数3群の効果を見ている。

有意確率は0.681で有意ではなく、EZRの結果 0.6806430 とも同様である。

f:id:toukeier:20220116205010p:plain
被験者間効果の検定

群間及び時点間の多重比較

推定周辺平均(EM平均)を使うと、被験者間効果の多重比較や時点間の多重比較ができる。

f:id:toukeier:20220226161106p:plain
反復測定の変数設定画面でEM平均をクリック

FCZ 群間比較と、factor1時点間の比較を、それぞれBonferroni調整の多重比較で実行する。

f:id:toukeier:20220226161006p:plain
推定周辺平均(EM平均)を使うと多重比較ができる

こちらが群間の多重比較。EZRでは実施されない方法だ。

f:id:toukeier:20220226161440p:plain
群間の多重比較

以下が時点間の多重比較。EZRとは実施している方法が異なるため、比較はできない。

大雑把に出力値で計算してみたところ、群間も時点間も、EM平均を使った独立2群の平均値の差の検定(つまり、いわゆるt検定)を繰り返し行って、Bonferroni調整を実施していると想像できた。

f:id:toukeier:20220226161546p:plain
時点間の多重比較

まとめ

EZR公式マニュアルに付属のデータ、3群の3回反復測定データを用いて、反復測定分散分析を行う方法について紹介した。

Huynh-Feldtの結果と、群間もしくは時点間の多重比較がソフトウェアによって異なることに注意が必要だが、メインの解析及びGreenhouse-Geisserの調整については両ソフトが一致していることが確認できた。

何等か参考になれば。

解説動画

youtu.be

おすすめ本

EZR公式マニュアル

SPSSによる分散分析・混合モデル・多重比較の手順