分析の手順

Rで分散分析を行う際には,以下の3つのステップを経る。

  1. 対象となるデータを変数(オブジェクト)に格納する
  2. 統計分析関数に,そのデータを渡す
  3. 結果を解釈する
前述のt検定において,2の実行と同時に結果が画面に表示された。 Rにおける分散分析では,結果を解釈するステップが加わる。 詳しいことは後述する。

サンプルデータ

このページでは,調理中のドーナツが吸収する脂肪分の量を分析する。 4種類の脂肪質を使い,それぞれ6個のドーナツを調理して,その脂肪吸収量を測定した。 脂肪質を効果(4水準)として,一元配置の分散分析を実施してみよう。

データの準備

一元配置の分散分析も,前述の検定と同様の手順で行う。 つまり,ファイルのデータを読み取って変数に格納し,分析関数を呼び出せばよい。 ところが,データファイルの作成にあたり,注意しなければならないことがある。

詳しくは,サンプルのデータファイルを参照してほしい。 グループを識別する記号は何でもよい。 この例では「A,B,C,D」を用いたが,「1,2,3,4」あるいは「FAT1,FAT2,FAT3,FAT4」でも問題ない。

データの読み込み

サンプルファイルは,ヘッダ付きのカンマ区切り(CSV)形式で保存されている。 このデータを,変数 x に読み込む。

> x<-read.table("anova1way.txt",header=T,sep=",")

各列にアクセスするには,x$groupx$obs とするが,変数名が長くて入力に不便なので,別の変数に代入しておく。 分かりやすく,入力しやすい変数名にしておくとよい。 下の例では,短い1文字の変数に置き換えた。

> F<-x$group     # F: 調理に使った脂肪質の種類
> y<-x$obs       # y: 測定値

分散分析の実行

Rで分散分析を行うには,aov()という関数を使用する。 観測値に,どのような要因が関与しているかを与える必要がある。

> aov(y ~ F)
Call:
   aov(formula = y ~ F)

Terms:
                     F Residuals
Sum of Squares  1636.5    2018.0
Deg. of Freedom      3        20

Residual standard error: 10.0449 
Estimated effects may be unbalanced

分散分析は,無事に完了し,いくつかの数値が表示されている。 しかし,残念ながら,これだけでは分散分析表は表示されない。 詳細な分析結果を得るには,anova() を用いる。 以下のように入力する。

> s <- aov(y ~ F)    # 画面に表示される結果を,変数 s に保存
> anova(s)           # それについて,詳しい結果を表示する

この2段階の入力が面倒ならば,以下のように全体をsummary()で囲んでもよい。

> anova(aov(y ~ F))   # 上と同じ内容が表示される

なお,同じような働きをするコマンドとして,summary()がある。

> summary(aov(y ~ F))

結果の解釈

分析が成功すると,以下のように表示される。

> anova(aov(y ~ F))
Analysis of Variance Table

Response: y
          Df Sum Sq Mean Sq F value   Pr(>F)   
F          3 1636.5   545.5  5.4063 0.006876 **
Residuals 20 2018.0   100.9                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

これは,分散分析表である。 必要な部分を日本語で書き直して整形すると,以下のようになる。

-------------------------------------------------------
要因    自由度  平方和  平均平方和    F-値     P-値    
-------------------------------------------------------
F            3  1636.5       545.5  5.4063  0.006876 **
誤差        20  2018.0       100.9                     
-------------------------------------------------------

要因Fについて,P値が0.05を下回っていることから,4水準の平均値は有意差が認められる。

TOP
メニュー