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

datasets"iris"による,あやめ「setosa」の4部位の形状分析: 一元配置の分散分析と多重比較

(対応あり・標本数が同じ・等分散でない)


  1. 「対応あり・標本数が同じ・等分散でない」場合の練習課題  問題がよくなかったと反省 多変量分散分析参照

    あやめの品種「setosa」,50標本について4部位の形状(因子A 4水準),がく片(Sepal)の長さと幅,および花びら(Petal)の長さと幅を測定した.

    これらがく片の長さと幅,および花びらの長さと幅に違いがあるか調べたい.

    50の標本の測定値を元に,4部位の形状の母集団の平均値に差があるか,有意水準5%で検討する.


    表1  あやめ"setosa"の花の4部位の形状分析 「アンスタック形式」

      Sepal.Length: がく片の長さ
    Sepal.Width : がく片の幅
    Petal.Length: 花びらの長さ
    Petal.Width : 花びらの幅
    測定値
    サンプル
    水準A1
    Sepal.Length
    水準A2
    vSepal.Width
    水準A3
    Petal.Length
    水準A3
    Petal.Width
    sample01        
    sample02        
    ・・        
    sample50        
    平均値 5.006 3.428 1.462 0.246



  2. 使用する「setosa種のiris」のデータ作成


    「コンソール」 画面に,

    iris #    と記述すると,Rに組み込みこまれているFisherの研究で使われた「iris」データ 150サンプルが表示される.

    (1) エクセルで「irisデータのsetosa種」を抜き出してデータセットを新たに作成する.

    (2) アンスタック形式とスタック形式の「setosa種のiris」のデータリスト

     ・「setosa種のiris」データ 標本数50「setosa種」のデータ

    (3) 「setosa種のiris」のデータリストのダウンロード

     (a) iris_setosa.EXE をダウンロードしデスクトップに保存する.

     (b) デスクトップにあるiris_setosa.EXE をダブルクリックし,解凍をはじめる.

     (c) 解凍先の指定が表示されたら,空欄のまま「OK」をクリックするとデスクトップに,「iris_setosa.xls」データファイルができる.



     (d) デスクトップにあるiris_setosa.xls を開きエクセルでアンスタック形式とスタック形式のデータを表示する.



  3. スタック形式の「setosa種のiris」のデータ構造の確認


    (1) スタック形式の「setosa種のiris」のデータ読み込み

    エクセルの表計算シート「iris_setosa.xls」の,オレンジの部分の「スタック形式」のデータをマウスで選択し,

    これをコピーしクリップボード経由で読み込む操作を行う.

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

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

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

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


    (2) スタック形式の「setosa種のiris」のデータ構造

    .「コンソール」 画面に,

    str ( y ) #    と記述すると,「setosa種のirisのデータ構造」が表示され,3変数の名前と,型が表示される.

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

    ・サンプル  : Factor カテゴリ型
    ・観測値   : num 数値型
    ・Species  : Factor カテゴリ型

    注意: 因子にすべきデータ形式が [Factor] 形式でないときは,多重比較ができなくなる.この場合,

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

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

      あやめの大きな3枚のはなびらは,「Sepal がく片」で,小さな3枚のはなびらが,「Petal 花びら」である.

    Sepal「がく片」の長さと幅・Petal「花びら」の長さと幅

    Species「あやめ3品種 [setosa・versicolor・virginica]」

    > str ( y ) 
    'data.frame':   200 obs. of  3 variables:
     $ サンプル: Factor w/ 50 levels "sample1","sample10",..: 1 12 23 34 45 47 48 49 50 2 ...
     $ 観測値  : num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
     $ 水準    : Factor w/ 4 levels "Petal.Length",..: 3 3 3 3 3 3 3 3 3 3 ...
    



  4. 1因子Aの基礎統計


    a. 因子Aの基礎統計量  「setosa種のiris」の基礎統計量

    「コンソール」 画面に,

    by ( y$観測値, y$水準, summary) #    と記述すると,setosa種のがく片の長さ(Sepal.Length)と幅(Sepal.Width),

    花びらの長さ(Petal.Length)と幅(Petal.Width)についての基礎統計量が表示される.

    Min. 最小値, 1st Qu. 第1四分位, Median 中央値, Mean 平均値, 3rd Qu. 第3四分位, Max. 最大値.

    > by ( y$観測値, y$水準, summary)
    y$水準: Petal.Length
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      1.000   1.400   1.500   1.462   1.575   1.900 
    ------------------------------------------------------------------------ 
    y$水準: Petal.Width
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      0.100   0.200   0.200   0.246   0.300   0.600 
    ------------------------------------------------------------------------ 
    y$水準: Sepal.Length
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      4.300   4.800   5.000   5.006   5.200   5.800 
    ------------------------------------------------------------------------ 
    y$水準: Sepal.Width
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      2.300   3.200   3.400   3.428   3.675   4.400
    


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

    「setosa種のiris」の「がく片」の長さと幅と「花びら」の長さと幅の「箱ひげグラフ」と「平均値の推移図」の作成

    boxplot (y$観測値 ~ y$水準 ) #   と記述し,箱ひげグラフを表示する.

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

    boxplot (y$観測値 ~ y$サンプル ) #   と記述し,練習でサンプルの箱ひげグラフを表示する.

    水準A3(Petal.Length),水準A4(Petal.Width),水準A1(Sepal.Length),水準A2(Sepal.Width)ごとに平均値・中央値の大きさが異なる.

    c. グラフの観察



  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 = 86.8198, df = 3, p-value < 2.2e-16
    

    分析結果

    p値が2.2e-16以下で,p値<0.05であるので各水準の分散は等しくないと結論する.

    分散の等質性(等分散性)が成り立たない場合,設定した水準の見直,水準を増やしたり統合したりすることも必要.



  6. ただの練習で,

    等分散性を仮定しない,一元配置・分散分析する oneway.test ()



    等分散性を仮定しない平均値の差の検定としてoneway.test関数がある.これはWelchの方法を拡張した検定法である.

    1標本につき「がく片」の長さと幅と「花びら」の長さと幅の4箇所を測定したものであるから,「対応あり」であるが,

    oneway.test関数がつかえないので「対応なし」で一因子4水準の分散分析を行う.
    [出典?]

    「がく片」の長さと幅と「花びら」の長さと幅の母集団の平均値に差があるか」,有意水準5%で検討する.

    帰無仮説は「4水準(がく片」の長さと幅と「花びら」の長さと幅)の母集団の平均値は等しい」.

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


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

    oneway.test( y$観測値 ~ y$水準 ) # と記述する.

    > oneway.test( y$観測値 ~ y$水準 ) 
    
            One-way analysis of means (not assuming equal variances)
    
    data:  y$観測値 and y$水準 
    F = 3755.302, num df = 3.000, denom df = 98.475, p-value < 2.2e-16
    

    結果は,p値=2.2e-16 < 0.05 であり,対立仮説が採択され,4水準の平均値は0.1%で有意差が認められる.

    あやめの「がく片」の長さと幅と「花びら」の長さと幅の平均値には差があるといえる.



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


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

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

    このため「Bonferroni法」とこの改善型の「Holm法」を使用する.



    1. 「「対応あり」の場合の ボンフェローニ(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$水準 
      
                   Petal.Length Petal.Width Sepal.Length
      Petal.Width  <2e-16       -           -           
      Sepal.Length <2e-16       <2e-16      -           
      Sepal.Width  <2e-16       <2e-16      <2e-16      
      
      P value adjustment method: bonferroni
      

      分析結果

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

      水準A1〜A4間で有意水準5%以下を探すと,全ての水準間でp=.000である.

      全ての水準の組み合わせで,有意水準0.01%で帰無仮説は棄却される.

      setosa種の「がく片」の長さと幅と「花びら」の長さと幅の各々の平均値は0.01%で有意差が認められる..

      Sepal.Length > Sepal.Width > Petal.Length > Petal.Width が長さの順序である.

      で,あやめは「がく片」が「花びら」よりも大きいことがわかった.


    2. 「「対応あり」の場合の  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$水準 
      
                   Petal.Length Petal.Width Sepal.Length
      Petal.Width  <2e-16       -           -           
      Sepal.Length <2e-16       <2e-16      -           
      Sepal.Width  <2e-16       <2e-16      <2e-16      
      
      P value adjustment method: holm 
      

      分析結果

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

      水準A1〜A4間で有意水準5%以下を探すと,全ての水準間でp=.000である.

      全ての水準の組み合わせで,有意水準0.01%で帰無仮説は棄却される.

      setosa種の「がく片」の長さと幅と「花びら」の長さと幅の各々の平均値は0.01%で有意差が認められる.

      Sepal.Length > Sepal.Width > Petal.Length > Petal.Width が長さの順序である.

      で,あやめは「がく片」が「花びら」よりも大きいことがわかった.

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