分散分析とビジネス的側面

# 概要

仕事上で検定を行い有意差があるかを確認するタスクを振られたが、検定に関してあまり詳しく知らなかったため、各検定の特徴とそれぞれの数学的背景に関してまとめている。

各検定一覧は[別のブログ](!#)（編集中）を参照してほしい。

# :pushpin:目次

[1.分散分析とは](#1分散分析とは)
[2.分散分析の導出](#2分散分析の導出)
[3.分散分析の数学的背景](#3分散分析の数学的背景)


# 1.分散分析とは

２標本の平均値に差があるかを検定する手法としてt検定があることを[以前](https://qiita.com/sepakTama/items/ec90155764b2d0e505ac)紹介した。3標本以上の平均に差があるかを検定する際に用いられるのが**分散分析**である。この分散分析は群ごとのデータのばらつきを元にF分布を用いて検定を行う。また、3群での比較のため、帰無仮説は「各群の母平均は等しい」となる。

### 1.1分散分析で用いる用語

本記事の後半部分で分散分析の詳細について述べていく際に幾つか用いる用語があるため、ここで説明を行う。

- **要因**
    - データの値に変化を与える要素のこと（例：数学の試験の場合、「組」以外に「その日の体調」等が挙げられる）
- **因子**
    - 要因のなかでも特に母平均の差に影響を与えると考えるもののこと
- **水準**
    - 一つの要因に含まれる項目のこと（例：「組」の水準は「1組、2組、3組」の3つで水準数は3となる）
- **X元配置**
    - データに含まれる因子の数を表すもの（例：1組、2組、3組の算数のテストの結果の平均を比較する場合、因子は「組」であり、「三元配置のデータ」となる）

### 1.2分散分析の大まかな分類

1.1で分散分析で用いられる各種用語について解説したが、ここでは**X元配置**に関してもう少し深堀していく。主に用いられる分散分析は以下の3パターンで分けられる。

- **一元配置分散分析**
    - 1つの因子からなるデータを分析する方法で、因子に含まれる水準間の平均値の差を見ることができる。
    - 例として、1組、2組、3組の算数のテストの点数の平均を比べる場合は一元配置分散分析に分類される。
- **二元配置分散分析**
    - 2つの因子からなるデータを分析する方法で、各因子における水準間の平均値の差を見ることができる。また、2つの要因が組み合わさることで現れる相乗効果の有無の確認もできる。
    - 例として、薬A、B、Cをそれぞれ10mg、20mg投与した場合の効果の差を分析する場合は二元配置分散分析に分類される。
- **多元配置分散分析**
    - 3つ以上の因子からなるデータを分析する方法である。

では、次の章で分散分析の実施方法について具体例を用いて解説していく。

[-目次へ-](#pushpin目次)

# 2.分散分析の手順

ここでは簡単のために一元配置分散分析に関して説明をする。

1. 構造モデルを構築する（構造モデルに関しては後述する）
1. 誤差の分布についての仮定がデータに当てはまっているか検討を行う
1. 平方和を分解し、各項の平均平方を求め、F値を求める

以下のようなデータに対して、

|要因$A$|水準$A_1$|$\cdots$|水準$A_k$| |
| --- | --- | --- | --- | --- |
||$x_{11}$|$\cdots$|$x_{1k}$| |
|| $\vdots$ | $\ddots$ | $\vdots$ | |
||$x_{n_11}$|$\cdots$|$x_{n_kk}$| |
|平均  |$\overline{T}_1$  |$\cdots$ |$\overline{T}_k$  | 全平均$\overline{G}$ 
|サイズ|$n_1$  |$\cdots$  |$n_k$  | |

以下のような分散分析表にまとめることが多い。

|変動因|平方和（$SS$）|自由度（$df$）|平均平方（$MS$）| $F$値 |
| --- | --- | --- | --- | --- |
|要因$A$|$\sum_{j=1}^{k}{n_j (\overline{T}_j - \overline{G})^2}$|$k-1$|$\frac{SS_A}{k-1}$| $\frac{MS_A}{MS_{Error}}$ |
|誤差$Error$| $\sum_{j=1}^{k} \sum_{i=1}^{n_j}{(x_{ij}-\overline{T}_j)^2}$ | $\sum_{j=1}^{k}{(n_j - 1)}$ | $\frac{SS_{Error}}{\sum_{j=1}^{k}{(n_j - 1)}}$ | |
|全体|$\sum_{j=1}^{k} \sum_{i=1}^{n_j}{(x_{ij} - \overline{G})^2}$  |$\sum_{j=1}^{k}{n_j - 1}$  |  | |

上記でまとめたF値に対して有意差があるかどうかを判定する$p$値を求める。

[-目次へ-](#pushpin目次)

# 3.分散分析の数学的背景

この章では、分散分析に至る考え方を2章で述べた手順に沿って数学的に解説する。まず前提として、分散分析はパラメトリックな検定であり、誤差$\epsilon_{ij}$が平均0の正規分布に従い、その分散は等しいと仮定する。すなわち、

- $\{ x_{11}, x_{21}, \cdots, x_{n_11} \}$は、平均$\mu + \tau_1$の正規分布に従う
- $\{ x_{21}, x_{22}, \cdots, x_{n_22} \}$は、平均$\mu + \tau_2$の正規分布に従う
- $\cdots$

とする。

### 構造モデルの構築

全体の母平均$\mu$、水準$j$の効果を$\tau_j$とすると、水準$j$の$i$番目の測定値$X_{ij}$は、

$$X_{ij} = \mu + \tau_j + \epsilon_{ij}$$

として表すことができる。上記の構造モデルの各項の分散について考えると、

- $X_{ij}$の分散、すなわち母数全体の分散（**全分散**）を$\sigma_{Total}^2$
- 要因$\tau$の分散（**要因分散**）を$\sigma_{A}^2$
- 各測定値の誤差$\epsilon$の分散（**誤差分散**）を$\sigma_{Error}^2$

と表すとすると、分散分析は各因子の分散の平均に興味があるため、$\tau$についての推定を行わずとも、$\sigma_{A}^2$が0かどうか判別すれば十分である。

ところで、

* 測定値$x_{ij}$の平均平方（平方和を自由度で割ったもの）は、全分散$\sigma_{Total}^2$の不偏推定量となる？$\rightarrow$**なる**（$\rightarrow$[補題1](#補題1)）
* 測定値$\overline{T_{i}} - \overline{G}$の平均平方は、全分散$\sigma_{A}^2$の不偏推定量となる？$\rightarrow$**ならない**（$\rightarrow$[補題2](#補題2)）
* 測定値$x_{ij} - \overline{T_{i}}$の平均平方は、全分散$\sigma_{Error}^2$の不偏推定量となる？$\rightarrow$**なる**（$\rightarrow$[補題3](#補題3)）

上で述べたように、$\sigma_{A}^2 = 0$に興味があるが、測定値$\overline{T_{i}} - \overline{G}$の平均平方は不偏推定量にはならないため、以降説明するように工夫が必要となるのは明確である。

### 平均平方の算出

まず初めに、上記の構造モデルに着目し、平方和（$SS$）を導出する。

```math
\begin{align}
& x_{ij} = \overline{G} + (\overline{T}_j - \overline{G}) + (x_{ij} - \overline{T}_j) \\
\Leftrightarrow & x_{ij} - \overline{G} = (\overline{T}_j - \overline{G}) + (x_{ij} - \overline{T}_j) \\
\end{align}
```

両辺を2乗し、$i$と$j$に関して和をとると、

```math
\begin{align}
& (x_{ij} - \overline{G})^2 = (\overline{T}_j - \overline{G})^2 + (x_{ij} - \overline{T}_j)^2 + 2(\overline{T}_j - \overline{G})(x_{ij} - \overline{T}_j) \\
\Rightarrow & \sum_{i}\sum_{j}(x_{ij} - \overline{G})^2 = \sum_{i}\sum_{j}(\overline{T}_j - \overline{G})^2 + \sum_{i}\sum_{j}(x_{ij} - \overline{T}_j)^2 + 2\sum_{i}\sum_{j}(\overline{T}_j - \overline{G})(x_{ij} - \overline{T}_j)\\
\Leftrightarrow & \sum_{i}\sum_{j}(x_{ij} - \overline{G})^2 = \sum_{j}n(\overline{T}_j - \overline{G})^2 + \sum_{i}\sum_{j}(x_{ij} - \overline{T}_j)^2 + 2\sum_{j}(\overline{T}_j - \overline{G})\sum_{i}(x_{ij} - \overline{T}_j)\\
\Leftrightarrow & \sum_{i}\sum_{j}(x_{ij} - \overline{G})^2 = \sum_{j}n(\overline{T}_j - \overline{G})^2 + \sum_{i}\sum_{j}(x_{ij} - \overline{T}_j)^2 + 2\sum_{j}(\overline{T}_j - \overline{G})\times 0\\
\Leftrightarrow & \sum_{i}\sum_{j}(x_{ij} - \overline{G})^2 = \sum_{j}n(\overline{T}_j - \overline{G})^2 + \sum_{i}\sum_{j}(x_{ij} - \overline{T}_j)^2 \\
\Leftrightarrow & SS_{Total} = SS_{A} + SS_{Error}
\end{align}
```

よって、構造モデルを平方和を用いた形で表すことができる。

次に、構造モデルの各項に対して、自由度を考えてみると、

```math
\sum_{j=1}^{k}n_j - 1  = (k - 1) + \sum_{j=1}^{k}(n_j - 1)
```

と分解できるため、自由度も平方和と同様に分解することができる。

よって、各項の平方和と自由度がそれぞれ構造モデルと対応していたため、それぞれの項に対して平均平方を求めることで$\sigma_{A}^2 = 0$かどうかに着目することができる。平方和の各項を自由度の各項で割ると

```math
\begin{align}
& \frac{\sum_{i}\sum_{j}(x_{ij} - \overline{G})^2}{\sum_{j=1}^{k}n_j - 1}  = \frac{\sum_{j}n(\overline{T}_j - \overline{G})^2}{k - 1} + \frac{\sum_{i}\sum_{j}(x_{ij} - \overline{T}_j)^2}{\sum_{j=1}^{k}(n_j - 1)} \\
\Leftrightarrow & MS_{Total} = MS_{A} + MS_{Error} 
\end{align}
```

### F値への導入

データの平方和を自由度で割れば、母分散の不偏推定量が得られるが、これを期待値という概念を用いて表すと

```math
\begin{align}
E[MS_{Total}] = \sigma_{Total}^2
\end{align}
```

（[補題1](#補題1)で証明を行う。）
では、今回興味のある要因の平均平方に関して同様に考えてみると

```math
\begin{align}
E[MS_{A}] &= n\sigma_{A}^2 + \sigma_{Error}^2
\end{align}
```

となり（[補題2](#補題2)）、$MS_A$は$\sigma_{A}^2$と$\sigma_{Error}^2$の両方を反映した統計量となっていることがわかる。また、一方で誤差の平均平方の推定量に関しては

```math
\begin{align}
E[MS_{Error}] &= \sigma_{Error}^2
\end{align}
```

である。（[補題3](#補題3)で証明を行う。）そこで、$F = \frac{MS_A}{MS_{Error}}$を検定統計量として考えることによって、

- もし仮に要因の効果がない場合、$MS_A$と$MS_{Error}$のともに$\sigma_{Error}^2$の不偏推定量のため、近い値（F値として1に近い）を取る
- もし仮に要因の効果がある場合、$MS_A$は$\sigma_{A}^2$の影響を強く受けるため、$MS_A$は大きな値を取る。

ここで、$\frac{MS_A}{MS_{Error}}$に着目すると、分母は$\frac{SS_{Error}}{\sum_{j=1}^{k}{(n_j - 1)}}$、分子は$\frac{SS_A}{k-1}$であり、それぞれ二乗和を自由度で割った確率変数であるため、$\frac{MS_A}{MS_{Error}}$は、自由度$(k-1, \sum_{j=1}^{k}{(n_j - 1)})$の$F$分布に従う。

### 各種証明
###### 補題1
測定値$x_{ij}$の平均平方（平方和を自由度で割ったもの）は、全分散$\sigma_{Total}^2$の不偏推定量となる。

**【証明】**
測定値の平均平方は平方和（$SS$）を自由度で割ったものである。

```math
\begin{align}
& \sum (x_i - \overline{x})^2 \\
&= \sum \left\{ (x_i - \mu) + (\mu - \overline{x}) \right\}^2 \\
&= \sum (x_i - \mu)^2 + 2 (\mu - \overline{x}) \sum (x_i - \mu) + n (\mu - \overline{x})^2 \\
&= \sum (x_i - \mu)^2 - 2 (\overline{x} - \mu) (\sum x_i - n\mu) + n (\mu - \overline{x})^2 \\
&= \sum (x_i - \mu)^2 - 2 (\overline{x} - \mu) (n \overline{x} - n\mu) + n (\mu - \overline{x})^2 \\
&= \sum (x_i - \mu)^2 - n (\mu - \overline{x})^2
\end{align}
```

第一項の期待値は

```math
\begin{align}
E[\sum (x_i - \mu)^2] &= E[(x_1 - \mu)^2] + E[(x_2 - \mu)^2] + \cdots + E[(x_n - \mu)^2] \\
&= \sigma^2 + \sigma^2 + \cdots + \sigma^2 \\
&= n \sigma^2
\end{align}
```

第二項の期待値は

```math
\begin{align}
E[n (\mu - \overline{x})^2] &= n E[(\overline{x} - \mu)^2] \\
&= n \times \frac{\sigma^2}{n} \\
&= \sigma^2
\end{align}
```

従って、

```math
E\left[\frac{1}{n-1} \sum (x_i - \overline{x})^2 \right] = \sigma^2
```

以上より、測定値の平方平均は前分散の不偏推定量となる。

###### 補題2
測定値$\overline{T_{i}} - \overline{G}$の平均平方は、全分散$\sigma_{A}^2$の不偏推定量とならない。

**【証明】**

$\overline{G}、\overline{T}_j$はそれぞれ、

$$\mu + E_{ij} \left[\epsilon_{ij}\right]、\mu + \tau_j + E_i \left[\epsilon_{ij} \right]$$

とみなすことができ、$E_{ij} \left[\epsilon_{ij}\right]$は平均0、分散$\frac{\sigma_{Error}^2}{n}$、 $E_i \left[\epsilon_{ij} \right]$は平均0、分散$\frac{\sigma_{Error}^2}{n_j}$の正規分布にそれぞれ従う。ここで、$E_{ij} \left[\epsilon_{ij}\right]、E_i \left[\epsilon_{ij} \right]$を$\overline{e}'、 \overline{e}_j$とおく。

このとき、

```math
\begin{align}
E\left[ \sum_j n_j (\overline{T}_{j} - \overline{G})^2 \right] &= E\left[ \sum_j n_j (\tau_{j} + \overline{e}_j - \overline{e}')^2 \right] \\
&= E\left[ \sum_j n_j \left\{\tau_{j}^2 + (\overline{e}_j - \overline{e}')^2 \right\} \right] \\
&= \sum_j n_j \tau_j^2 + \sum_j n_j E\left[ (\overline{e}_j - \overline{e}')^2 \right] \\
&= \sum_j n_j \tau_j^2 + \sum_j n_j \left\{ E\left[ \overline{e}_j^2 \right] - E\left[ \overline{e}'^2 \right] \right\} \\
&= \sum_j n_j \tau_j^2 + \sum_j n_j \frac{\sigma_{Error}^2}{n_j} - \sum_j n_j \frac{\sigma_{Error}^2}{n} \\
&= \sum_j n_j \tau_j^2 + k\sigma_{Error}^2 - \sigma_{Error}^2
\end{align}
```

###### 補題3
測定値$x_{ij} - \overline{T_{i}}$の平均平方は、全分散$\sigma_{Error}^2$の不偏推定量となる。

**【証明】**
$\overline{T}_j$は

$$\mu + \tau_j + E_i \left[\epsilon_{ij} \right]$$

とみなすことができ、$E_i \left[\epsilon_{ij} \right]$は平均0、分散$\frac{\sigma_{Error}^2}{n_j}$の正規分布に従う。ここで、$E_i \left[\epsilon_{ij} \right]$を$\overline{e}_j$とおく。

```math
\begin{align}
E\left[ \sum_j \sum_i (x_{ij} - \overline{T}_j) \right] &= E\left[ \sum_j \sum_i (\epsilon_{ij} - \overline{e}_j) \right] \\
&= \sum_j E\left[ \sum_i \epsilon_{ij}^2 - 2\sum_i \epsilon_{ij} \overline{e}_j + n_j \overline{e}_j^2 \right] \\
&= \sum_j \left\{ \sum_jE \left[ \epsilon_{ij}^2 \right] - n_j E\left[ \overline{e}_j^2 \right] \right\} \\
&= \sum_j \sum_i \sigma_{Error}^2 - \sum_j n_j \frac{\sigma_{Error}^2}{n_j} \\
&= (n-k)\sigma_{Error}^2 \\
\end{align}
```


[-目次へ-](#pushpin目次)

### 参考文献

- https://bellcurve.jp/statistics/course/10006.html
- http://elsur.jpn.org/resource/anova.pdf
- http://lbm.ab.a.u-tokyo.ac.jp/~omori/zikken13/anova3.html