🐙

原理から理解する適合度検定〜多項分布を中心に〜

2023/10/25に公開

この記事は?

適合度検定について、概要とその背景にある数学的な原理を解説する。

適合度検定とは?

以下のように K 個のカテゴリにそれぞれ f_1, f_2, ..., f_K 個のサンプルが観測されているとする。
各カテゴリに含まれる確率がそれぞれ p_1, p_2, ..., p_K であると仮定した時、上記の観測度数が仮定に対して妥当な実現値かどうかを判断する際に用いるのが適合度検定である。

カテゴリ カテゴリ1 カテゴリ2 ... カテゴリK 合計
実測度数 f_1 f_2 ... f_K N
期待度数 Np_1 N p_2 ... N p_K N

以下のように、実測度数から期待度数 N p_i を差し引いた値を二乗し、それを期待度数で割った値を全カテゴリ分足し合わせ、統計量 T とする:

T = \sum_{i=1}^K \frac{(f_i - N p_i)^2}{N p_i}.

仮定が成立していればこの統計量は自由度 K-1 のカイ二乗分布に従うもの T \sim \chi^2(K-1) と考えて、検定を行う。

例題

以下は、架空の中学校の1学年分の生徒(合計100人)の生まれた期間別の人数を表にしたものである。
これについて、特定の期間に生まれた生徒が多い・少ないといった傾向があると言えるかを有意水準5%で判断しなさい。

誕生月 4~6月 7~9月 10~12月 1~3月 合計
人数 29 27 23 21 100

解答例

簡単のため、誕生月に偏りがない場合は上記表の4つの期間に生まれる確率はそれぞれ等しく 1/4 になるとする。

この時、

帰無仮説: 誕生月が各期間に含まれる確率は等しく1/4ずつである
対立仮説: 誕生月が各期間に含まれる確率は等しくない

に基づいて適合度検定を行う。

帰無仮説が真であるとすると、各期間に生まれた人数の期待度数はそれぞれ 100 \times 1/4 = 25 人ずつになるはずなので、

T= \frac{(29 - 25)^2}{25} + \frac{(27 - 25)^2}{25} + \frac{(23 - 25)^2}{25} + \frac{(21 - 25)^2}{25} = 1.6

自由度 4 - 1 = 3 のカイ二乗分布 \chi^2(3) の上側5%点は7.815なので、
1.6 < 7.815 より帰無仮説は棄却できず保留される。

したがって、有意水準5%で誕生期間に偏りがあるとは言えない。

数学的な原理

仮定

K 個の各カテゴリの度数 \boldsymbol{f} = (f_1, f_2, ..., f_K)^\top が多項分布 {\rm Mn}(N, \boldsymbol{p}) に従っているものとする:

P(\boldsymbol{f}) = \frac{N!}{f_1! f_2! \cdot ... \cdot f_K !} p_1^{f_1} p_2^{f_2} \cdot ... \cdot p_K^{f_K}

ただし N は合計度数 N = \sum_{i=1}^K f_i である。
また、\boldsymbol{p} = (p_1, p_2, ..., p_K)^\top はサンプルが各カテゴリに含まれる確率の理論値であり、\sum_{i=1}^K p_i = 1 \quad (0 \le p_i \le 1) である。

帰結

上記の仮定が成り立つとき、以下の統計量 TN \to \infty で自由度 K-1 のカイ二乗分布に分布収束する:

\begin{aligned} T= \sum_{i=1}^K \frac{(f_i - Np_i)^2}{Np_i} \xrightarrow[N\to\infty]{d} \chi^2(K-1). \end{aligned}

証明

以下のように \boldsymbol{z} をおくと、T = \boldsymbol{z}^\top \boldsymbol{z} と表せる:

\boldsymbol{z} = \left( \frac{f_1 - Np_1}{\sqrt{Np_1}}, \frac{f_2 - Np_2}{\sqrt{Np_2}},..., \frac{f_K - Np_K}{\sqrt{Np_K}} \right)^\top,
\boldsymbol{z}^\top \boldsymbol{z} = \sum_{i=1}^K \frac{(f_i - Np_i)^2}{Np_i} = T.

一方、\boldsymbol{z} の期待値と分散共分散行列は

