【R入門】R言語の基本：二元配置分散分析

【R入門】R言語の基本：二元配置分散分析
統計とR言語の勉強をしています。
[「Rによるやさしい統計学」](http://amzn.to/2mDoNMH)の写経で勉強。

#実行環境
- Windows10 Pro 64bit
- R：3.4.3
- RStudio：1.1.383

RStudioのConsoleを使って実行しています

#二元配置分散分析(対応なし)
3つ以上の平均値を比較するための統計的手法で分散分析があります。二元配置分散分析(対応なし)を例題から実施していきます。

|項目|内容|
|:--|:--|
|前提|3種類の銘柄のミネラルウォーターのおいしさについて、2種類の温度(冷蔵庫、常温)のもとで評定|
|温度の主効果|帰無仮説：温度が違ってもおいしさの得点の母平均は等しい(温度の主効果なし)<br>対立仮説：温度の違いによっておいしさの得点の母平均は異なる(温度の主効果あり)|
|銘柄の主効果|帰無仮説：銘柄が違ってもおいしさの得点の母平均は等しい(銘柄の主効果なし)<br>対立仮説：銘柄の違いによっておいしさの得点の母平均は異なる(銘柄の主効果あり)|
|温度と銘柄の交互作用|帰無仮説：温度と銘柄の相性の良し悪しはない(温度と銘柄の交互作用効果なし)<br>対立仮説：温度と銘柄の相性の良し悪しがある(温度と銘柄の交互作用効果あり)|
|有意水準|5%|

検定するのはこんなデータです。
![40.R_VarAnalitics00.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/d4f7af57-4c01-1c60-5abe-54d424c79ac1.jpeg)


Rでaov関数を使って検定をします。

```R
> aji <- c(6,4,5,3,2,10,8,10,8,9,11,12,12,10,10,5,4,2,2,2,7,6,5,4,3,12,8,5,6,4)
> ondo <- factor(c(rep("冷蔵庫",15),rep("常温",15)))
> ondo
 [1] 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫 冷蔵庫
[16] 常温   常温   常温   常温   常温   常温   常温   常温   常温   常温   常温   常温   常温   常温   常温  
Levels: 常温 冷蔵庫
> meigara <- factor(rep(c(rep("イカアン",5),rep("ボスビッグ",5),rep("ビビッテル",5)),2))
> meigara
 [1] イカアン   イカアン   イカアン   イカアン   イカアン   ボスビッグ ボスビッグ ボスビッグ ボスビッグ ボスビッグ
[11] ビビッテル ビビッテル ビビッテル ビビッテル ビビッテル イカアン   イカアン   イカアン   イカアン   イカアン  
[21] ボスビッグ ボスビッグ ボスビッグ ボスビッグ ボスビッグ ビビッテル ビビッテル ビビッテル ビビッテル ビビッテル
Levels: イカアン ビビッテル ボスビッグ
> summary(aov(aji~ondo*meigara))
             Df Sum Sq Mean Sq F value   Pr(>F)    
ondo          1   67.5   67.50  21.316  0.00011 ***
meigara       2  155.0   77.50  24.474 1.61e-06 ***
ondo:meigara  2   15.0    7.50   2.368  0.11515    
Residuals    24   76.0    3.17                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
```

以下の結果になりました。

|項目|結論|p値|
|:--|:--|:--|
|温度の主効果|帰無仮説の棄却(温度の主効果あり)|0.00011|
|銘柄の主効果|帰無仮説の棄却(銘柄の主効果あり)|1.61e-06(0.0000016)|
|温度と銘柄の交互作業効果|帰無仮説の支持(温度と銘柄の相互作用効果あり)|0.11515|

平均値のプロットで表すとこんな感じです。

```R
> interaction.plot(ondo,meigara,aji)
```

![40.R_VarAnalitics01.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/a8d7651a-6112-ec68-38f9-d1fc95274685.jpeg)


```R
> interaction.plot(meigara,ondo,aji)
```

![40.R_VarAnalitics02.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/53fbbff0-cf33-b468-b2ba-191f3befaa41.jpeg)

#二元配置分散分析(対応あり)
二元配置分散分析(対応あり)を例題から実施していきます。

|項目|内容|
|:--|:--|
|前提|**5人の評定者が**3種類の銘柄のミネラルウォーターのおいしさについて、2種類の温度(冷蔵庫、常温)のもとで評定|
|温度の主効果|帰無仮説：温度が違ってもおいしさの得点の母平均は等しい(温度の主効果なし)<br>対立仮説：温度の違いによっておいしさの得点の母平均は異なる(温度の主効果あり)|
|銘柄の主効果|帰無仮説：銘柄が違ってもおいしさの得点の母平均は等しい(銘柄の主効果なし)<br>対立仮説：銘柄の違いによっておいしさの得点の母平均は異なる(銘柄の主効果あり)|
|温度と銘柄の交互作用|帰無仮説：温度と銘柄の相性の良し悪しはない(温度と銘柄の交互作用効果なし)<br>対立仮説：温度と銘柄の相性の良し悪しがある(温度と銘柄の交互作用効果あり)|
|有意水準|5%|

今度のデータは評定者を二元配置分散分析(対応なし)から加えています。
![50.R_VarAnalitics01.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/b6cba0d1-99b7-f56d-2eed-e03e1f3cd38a.jpeg)

同じくaov関数で、オプションを変えて実行します。

```R
> hito1 <- factor(rep(c("村松","川崎","井口","松中","城島"),6))
> hito1
 [1] 村松 川崎 井口 松中 城島 村松 川崎 井口 松中 城島 村松 川崎 井口 松中 城島 村松 川崎 井口 松中 城島 村松 川崎
[23] 井口 松中 城島 村松 川崎 井口 松中 城島
Levels: 井口 松中 城島 川崎 村松
> summary(aov(aji~ondo*meigara+Error(hito1+hito1:ondo+hito1:meigara+hito1:ondo:meigara)))

Error: hito1
          Df Sum Sq Mean Sq F value Pr(>F)
Residuals  4     45   11.25               

Error: hito1:ondo
          Df Sum Sq Mean Sq F value Pr(>F)  
ondo       1   67.5   67.50      18 0.0132 *
Residuals  4   15.0    3.75                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: hito1:meigara
          Df Sum Sq Mean Sq F value   Pr(>F)    
meigara    2    155    77.5     155 4.01e-07 ***
Residuals  8      4     0.5                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: hito1:ondo:meigara
             Df Sum Sq Mean Sq F value Pr(>F)  
ondo:meigara  2     15     7.5       5  0.039 *
Residuals     8     12     1.5                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
```

今度は以下の結果になりました。

|項目|結論|p値|
|:--|:--|:--|
|温度の主効果|帰無仮説の棄却(温度の主効果なし)|0.0132|
|銘柄の主効果|帰無仮説の棄却(銘柄の主効果なし)|4.01e-07(0.0000004)|
|温度と銘柄の交互作業効果|帰無仮説の棄却(温度と銘柄の相互作用効果なし)|0.039|

#二元配置分散分析(一要因のみ対応あり)
先程と同じ命題ですが、図のように評定者が別れている場合もやっておきます。
![50.R_VarAnalitics02.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/49177a8f-aa6e-7539-f936-b1cd750bbd04.jpeg)

同じくaov関数で、Errorオプションで評定者が対応している温度のみを指定します。

```R
> a1_jouken <-rep(c("村松","川崎","井口","松中","城島"),3)
> a2_jouken <-rep(c("斎藤","和田","寺原","杉内","新垣"),3)
> hito2 <- factor(c(a1_jouken,a2_jouken))
> hito2
 [1] 村松 川崎 井口 松中 城島 村松 川崎 井口 松中 城島 村松 川崎 井口 松中 城島 斎藤 和田 寺原 杉内 新垣 斎藤 和田
[23] 寺原 杉内 新垣 斎藤 和田 寺原 杉内 新垣
Levels: 井口 斎藤 寺原 松中 城島 新垣 杉内 川崎 村松 和田
> summary(aov(aji~ondo*meigara+Error(hito2:ondo+hito2:ondo:meigara)))

Error: hito2:ondo
          Df Sum Sq Mean Sq F value Pr(>F)  
ondo       1   67.5    67.5       9 0.0171 *
Residuals  8   60.0     7.5                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: hito2:ondo:meigara
             Df Sum Sq Mean Sq F value   Pr(>F)    
meigara       2    155    77.5    77.5 5.87e-09 ***
ondo:meigara  2     15     7.5     7.5  0.00504 ** 
Residuals    16     16     1.0                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Warning message:
In aov(aji ~ ondo * meigara + Error(hito2:ondo + hito2:ondo:meigara)) :
  Error() model is singular
```

今度は以下の結果になりました。

|項目|結論|p値|
|:--|:--|:--|
|温度の主効果|帰無仮説の棄却(温度の主効果なし)|0.0171|
|銘柄の主効果|帰無仮説の棄却(銘柄の主効果なし)|5.87e-09(0.0000000059)|
|温度と銘柄の交互作業効果|帰無仮説の棄却(温度と銘柄の相互作用効果なし)|0.00504|