理学療法士がまとめたノート

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

分散分析の基本

まだ理解できていない.なので書き直し・・・ 一元配置分散分析

言葉の整理

要因(factor), 因子(factor):実験結果に影響を与える要素.それぞれの分野で使い分ける場合もあるので注意.このブログでは要因と因子の区別をせず「要因」で統一します.
〇元配置分散分析:〇は要因の数
水準:要因を分ける条件( 要因に含まれる項目 )
:=水準
平方和:偏差の二乗の合計
変動:=平方和
水準内変動:= 群内変動 = 誤差変動 = 残差変動
平均平方和:平方和を自由度で割った値(分散)
効果:目的変数への影響
主効果:水準によって効果が異なる場合、その要因に主効果があるという
交互作用:2つの要因が目的変数に対して互いに影響を及ぼしている場合
   相殺効果:一方の要因の効果が高いと他方の要因の効果がそれをうち消すこと
   相乗効果:2つの要因により効果が大きくなること
要因効果:主効果と交互作用の総称

分散分析とは

  • 分散分析は、3群以上のそれぞれの群の母平均が等しいという帰無仮説のもとに検定を行う分析方法です.t検定を繰り返して使用することはできません.例えば3群の比較を5%有意水準でそれぞれt検定を行った場合、帰無仮説は「3通り全ての検定において差がみられない」となり、対立仮説は「少なくとも一組には差がみられる」となります.つまり、有意水準は0.05ではなく1- 0.953 = 0.142 で検定したことになります.つまり、第一種の過誤が生じる危険性が14.2%となります.

  • 分散分析では、各群の母平均の推定を行うのではなく、各群が及ぼす効果(要因の効果)の分散を推定します.そのために群間の平均の変動、各群の郡内変動から平均平方和 (分散) を求め、要因の効果の有無をF分布から推測します.


一元配置分散分析(対応なし)

対応のない一要因で分類される多群の検定(要因分散分析).
実験A,B,Cのそれぞれにn人が含まれており、全部で(3×n)人の被験者からなる実験です.
群間に差があるかどうかを知りたい

        1   2   3  ・・・  n
実験A  x11 x12 x12 ・・・  x1n
実験B  x21 x22 x23 ・・・  x2n
実験C  x31 x32 x33 ・・・  x3n
実験D  x41 x42 x43 ・・・  x4n  
  
サンプル(samp)  繰り返し数 5
実験A   10   6  10   9  10
実験B   10   5   5  12   4
実験C    5   4  11   4   6  
実験D    9   5   2   3   1