E[\boldsymbol{z}] = \boldsymbol{0}, \quad V[\boldsymbol{z}] = \boldsymbol{\Sigma}
\Sigma_{ij} = \begin{cases} 1 - p_i \quad &i=j\\ -\sqrt{p_i p_j} \quad &i\ne j \end{cases} \qquad (i, j = 1, 2, ..., K)

のように表すことができ、\boldsymbol{z}N\to\infty で正規分布に分布収束する:

\boldsymbol{z} \xrightarrow[N\to\infty]{d} N(\boldsymbol{0}, \boldsymbol{\Sigma}).
詳細

\boldsymbol{f} は多項分布 {\rm Mn}(N, \boldsymbol{p}) に従うので、その特性関数は以下のように表される:

\begin{aligned} \phi_{\boldsymbol{f}}(\boldsymbol{t}) &= E[e^{i\boldsymbol{t}^\top \boldsymbol{f}}]\\ &= (p_1 e^{it_1 f_1} + p_2 e^{it_2 f_2} + ... + p_K e^{it_K f_K})^N \end{aligned}.

したがって、\boldsymbol{z} の特性関数 \phi_{\boldsymbol{z}}(\boldsymbol{t}) は、

\begin{aligned} \phi_{\boldsymbol{z}}(\boldsymbol{t}) &= E[e^{i\boldsymbol{t}^\top \boldsymbol{z}}]\\ &= E\left[ \exp \left( i \sum_{j=1}^K t_j \frac{f_j - Np_j}{\sqrt{Np_j}} \right) \right]\\ &= \exp \left( -i \sum_{j=1}^K \sqrt{Np_j} t_j \right) E\left[ \exp \left(i\sum_{j=1}^K \frac{t_j}{\sqrt{Np_j}} f_j \right) \right]\\ &= \exp \left( -i \sum_{j=1}^K \sqrt{Np_j} t_j \right) \left( p_1 e^{i\frac{t_1}{\sqrt{Np_1}}} + p_2 e^{i\frac{t_2}{\sqrt{Np_2}}} + ... + p_K e^{i\frac{t_K}{\sqrt{Np_K}}} \right)^N \end{aligned}

となる。
したがって、

\begin{aligned} \log \phi_{\boldsymbol{z}}(\boldsymbol{t}) &= -i \sum_{j=1}^K \sqrt{Np_j} t_j + N \log \left( p_1 e^{i\frac{t_1}{\sqrt{Np_1}}} + p_2 e^{i\frac{t_2}{\sqrt{Np_2}}} + ... + p_K e^{i\frac{t_K}{\sqrt{Np_K}}} \right)\\ &= -i \sum_{j=1}^K \sqrt{Np_j} t_j + N \log \left( \sum_{j=1}^K p_j + i \sum_{j=1}^K p_j \frac{t_j}{\sqrt{Np_j}} - \frac{1}{2!} \sum_{j=1}^K p_j \frac{t_j^2}{Np_j} + \Omicron(N^{-3/2}) \right)\\ &= -i \sum_{j=1}^K \sqrt{Np_j} t_j + N \log \left(1 + i \sum_{j=1}^K \frac{\sqrt{p_j} t_j}{\sqrt{N}} - \frac{1}{2} \sum_{j=1}^K \frac{t_j^2}{N} + \Omicron(N^{-3/2}) \right)\\ &= -i \sum_{j=1}^K \sqrt{Np_j} t_j + N \left(i \sum_{j=1}^K \frac{\sqrt{p_j} t_j}{\sqrt{N}} - \frac{1}{2} \sum_{j=1}^K \frac{t_j^2}{N} \right) - \frac{N}{2} \left(i \sum_{j=1}^K \frac{\sqrt{p_j} t_j}{\sqrt{N}}\right)^2 + \Omicron(N^{-1/2})\\ &= -i \sum_{j=1}^K \sqrt{Np_j} t_j + i \sum_{j=1}^K \sqrt{Np_j} t_j - \frac{1}{2} \sum_{j=1}^K t_j^2 + \frac{1}{2} \left( \sum_{j=1}^K \sqrt{p_j} t_j \right)^2 + \Omicron(N^{-1/2})\\ &= - \frac{1}{2} \left( \sum_{j=1}^K (1 - p_j)t_j^2 - \sum_{j \ne k}^K \sqrt{p_j p_k} t_j t_k \right) + \Omicron(N^{-1/2})\\ &= - \frac{1}{2} \boldsymbol{t}^\top \boldsymbol{\Sigma} \boldsymbol{t} + \Omicron(N^{-1/2})\\ \end{aligned}

