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

4人の分析者の測定技能: 一元配置の分散分析と多重比較

(対応なし・標本数は同じ)


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

    四人の分析者が,同じ測定装置を使い,標準化された同じ資料を4回ずつ繰り返し分析した結果が表1である.

    16回の実験データから四人の分析技術に違いがあるか検討したい.16回の実験はランダムな順序で行われた.

    「四人の担当者(水準A1〜A4)の分析値の母集団の平均値に差があるといえるか」,有意水準5%で検討する.



    表1  4人の分析者の4回の測定値 「アンスタック形式」

    工業関係の分散分析法の解説は,「分散分析法入門,石川馨,米山高範,日科技連出版社,1967.」が詳しい.表1のデータはp22.


    サンプル
    01
    02
    03
    04
    平均値
    水準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  4人の分析者の4回の測定値 「スタック形式」

    分析値 水準
    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


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




    (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 の2変数の内容を表示確認する.

    Rが理解した,2変数名のリストと変数ごとのカテゴリの数とカテゴリ名が示される.

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


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

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



  4. 1因子Aの基礎統計


    a. 因子Aの基礎統計量

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

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

    > 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 
    


    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. 「対応なし・標本数が同じ」場合の一元配置・分散分析


    「四人の担当者(A1〜A4)が分析した値の母集団の平均値に差があるといえるか」,有意水準5%で検討する.

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

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



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

    summary ( aov ( 分析値 ~ 水準, data=y ) )

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

    > summary ( aov ( 分析値 ~ 水準, data=y ) )
    
                Df   Sum Sq   Mean Sq   F value    Pr(>F)  
    水準         3   3.8769    1.2923   4.4594     0.02525 *
    Residuals   12   3.4775    0.2898                  
    ---
    Signif. codes:  0 ‘***’ 0.001       ‘**’ 0.01       ‘*’ 0.05        ‘.’ 0.1 ‘ ’ 1 
    有意性の記号 :    ***  (0.1%で有意)  **  (1%で有意)   *  (5%で有意)
    
    
    分散分析表が表示される.これを整形すると,以下のようになる.
    -----------------------------------------------------------          (変動) (不偏分散) (分散比) 変動要因 自由度 平方和 平均平方和 F値 P値 ----------------------------------------------------------- 因子A 3 3.8769 1.2923 4.4594 0.02525 * 誤差E 12 3.4775 0.2898 ----------------------------------------------------------- * p<.05
    分析結果

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

    4水準の平均値は5%で有意差が認められる.四人の担当者(A1〜A4)の分析結果には差があるといえる.



  7. 「対応なし・標本数が同じ」場合の多重比較


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

    a. テューキー(Tukey HSD)の方法: Rの関数としてTukeyHSD ( aov ( y$分析値 ~ y$水準 ) "水準", ordered = TRUE)

    b. ボンフェローニ(Bonferroni)法: Rの関数としてpairwise.t.test (y$分析値 , y$水準, p.adjust.method="bonferroni")

    c. ホルム(Holm)法: Rの関数としてpairwise.t.test (y$分析値 , y$水準, p.adjust.method="holm")

    テューキー(Tukey HSD)の方法は標本数が同じ場合に用いることになっている.

    e. 標本数が異なる場合はテューキー・クレーマーの方法: Tukey-Kramer's method を用いる.


    1. 「対応なし・標本数が同じ」場合の テューキー(Tukey HSD)の方法

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

      TukeyHSD ( aov ( 分析値 ~ 水準, data=y ), "水準", ordered = TRUE)

      require(graphics) # グラフパッケージの読み込み

      plot (TukeyHSD ( aov ( 分析値 ~ 水準, data=y ), "水準" )) # 多重比較のグラフを作成する

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

      > TukeyHSD ( aov ( 分析値 ~ 水準, data=y ), "水準", ordered = TRUE)
        Tukey multiple comparisons of means
          95% family-wise confidence level
          factor levels have been ordered
      
      Fit: aov(formula = 分析値 ~ 水準, data = y)
      
      $水準
                     diff         lwr      upr     p adj
      水準A3-水準A4 0.725 -0.40511771 1.855118 0.2766339
      水準A1-水準A4 1.150  0.01988229 2.280118 0.0456822
      水準A2-水準A4 1.250  0.11988229 2.380118 0.0289085
      水準A1-水準A3 0.425 -0.70511771 1.555118 0.6867656
      水準A2-水準A3 0.525 -0.60511771 1.655118 0.5344380
      水準A2-水準A1 0.100 -1.03011771 1.230118 0.9933091
      

      分析結果

      TukeyHSD(テューキー)の多重比較で,[lwr]が信頼区間の下限値、[upr] が信頼区間の上限値で,

      信頼区間の中に0があれば、帰無仮説は棄却されない.

      これをグラフ化したもので,0を含まないものは,[水準A1-水準A4]と[水準A2-水準A4]である.

      この場合は明らかに両者間に母平均の差が認められることになる.



      [p adj]の欄で有意水準5%以下を捜すと,[水準A4-水準A1 p=0.0456822] [水準A4-水準A2 p=0.0289085]

      [水準A4-水準A1]と[水準A4-水準A2]の間に5%水準で有意な差があることがわかる.

      分析者A4と分析者A1および分析者A4と分析者A2の間には有意水準5%で差がある.

      今後,分析値の値がかけ離れた分析者A4の分析能力に注意を払う必要がある.



    2. 「対応なし」「標本数が同じ」場合の ボンフェローニ(Bonferroni)法

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

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

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

      >  pairwise.t.test(y$分析値 , y$水準, p.adjust.method="bonferroni")
      
              Pairwise comparisons using t tests with pooled SD 
      
      data:  y$分析値 and y$水準 
      
             水準A1 水準A2 水準A3
      水準A2 1.000  -      -     
      水準A3 1.000  1.000  -     
      水準A4 0.064  0.039  0.486 
      
      P value adjustment method: bonferroni
      

      分析結果

      多重比較の帰無仮説は二群間の平均値には差が無いである.有意水準5%以下を捜すと,.

      [水準A4-水準A2 p=.039]の間に5%水準で有意な差があることがわかる.

      今後,分析者A4の分析能力に注意を払う必要がある.



    3. 「対応なし・標本数が同じ」場合の Holm法

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

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

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

      >  pairwise.t.test(y$分析値 , y$水準, p.adjust.method="holm")
      
              Pairwise comparisons using t tests with pooled SD 
      
      data:  y$分析値 and y$水準 
      
             水準A1 水準A2 水準A3
      水準A2 0.797  -      -     
      水準A3 0.579  0.579  -     
      水準A4 0.053  0.039  0.324 
      
      P value adjustment method: holm
      

      分析結果

      多重比較の帰無仮説は二群間の平均値には差が無いである.有意水準5%以下を捜すと,.

      [水準A4-水準A2 p=.039]の間に5%水準で有意な差があることがわかる.

      今後,分析者A4の分析能力に注意を払う必要がある.


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