上記サンプル(samp)を使用して考えていきます.
実験結果のバラつきは分散として得られ、分散の原因として次の2点が考えられます.

  • 原因1)実験A、B、Cの効果によるもの(要因の効果
  • 原因2)被験者の問題、測定の誤差、偶然などによるもの(誤差項

重要 データの構造を表すモデル
誤差項(測定値 - 各群の平均 )は互いに独立で、正規分布に従うことを仮定しています.
測定値 = 全平均 + (総平均 - 各群の平均) + (測定値 - 各群の平均 )より

全変動 = 水準間変動 + 水準内変動  
∑∑(測定値-全平均)^2 = n*∑(総平均-各群の平均)^2+∑(測定値-各群の平均 )^2 

  ポイント:∑∑2(総平均-各群の平均)(測定値-各群の平均) = 0

分散分析の帰無仮説
実験A,B,C,Dの母平均は等しい.実験A,B,C,Dの母分散は0である.
したがいまして群間の差に着目して検定することになります

F分布
全ての群の母平均が等しい場合、統計量FはF分布に従います.

F=\frac{群間平方和}{群間自由度}\div\frac{群内平方和}{群内自由度}

サンプル(samp)の場合、群間平方和の自由度は3、群内平方和の自由度は5*4-4=16となります.したがって自由度(3,4)のF分布に従うことになります

curve(df(x, 3, 16), from = 0, to = 5, type = "l", ylim = c(0, 0.8))
f:id:yoshida931:20171031142612j:plain:w300

検定の結果として帰無仮説が棄却された場合には、要因の効果が認められる(群間に差がある)と推測します.

Rを使って一元配置分散分析(対応なし)

data <- c(10,10,5,9,6,5,4,5,10,5,11,2,9,12,4,3,10,4,6,1)
exp <- factor(c(rep(c("A","B","C","D"),5)))
summary(aov(data~exp))

            Df Sum Sq Mean Sq F value Pr(>F)  
exp          3  66.15   22.05   2.579 0.0898 .
Residuals   16 136.80    8.55                 
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

結果、有意水準0.05で群間の差は認められませんでした.

F値の算出方法
一元配置分散分析 (対応なし) F値の算出方法 - 統計学備忘録 since2016


一元配置分散分析(対応あり)

対応のある1要因で分類される多群の検定(反復測定分散分析)
正確には繰り返しのない二元配置分散分析になります
サンプル:被験者4名(S1,S2,S3,S4)が5種類(testA,B,C,D,E)の検査を受けた結果
同じ被験者が繰り返して試験を受けることになる(繰り返し数は5回)
群間に点数差があるかどうかを知りたい
  ・被験者間に差があるか
  ・検査間に差があるか

サンプル(samp)  
data <- c(10,10,8,9,6,5,4,5,10,12,11,9,9,8,7,3,8,4,6,2)
data <- array(data, dim = c(4,5))
name <- list(Sub=c("s1","s2","s3","s4"), TEST=c("A","B","C","D","E"))
dimnames(data)<-name
data

    TEST
Sub   A B  C D E
  s1 10 6 10 9 8
  s2 10 5 12 8 4
  s3  8 4 11 7 6
  s4  9 5  9 3 2

Rを使って一元配置分散分析(対応あり)

data <- c(10,10,8,9,6,5,4,5,10,12,11,9,9,8,7,3,8,4,6,2)
sub <- factor(c(rep(c("s1","s2","s3","s4"),5)))
test <- factor(c(rep("A",4),rep("B",4),rep("C",4),rep("D",4),rep("E",4)))
summary(aov(data~sub+test))
  
            Df Sum Sq Mean Sq F value   Pr(>F)    
sub          3   24.2   8.067   3.681 0.043466 *  
test         4   99.7  24.925  11.373 0.000475 ***
Residuals   12   26.3   2.192                     
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1 

対応ありを無視したら…

summary(aov(data~sub))

#結果
            Df Sum Sq Mean Sq F value Pr(>F)
sub          3   24.2   8.067   1.024  0.408
Residuals   16  126.0   7.875 


summary(aov(data~test))

            Df Sum Sq Mean Sq F value  Pr(>F)   
test         4   99.7  24.925   7.403 0.00168 **
Residuals   15   50.5   3.367                   
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

自由度、平方和は同じ値で、もちろん平均平方も同じ値になっています.
しかし対応ありを無視したら、残差が大きなり、F値が小さくなっていることが確認できました.
対応ありを考慮すると有意差が出やすくなることが理解できました.


二元配置分散分析(対応なし)

対応のない2要因で分類される多群の検定 (要因分散分析)
2つの要因の組み合わせによる目的変数への影響を分析します

#サンプル:テストA、Bで各ポイント(p1,p2,p3,p4,p5)を獲得した人数
data <- c(10,10,8,9,6,5,4,5,10,12,11,9,9,8,7,3,8,4,6,2,4,10,8,8,4,6,2,10,12,13)
data <- array(data, dim = c(5,3,2))
name <- list(point=c("p1","p2","p3","p4","p5"), ","=c("","",""),TEST=c("A","B"))
dimnames(data)<-name
data

#二元配置分散分析(対応なし)のデータ配列のイメージ
#繰り返し数 3
TEST = A
point         
   p1 10  5 11
   p2 10  4  9
   p3  8  5  9
   p4  9 10  8
   p5  6 12  7

TEST = B
point        
   p1 3  4  6
   p2 8 10  2
   p3 4  8 10
   p4 6  8 12
   p5 2  4 13

分析はこのページで確認
二元配置分散分析 (1) - 統計学備忘録 since2016


二元配置分散分析(対応あり)

対応のある2要因で分類される多群の検定 (反復測定分散分析)
2つの要因の組み合わせによる目的変数への影響を分析します

#例)5人の被験者がAMとPMに試験(t1,t2,t3)を受けた時の点数
# 時刻(AM,PM)と試験(t1,t2,t3)
data <- c(10,10,13,9,12,9,11,9,10,12,7,9,9,8,7,3,8,4,6,2,4,10,8,8,6,9,8,10,12,10)
data2 <- array(data, dim = c(5,3,2))
name <- list(sub=c("s1","s2","s3","s4","s5"), "test"=c("t1","t2","t3"),"time"=c("AM","PM"))
dimnames(data2)<-name
data2  

#二元配置分散分析(対応あり)のデータ配列のイメージ
, , time = AM

    test
sub  t1 t2 t3
  s1 10  9  7
  s2 10 11  9
  s3 13  9  9
  s4  9 10  8
  s5 12 12  7

, , time = PM

    test
sub   t1 t2 t3
  s1  3  4  9
  s2  8 10  8
  s3  4  8 10
  s4  6  8 12
  s5  2  6 10

分析方法はちょっと特別な方法になります

#準備
sub2 <- factor(c(rep(c("s1","s2","s3","s4","s5"),6)))
tes2 <- factor(rep(c(rep("t1",5),rep("t2",5),rep("t3",5)),2))
tim2 <- factor(c(rep("AM",15),rep("PM",15)))

#被験者による効果、交互作用による効果を調べます
sub2
sub2:poi2
sub2:tes2
sub2:poi2:tes2

summary(aov(data~tes2*tim2+Error(sub2+sub2:tes2+sub2:tim2+sub2:tes2:tim2)))

#結果
Error: sub2
          Df Sum Sq Mean Sq F value Pr(>F)
Residuals  4  19.53   4.883               

Error: sub2:tes2
          Df Sum Sq Mean Sq F value Pr(>F)
tes2       2  8.267   4.133   2.988  0.107
Residuals  8 11.067   1.383               

Error: sub2:tim2
          Df Sum Sq Mean Sq F value Pr(>F)  
tim2       1  45.63   45.63   11.75 0.0266 *
Residuals  4  15.53    3.88                 
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Error: sub2:tes2:tim2
          Df Sum Sq Mean Sq F value  Pr(>F)   
tes2:tim2  2  81.07   40.53   11.47 0.00447 **
Residuals  8  28.27    3.53                   
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

交互作用の効果が有意になっています.したがって、単純効果の検定を行います.さらに単純効果が有意な場合には多重比較を実施します.次回、投稿する予定です.



参考)
山田 剛史, 杉澤 武俊, 村井 潤一郎; Rによるやさしい統計学, オーム社 , 2008
小野 滋;読めば必ずわかる分散分析の基礎  http://elsur.jpn.org/resource/anova.pdf