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

測定装置四台の分析力: 一元配置の分散分析と多重比較

(因子Aに対応あり・標本数は同じ)


  1. 「対応あり・標本数が同じ」場合の課題

    四人の分析(山田,鈴木,蒼井,国実)者が,異なるメーカの測定装置四台(A1〜A4 あー社・いー社・うー社・えー社)を使い,

    標準化された同じ資料を分析した結果が表1である.

    同じ担当者が四台(A1〜A4)とも分析しているので,因子Aに「対応あり」のデータである.測定装置による違いを調べる.

    「四台の測定装置で分析した値の母集団の平均値に差があるといえるか」,有意水準5%で検討する.



    表1 測定装置四台の分析値「対応あり・標本数は同じ」 「アンスタック形式」

    このデータは,一元配置分散分析と多重比較 (対応なし・標本数が同じ)で使用した表1を利用した.

    「分散分析法入門,石川馨,米山高範,日科技連出版社,1967. p22

    サンプル 水準A1 水準A2 水準A3 水準A4
    山田 81.0 80.4 79.8 79.4
    鈴木 80.8 80.1 79.2 78.9
    蒼井 80.0 80.6 80.5 78.7
    国実 79.8 80.9 80.4 80.0
    平均 80.40 80.50 79.97 79.25


  2. 分散分析の関数は「スタック形式」のデータで処理する. 「スタック形式」のデータにRで変換

    ・エクセルで表を作成し,コピーアンドペーストで処理すると楽である.



  3. Rに「スタック形式」のデータを読み込み,データの確認を行う


    表2 測定装置四台の分析値・対応あり 「スタック形式」

    サンプル 分析値 水準
    山田 81.0 水準A1
    鈴木 80.8 水準A1
    蒼井 80.0 水準A1
    国実 79.8 水準A1
    山田 80.4 水準A2
    鈴木 80.1 水準A2
    蒼井 80.6 水準A2
    国実 80.9 水準A2
    山田 79.8 水準A3
    鈴木 79.2 水準A3
    蒼井 80.5 水準A3
    国実 80.4 水準A3
    山田 79.4 水準A4
    鈴木 78.9 水準A4
    蒼井 78.7 水準A4
    国実 80.0 水準A4

    変数のサンプルと水準は因子でありデータ形式は factorである.


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

    > y <- read.table ("clipboard", header=TRUE )
    > y
       サンプル 分析値   水準
    1      山田   81.0 水準A1
    2      鈴木   80.8 水準A1
    3      蒼井   80.0 水準A1
    4      国実   79.8 水準A1
    5      山田   80.4 水準A2
    6      鈴木   80.1 水準A2
    7      蒼井   80.6 水準A2
    8      国実   80.9 水準A2
    9      山田   79.8 水準A3
    10     鈴木   79.2 水準A3
    11     蒼井   80.5 水準A3
    12     国実   80.4 水準A3
    13     山田   79.4 水準A4
    14     鈴木   78.9 水準A4
    15     蒼井   78.7 水準A4
    16     国実   80.0 水準A4
    
    > str (y) 
    'data.frame':   16 obs. of  3 variables:
     $ サンプル: Factor w/ 4 levels "国実","山田",..: 2 4 3 1 2 4 3 1 2 4 ...
     $ 分析値  : num  81 80.8 80 79.8 80.4 80.1 80.6 80.9 79.8 79.2 ...
     $ 水準    : Factor w/ 4 levels "水準A1","水準A2",..: 1 1 1 1 2 2 2 2 3 3 ...
    
    > by ( y$分析値, y$水準, summary)
    y$水準: 水準A1
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      79.80   79.95   80.40   80.40   80.85   81.00 
    --------------------------------------------------------------- 
    y$水準: 水準A2
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      80.10   80.33   80.50   80.50   80.67   80.90 
    --------------------------------------------------------------- 
    y$水準: 水準A3
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      79.20   79.65   80.10   79.97   80.43   80.50 
    --------------------------------------------------------------- 
    y$水準: 水準A4
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      78.70   78.85   79.15   79.25   79.55   80.00 
    
    > boxplot (y$分析値 ~ y$水準)
    > plotMeans ( y$分析値, y$水準, error.bars="se") # plotMeans関数を使用するにはパッケージ 「Rcmdr」を読み込
    


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

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

    表2 4人の分析者の4回の測定値「スタック形式」の緑の部分をマウスで選択し,これをコピーする.

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

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

    と記述し,コピーした[clipboard]データファイルを,Rの内部のデータフレーム,ファイル名 y に直接読み込む.

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


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

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


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

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

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

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


    注意: 水準A1〜A4を含む因子のデータ形式が [Factor] 形式でないときは,多重比較ができなくなる.この場合,

    y$サンプル <- factor( y$サンプル )

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



  4. 1因子Aの基礎統計


    a. 因子Aの基礎統計量

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

    by ( y$分析値, y$水準, summary)   と記述し,「スタック形式」のデータで,群別の基礎統計量を計算する.


    b. 因子Aの平均値の推移図    # plotMeans関数を使用するにはパッケージ 「Rcmdr」を読み込んでおくこと

    boxplot (y$分析値 ~ y$水準)   と記述し,標本の箱ひげグラフを表示する.

    plotMeans ( y$分析値, y$水準, error.bars="se")  と記述し,標本の平均値の推移図を表示する.
     
    c. グラフの観察

    水準A4(四番目の測定装置)の測定値がほかに比べ低いことが観察される.ただし,これを母集団で検定しないと判断できない.



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


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

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

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


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

    bartlett.test ( y$分析値 ~ y$水準 )

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

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

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


    >  bartlett.test ( y$分析値 ~ y$水準 )
    
            Bartlett test of homogeneity of variances
    
    data:  y$分析値 by y$水準 
    Bartlett's K-squared = 1.0163, df = 3, p-value = 0.7973
    

    分析結果

    p値が0.8であり,p値>0.05であるので各水準の分散は等しいと結論し,分散分析に進む.



  6. 参考のために,

    まず「対応なし・標本数は同じ」の一元配置・分散分析



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

    summary ( aov ( y$分析値 ~ y$水準 ) ) # と記述し,「スタック形式」のデータで,分散分析を行う.

    > summary ( aov ( y$分析値 ~ y$水準 ) )
    
                Df   Sum Sq   Mean Sq   F value    Pr(>F)  
    y$水準       3   3.8769    1.2923   4.4594     0.02525 *  F値 = 1.2923 / 0.2898 = 4.459282
    
    Residuals   12   3.4775    0.2898                  
    ---
    Signif. codes:  0 ‘***’ 0.001       ‘**’ 0.01       ‘*’ 0.05        ‘.’ 0.1 ‘ ’ 1 
    有意性の記号 :    ***  (0.1%で有意)  **  (1%で有意)   *  (5%で有意)
    

    分析結果

    F値 4.4594=(因子Aの平均平方和)/(誤差Eの平均平方和)=1.2923/0.2898であり,サンプルの因子Aに対応する誤差が考慮されない.



  7. 「対応あり・標本数は同じ」の一元配置・分散分析


    「四台の測定装置が分析した値の母集団の平均値に差があるといえるか」,有意水準5%で検討する.

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

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



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

    summary ( aov ( y$分析値 ~ y$水準 + y$サンプル ) ) # あるいは summary ( aov ( 分析値 ~ 水準 + サンプル, data=y ) )

    と記述し,「スタック形式」のデータで,分散分析を行う.この記述は対応なしの二元配置の分散分析・標本が1と同じである.

    > summary ( aov ( y$分析値 ~ y$水準 + y$サンプル ) )
                Df   Sum Sq   Mean Sq   F value    Pr(>F)  
    y$水準       3   3.8769    1.2923    4.0944   0.04345 *  F値 = 1.2923 / 0.3156 = 4.09474
    y$サンプル   3   0.6369    0.2123    0.6726   0.59010    F値 = 0.2123 / 0.3156 = 0.672687
    Residuals    9   2.8406    0.3156                  
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
    有意性の記号 :    ***  (0.1%で有意)  **  (1%で有意)   *  (5%で有意)
    


    次に,aov関数に直接,因子Aに対応するサンプルの誤差を指定して計算を行わせる.

    summary ( aov ( y$分析値 ~ y$水準 + Error( y$サンプル/y$水準 ) ) ) # あるいは summary ( aov ( 分析値 ~ 水準 + Error( サンプル/水準 ), data=y ) )

    summary ( aov ( y$分析値 ~ y$水準 + Error( y$サンプル ) ) ) # あるいは summary ( aov ( 分析値 ~ 水準 + Error( サンプル ), data=y ) )

    これらの結果は皆,先述した内容と同じになる.

    > summary ( aov ( 分析値 ~ 水準 + Error( サンプル/水準 ), data=y ) )
    Error: サンプル
              Df  Sum Sq Mean Sq F value Pr(>F)
    Residuals  3 0.63688 0.21229               
    
    Error: サンプル:水準
              Df Sum Sq Mean Sq F value  Pr(>F)  
    水準       3 3.8769  1.2923  4.0944 0.04345 *  F値 = 1.2923 / 0.3156 = 4.09474
    Residuals  9 2.8406  0.3156                  
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
    
    
    分散分析表が表示される.これを整形すると,以下のようになる.
    -----------------------------------------------------------          (変動) (不偏分散) (分散比) 変動要因 自由度 平方和 平均平方和 F値 P値 ----------------------------------------------------------- 因子A 3 3.8769 1.2923 4.094 0.043 * サンプル 3 0.6369 0.2123 0.673 0.590 誤差E 9 2.8406 0.3156 ----------------------------------------------------------- * p<.05
    分析結果

    因子AのA1〜A4の水準間の変動について,P値<0.05であることから,帰無仮説は棄却され,対立仮説が採択される.

    4水準の平均値は5%で有意差が認められる.四台の測定装置(A1〜A4)の分析能力には差があるといえる.

    サンプルのP値>0.05であり帰無仮説が採択され,4人の測定値には個人差があるとはいえない.一元配置ではサンプルのF値は求めない.



  8. 「対応あり・標本数は同じ」の多重比較


    分散分析では,どの水準とどの水準に差があるかは,明らかにしてくれない.このため多重比較の事後検定(下位検定)を行う.

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

    ・このため「Bonferroni法」とこの改善型の「Holm法」を「対応ありpaired=TRUE」のパラメータを設定して使用する.




    1. 「対応ありpaired=TRUE・標本数は同じ」の場合の ボンフェローニ(Bonferroni)法

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

      pairwise.t.test(y$分析値 , y$水準, p.adjust.method="bonferroni", paired=TRUE )

      と記述し,Bonferroni法で多重比較を行う.

      >  pairwise.t.test(y$分析値 , y$水準, p.adjust.method="bonferroni", paired=TRUE )
      
              Pairwise comparisons using paired t tests 
      
      data:  y$分析値 and y$水準 
      
             水準A1 水準A2 水準A3
      水準A2 1.00   -      -     
      水準A3 1.00   0.30   -     
      水準A4 0.54   0.07   0.82  
      
      P value adjustment method: bonferroni
      


      分析結果

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

      水準A1〜A4間で有意水準5%以下を探すと,どの水準間にも有意差はなかった.こういうこともあります.


    2. 「対応ありpaired=TRUE・標本数は同じ」の場合の Holm法

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

      pairwise.t.test(y$分析値 , y$水準, p.adjust.method="holm", paired=TRUE )

      と記述し,Holm法で多重比較を行う.

      >  pairwise.t.test(y$分析値 , y$水準, p.adjust.method="holm", paired=TRUE )
      
              Pairwise comparisons using paired t tests 
      
      data:  y$分析値 and y$水準 
      
             水準A1 水準A2 水準A3
      水準A2 1.00   -      -     
      水準A3 1.00   0.25   -     
      水準A4 0.36   0.07   0.41  
      
      P value adjustment method: holm
      


      分析結果

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

      水準A1〜A4間で有意水準5%以下を探すと,どの水準間にも有意差はなかった.こういうこともあります.

一元配置分散分析と多重比較 (対応あり・標本数は同じ)     [ 目次に戻る ]