から \phi_{\boldsymbol{z}}(\boldsymbol{t}) \xrightarrow{N\to\infty} \exp\left(- \frac{1}{2} \boldsymbol{t}^\top \boldsymbol{\Sigma} \boldsymbol{t} \right) が言えるので、

\boldsymbol{z} \xrightarrow[N\to\infty]{d} N(\boldsymbol{0}, \boldsymbol{\Sigma})

が示される。

ここで、上記の正規分布に従う確率変数 \boldsymbol{x} \sim N(\boldsymbol{0}, \boldsymbol{\Sigma}) の各成分の二乗の和は、自由度 K-1 のカイ二乗分布に従う:

\begin{aligned} \boldsymbol{x}^\top \boldsymbol{x} &= x_1^2 + x_2^2 + ... + x_K^2\\ &\sim \chi^2(K-1) \end{aligned}
詳細

行列 \boldsymbol{\Sigma} は冪等 \boldsymbol{\Sigma}^2 = \boldsymbol{\Sigma} なので、その固有値は1または0である。[1]
さらにトレースが {\rm tr}\, \boldsymbol{\Sigma} = \sum_{i=1}^K (1-p_i) = K-1 であることから、K \times K の直交行列 \boldsymbol{U} を用いて \boldsymbol{\Sigma} を以下のように固有値分解できる:[2][3]

\begin{aligned} \boldsymbol{U}^\top \boldsymbol{\Sigma} \boldsymbol{U} = \begin{pmatrix} \boldsymbol{I}_{K-1} & \boldsymbol{0}\\ \boldsymbol{0} & 0 \end{pmatrix}. \end{aligned}

このとき \boldsymbol{y}= \boldsymbol{U}^\top \boldsymbol{x} とおくと、\boldsymbol{y} \sim N(\boldsymbol{0}, \boldsymbol{U}^\top \boldsymbol{\Sigma} \boldsymbol{U}) であることから、y_1, y_2, ..., y_{K-1} が独立同時な標準正規分布 N(0,1) に従い、また y_K=0 であることがわかる。

したがって、以下が成り立つ:

y_1^2 + y_2^2 + ... + y_{K-1}^2 \sim \chi^2(K-1).

ここで \boldsymbol{x} = \boldsymbol{U} \boldsymbol{y} より

\begin{aligned} \boldsymbol{x}^\top \boldsymbol{x} &= \boldsymbol{y}^\top \boldsymbol{U}^\top \boldsymbol{U} \boldsymbol{y}\\ &= \boldsymbol{y}^\top \boldsymbol{y}\\ &= y_1^2 + y_2^2 + ... + y_{K-1}^2 + 0\cdot 0 \end{aligned}

であることから、以上より

\boldsymbol{x}^\top \boldsymbol{x} \sim \chi^2(K-1)

が示された。

以上から、サンプルサイズ無限大 N \to \infty の極限で統計量 T がカイ二乗分布 \chi^2(K-1) に漸近することが示された:

\begin{aligned} T &= \sum_{i=1}^K \frac{(f_i - Np_i)^2}{Np_i}\\ &= \boldsymbol{z}^\top \boldsymbol{z} \xrightarrow[N\to\infty]{d} \chi^2(K-1). \end{aligned}

参考文献

  • 上田拓治「44の例題で学ぶ統計的検定と推定の解き方」(オーム社, 2009)

https://amzn.asia/d/iY6YMKz

  • 河田敬義、丸山文行、鍋谷清治「大学演習 数理統計」(裳華房, 2011)

https://amzn.asia/d/bLSpExj

脚注
  1. 次を参照: https://zenn.dev/link/comments/83a966f37016a5 ↩︎

  2. 同上。 ↩︎

  3. 別証明: https://zenn.dev/link/comments/88a67f28ccc217 ↩︎

Discussion