Last updated: October 2009. Kajiyama                    [ 目次に戻る ]

対応のある3群以上の平均値の差の検定--分散分析


  1. 対応のある三群以上の平均値の差を比べる

    対応があるデータとは,同じ人に複数回質問する場合を言う.

    二群であればt検定が使えるが,三群以上の平均値の比較は,t検定が使えない.分散分析を使用する.

    ・t検定が使えない理由は,ハンバーガーショップで学ぶ楽しい統計学-早稲田大学


  2. 対応のある四群の「データの構造」

    「図形科学」「幾何学」「製図学」「架空力学」の4科目の試験を行った.学生の成績を元に母集団(彼の学部の彼の学年)で科目間に違いがあるか知りたい.

    5人学生(山田〜安河内)の4科目の成績を標本として母集団の平均点に違いがあるかを検討する.

    測定値は,学部の学生からランダムに選んだ5人の学生の,4科目のテスト成績であり,これを標本にする.

    要因(Factor 因子)として科目を設定し,科目の質的カテゴリーである「図形科学」「幾何学」「製図学」「架空力学」の科目を4つの群(水準)とする.

    表1 5人の学生の四科目の成績(60満点)「アンスタック形式」

    サンプル 群 A1
    群 A2
    群 A3
    群 A4
    図形科学
    幾何学
    製図学
    架空力学
    山田 45 39 30 30
    鈴木 27 24 18 21
    蒼井 54 24 33 9
    国実 42 36 21 15
    安河内 54 21 36 21
    平均値 44.4 28.8 27.6 19.2


    表1-2 5人の学生の四科目の成績(60満点)「スタック形式」

    サンプル 測定値
    山田 45 図形科学
    山田 39 幾何学
    山田 30 製図学
    山田 30 架空力学
    鈴木 27 図形科学
    鈴木 24 幾何学
    鈴木 18 製図学
    鈴木 21 架空力学
    蒼井 54 図形科学
    蒼井 24 幾何学
    蒼井 33 製図学
    蒼井 9 架空力学
    国実 42 図形科学
    国実 36 幾何学
    国実 21 製図学
    国実 15 架空力学
    安河内 54 図形科学
    安河内 21 幾何学
    安河内 36 製図学
    安河内 21 架空力学


  3.  データフレームの読み込みと確認

    (1) 「スタック形式」での操作の手順

    > x <- read.table ("clipboard", header=TRUE )
    > x 
       サンプル 測定値       群
    1      山田     45 図形科学
    2      山田     39   幾何学
    3      山田     30   製図学
    4      山田     30 架空力学
    5      鈴木     27 図形科学
    6      鈴木     24   幾何学
    7      鈴木     18   製図学
    8      鈴木     21 架空力学
    9      蒼井     54 図形科学
    10     蒼井     24   幾何学
    11     蒼井     33   製図学
    12     蒼井      9 架空力学
    13     国実     42 図形科学
    14     国実     36   幾何学
    15     国実     21   製図学
    16     国実     15 架空力学
    17   安河内     54 図形科学
    18   安河内     21   幾何学
    19   安河内     36   製図学
    20   安河内     21 架空力学
    
    > str (x) 
    'data.frame':   20 obs. of  3 variables:
     $ サンプル: Factor w/ 5 levels "安河内","国実",..: 3 3 3 3 5 5 5 5 4 4 ...
     $ 測定値  : int  45 39 30 30 27 24 18 21 54 24 ...
     $ 群      : Factor w/ 4 levels "架空力学","幾何学",..: 3 2 4 1 3 2 4 1 3 2 ...
    
    > by ( x$測定値, x$群, summary)
    x$群: 架空力学
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
        9.0    15.0    21.0    19.2    21.0    30.0 
    --------------------------------------------------------------------- 
    x$群: 幾何学
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
       21.0    24.0    24.0    28.8    36.0    39.0 
    --------------------------------------------------------------------- 
    x$群: 図形科学
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
       27.0    42.0    45.0    44.4    54.0    54.0 
    --------------------------------------------------------------------- 
    x$群: 製図学
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
       18.0    21.0    30.0    27.6    33.0    36.0
    
    >  boxplot ( 測定値 ~ 群, data=x ) 
    
    >  plotMeans( x$測定値, x$群, error.bars="se") # plotMeans関数を使用するにはパッケージ 「Rcmdr」を読み込む
    


    (2) データフレームの読み込み

    ここでは,表シートあるいはエクセルの表計算シートからクリップボード経由で読み込む操作を行う.

    まず,Rの「コンソール」画面に次を記述し,

    x <- read.table ("clipboard", header=TRUE   

    次に,表1-2 5人の学生の四科目の成績(60満点)「スタック形式」の緑の部分をマウスで選択し,これをコピーする.

      )  #を追加記述し「Enterキー」を押す.

    この操作で,表1-2の[clipboard]データファイルを,Rの内部のデータフレーム,ファイル名 x に直接読み込むことができる.

    header=TRUE は第1行が列の変数名になっていることを指示している.


    (3) 読み込んだデータフレームの確認

    x #     と記述し,Rの内部に作成したデータフレーム x を,表示し確認する.


    (4) データフレームの構造確認

    str (x) #  と記述し,Rの内部のデータフレーム x の3変数の内容を表示確認する.

    Rが理解した,サンプル・分析値・水準の3変数名のリストと変数ごとのカテゴリの数とカテゴリ名が示される.

    ・分析で使用する変数名とカテゴリ名はRが理解した名前を使用する.


    注意: 要因の群のデータ形式が [Factor] 形式でないときは,

    x$群 <- factor( x$群 ) #  と記述し,データフレームの群の変数を[Facter]形式に変更する.


    (5) 群別の基礎統計量

    Rの「コンソール」画面に,

    by ( x$測定値, x$群, summary ) # と記述し,「スタック形式」のデータで,群別の基礎統計利用を計算する.


    (6)「箱ひげグラフ」と「平均値の推移図」の作成   plotMeans関数を使用するにはパッケージ 「Rcmdr」を読み込んでおくこと

    boxplot ( 測定値 ~ 群, data=x ) #      と記述し,群ごとの箱ひげ図を表示する.

    plotMeans( x$測定値, x$群, error.bars="se") #      と記述し,平均値の推移図を表示する.

    科目間の成績のばらつきがわかる.
     

    (7) バートレット(Bartlett)の検定--分散の等質性(等分散性)の検定

    4群(水準)の分散が等しいか,あるいは等しくないかを検定する.4群のデータの分散は等質であるとの帰無仮説を立てる.

    分散分析は,分散が等しいという仮定の上で構築されているので標本の測定値にもとづいて分散が一様であるか検討する.

    ただし,分散分析のF検定はその前提条件が崩れても,検定結果は信頼できるといわれている.


    Rの「コンソール」画面に,

    bartlett.test ( x$測定値 ~ x$群 )

    と記述し,「スタック形式」のデータで,分散の等質性の検定を行う.

    バートレットの検定は水準ごとの標本の数が同じでない場合も使用できる.

    p値が0.05以下のときに水準の分散は等しくないと結論する.


    >  bartlett.test ( x$測定値 ~ x$群 )
    
            Bartlett test of homogeneity of variances
    
    data:  x$測定値 by x$群 
    Bartlett's K-squared = 0.7041, df = 3, p-value = 0.8722
    

    結果

    p値が0.9であり,p値>0.05であるので帰無仮説が採択され,1つの要因の各水準の分散は等しいと結論し,分散分析に進む.




  4. 「対応あり」「標本数が同じ」場合のaov関数による分散分析

    4科目間で母集団の平均値に差があるといえるか,有意水準5%で検討する.

    帰無仮説は「各群の母集団の平均値は等しい」.

    対立仮説は,「全ての群の組み合わせに平均値の差がある」のでなく,「各群の少なくとも一組に平均値の差がある」.



    Rの「コンソール」画面に,

    summary ( aov ( x$測定値 ~ x$群 + x$サンプル ) )

    summary ( aov ( 測定値 ~ 群 + サンプル, data=x ) ) #  同じ結果になる

    と記述し,「スタック形式」のデータで,一元配置の分散分析を行う.

    > summary ( aov ( x$測定値 ~ x$群 + x$サンプル ) )
    
                Df  Sum  Sq   Mean Sq   F value   Pr(>F)   
    x$群         3  1656.0    552.0     8.0       0.003399 **
    x$サンプル   4   414.0    103.5     1.5       0.263374   
    Residuals   12   828.0     69.0                    
    ---
    Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 
    


    分散分析表が表示される.これを整形すると,以下のようになる.
    
    -----------------------------------------------------------
                 (変動) (不偏分散)(分散比)
    変動要因    自由度   平方和  平均平方和   F値      P値    
    -----------------------------------------------------------
    要因A        3      1656.0    552.0     8.0       0.003399 **
    サンプル     4       414.0    103.5     1.5       0.263374   
    誤差        12       828.0     69.0
    -----------------------------------------------------------
    ** p<.01
    
    分析結果

    有意水準5%で検定を行ったところ,要因AにおいてはP値<.05であるから,帰無仮説は棄却する.

    すなわち要因Aによる平均値の差はあるとする.母集団の科目(A1〜A4)の平均値に差があるといえる.

    分散分析では,要因Aの「科目間の成績」のどの群とどの群に差があるかは,明らかにしてくれない.このため多重比較の事後検定(下位検定)を行う.




  5. 「対応あり」の多重比較

    テューキーHSD(Tukey's‘Honest Significant Difference’method)の方法は,「対応あり」のデータに適用するのは問題があると指摘されている.

    このためボンフェローニ(Bonferroni)の方法とこの改善型のホルム(Holm)の方法を使用する.




    1. 「対応あり」のボンフェローニ(Bonferroni)の方法

      Rの「コンソール」画面に,

      pairwise.t.test(x$測定値 , x$群, p.adjust.method="bonferroni", paired=TRUE )

      と記述し,ボンフェローニ(Bonferroni)の方法で多重比較を行う.

      >  pairwise.t.test(x$測定値 , x$群, p.adjust.method="bonferroni", paired=TRUE )
      
              Pairwise comparisons using paired t tests 
      
      data:  x$測定値 and x$群 
      
               架空力学 幾何学 図形科学
      幾何学   0.401    -      -       
      図形科学 0.125    0.452  -       
      製図学   0.996    1.000  0.010   
      
      P value adjustment method: bonferroni
      


      分析結果

      多重比較の帰無仮説は二群間の平均値には差が無いである.

      有意水準5%以下を捜すと,[製図学-図形科学 p=0.010] の間に5%水準で有意な差があることがわかる.

      製図学-図形科学の間には有意水準5%で差がある.これらの科目間には成績の違いがあるといえる.


    2. 「対応あり」のホルム(Holm)の方法

      Rの「コンソール」画面に,

      pairwise.t.test(x$測定値 , x$群, p.adjust.method="holm", paired=TRUE )

      と記述し,ホルム(Holm)の方法で多重比較を行う.

      >  pairwise.t.test(x$測定値 , x$群, p.adjust.method="holm", paired=TRUE )
      
              Pairwise comparisons using paired t tests 
      
      data:  x$測定値 and x$群 
      
               架空力学 幾何学 図形科学
      幾何学   0.267    -      -       
      図形科学 0.104    0.267  -       
      製図学   0.332    0.842  0.010   
      
      P value adjustment method: holm
      


      分析結果

      多重比較の帰無仮説は二群間の平均値には差が無いである.

      有意水準5%以下を捜すと,[製図学-図形科学 p=0.010] の間に5%水準で有意な差があることがわかる.

      製図学-図形科学の間には有意水準5%で差がある.これらの科目間には成績の違いがあるといえる.


    3. ためしに,「標本数が同じ」場合の テューキーHSD(Tukey's‘Honest Significant Difference’method)の方法では

      関数TukeyHSDの使用法は,Rの「コンソール」画面に,

      ? TukeyHSD


      Rの「コンソール」画面に,

      TukeyHSD (aov ( 測定値 ~ 群 + サンプル, data=x ), "群", ordered = TRUE) # 分散分析の結果をTukeyHSD( )に入れる

      require(graphics) # 必要ならば,グラフパッケージの読み込み

      plot(TukeyHSD(aov ( 測定値 ~ 群 + サンプル, data=x ), "群" ) ) # TukeyHSDの結果をグラフにする

      と記述し,TukeyHSD(テューキー)の方法で多重比較を行う.

      > TukeyHSD (aov ( 測定値 ~ 群 + サンプル, data=x ), "群", ordered = TRUE)
        Tukey multiple comparisons of means
          95% family-wise confidence level
          factor levels have been ordered
      
      Fit: aov(formula = 測定値 ~ 群 + サンプル, data = x)
      
      $群
                        diff           lwr      upr     p adj
      製図学-架空力学    8.4  -7.197330497 23.99733 0.4150576
      幾何学-架空力学    9.6  -5.997330497 25.19733 0.3081204
      図形科学-架空力学 25.2   9.602669503 40.79733 0.0021262
      幾何学-製図学      1.2 -14.397330497 16.79733 0.9955676
      図形科学-製図学   16.8   1.202669503 32.39733 0.0335969
      図形科学-幾何学   15.6   0.002669503 31.19733 0.0499562
      
      > require(graphics) # 必要ならば,グラフパッケージの読み込み
      > plot(TukeyHSD(aov ( 測定値 ~ 群 + サンプル, data=x ), "群" ) ) # TukeyHSDの結果をグラフにする
      


      分析結果

      多重比較の帰無仮説は二群間の平均値には差が無いである.

      グラフでは95%の信頼区間が0を含まなければ有意な差があることを示す.

      [p adj]の欄で有意水準5%以下を捜すと,[図形科学-架空力学 p=0.0021262] [製図学-図形科学 p=0.0335969]

      および [図形科学-幾何学 p= 0.0499562]の間に5%水準で有意な差があることがわかる.

      図形科学-架空力学,製図学-図形科学および図形科学-幾何学の間には有意水準5%で差がある.これらの科目間には成績の違いがあるといえる.

対応のある3群以上の平均値の差の検定                   [ 目次に戻る ]