カテゴリカル・データのカイ2乗検定, オッズ比検定

2023-03-17 (Fri.)

統計

INDEX

\(\def\Bi{\mathrm{Bi}}\def\N{\mathcal{N}}\def\inv#1{\frac{1}{#1}}\)

カテゴリカル・データの定義

一次元のカテゴリカル・データとは次のようなもの.

属性を2つにしたものを二次元のカテゴリカル・データと呼ぶ. 特にこれを指して クロス表 ともいう.

この \(n_i\) または \(n_{i,j}\) を度数という.

典型的なクロスデータの例をあげる.

特にこの例では \(|I|=|J|=2\) なので 2x2 のクロスデータ という.

これに対して薬の効果を測りたい. そこで次のような帰無仮説を立ててこれを棄却できるかの検定をしたい.

ピアソンの \(\chi^2\) 検定

定義

次の統計量を考える.

一次元の場合は

\[Z = \sum_{i \in I} \frac{(O_i - E_i)^2}{E_i}\]

ここで属性 \(i\) に対して実際に観測された値が \(O_i\) , 期待値が \(E_i\) である. カテゴリカル・データについては \(O_i\) とは度数 \(n_i\) のこと, 期待値は帰無仮説において期待されるその値のこと.

二次元の場合は

\[Z = \sum_{i \in I} \sum_{j \in J} \frac{(O_{ij} - E_{ij})^2}{E_{ij}}\]

\(O_{ij}, E_{ij}\) の意味は一次元のときと全く同様.

その期待値をどう求めるかは適用する帰無仮説による.

実はこの \(Z\) は \(\chi^2\) 分布に従い, そしてその自由度は一次元の場合は \(|I| - 1\) , 二次元の場合は \((|I|-1) (|J|-1)\) となる.

簡単な場合

簡単に \(|I| = 2\) の場合の一次元カテゴリカル・データで考える.

サンプルが \(i=0\) に属するかどうかを確率 \(p\) の二項分布に当てはめる. 期待値 \(E_0\) のとき \(p = E_0 / n\) である. ここで \(n\) は全サンプル数.

観測される \(O_0\) を確率変数 \(X\) で置く.

\[X \sim \Bi(p,n)\]

ここでサンプル数が十分なとき, 二項分布は正規分布に近似できる(一般に \(n>5\) ならこの近似をしてよいとされる).

\[X \sim \N(np, np(1-p))\]

標準化して

\[\frac{X-np}{\sqrt{np(1-p)}} \sim \N(0,1)\]

\(\chi^2\) 分布とは標準正規分布に従う確率変数の2乗(の和)が従う分布のことだった.

\[\frac{(X-np)^2}{np(1-p)} \sim \chi^2_1\]

この左辺を注意深く式展開する. ポイントは \(1/p + 1/(1-p) = \frac{1}{p(1-p)}\) なところ.

\[\begin{align} \frac{(X-np)^2}{np(1-p)} & = \frac{1}{n} (X-np)^2 \left( \frac{1}{p} + \frac{1}{1-p} \right) \\ & = \frac{ (X-np)^2 }{ np } + \frac{ (X-np)^2 }{ n(1-p) } \\ & = \frac{ (X-np)^2 }{ np } + \frac{ ((n-X)-n(1-p))^2 }{ n(1-p) } \\ \end{align}\]

第一項に注目すると, \(X=O_o\) , \(np=E_0\) である. 次に第二項に注目すると, \(n-X = O_1\) , \(n(1-p) = E_1\) のことである. それらを代入すると結局, 定義で導入した \(Z\) になっている.

\[Z = \frac{(O_0 - E_0)^2}{E_0} + \frac{(O_1 - E_1)^2}{E_1} \sim \chi^2_1\]

同様のことが, \(|I|\) を増やしたとき, 或いは次元を増やしたときにも同様に確認できる. ただし各属性について最後の一個の値は決定されるので自由度が属性の数よりも \(1\) だけ少ないことに注意.

薬の検定の場合

期待値の求め方について具体的なことを言及してなかったので例を挙げる. 次のような設定が典型.

以下の設定で 2x2 クロスデータを作る.

観測値 \(O_{ij}\) は「群 \(i\) に属して, 効果が \(j\) だった被験者の人数」を表す. これはクロスデータとして与えられる.

帰無仮説を「 \(I\) に係わらず効果が現れる確率が等しく \(p\) である」とする. \(p\) は分からないので 100 人全体の被験者から推定する. すなわち

\[p = \frac{ O_{AY} + O_{BY} }{ 100 }\]

また, A/B への振り分けは 3:2 でランダムだとしたので, 事前分布 \(p(A) = 2/5, p(B)=3/5\) としてよい.

以上から期待値は決まる. 例えば A群 であって効果が Y な数は

\[E_{AY} = 100 \times p(A) \times p = 40 \times p\]

となる.

オッズ比

定義

2x2 のクロスデータについてのみ考える. 度数をそれぞれ \(a,b,c,d\) とする.

I / J 0 1
0 \(a\) \(b\)
1 \(c\) \(d\)

このとき次の OR をオッズ比 (Odds Ratio) という.

\[OR = \frac{ a/b }{ c/d } = \frac{ ad }{ bc }\]

\(b,c\) に関する対称式なので属性 \(I\) と \(J\) を交換しても同じ式になってることに注意.

デルタ法

ある確率変数 \(X\) と滑らかな関数 \(f\) があって \(X\) の分散が十分小さいとき, 次の2つを事実として使う.

  1. \(X\) が正規分布に従うなら \(f(X)\) も正規分布に従う
  2. \(f(X)\) の平均は \(f(\mu)\) , 分散は \((f'(\mu))^2 \sigma^2\)

この2つ目については簡単に確認できる. \(f\) を \(X\) の平均値 \(\mu\) の周りで一次までテイラー展開する.

\[f(x) \sim f(\mu) + f'(\mu) (x - \mu)\]

これを用いると,

オッズ比の検定

\[OR = \frac{ a/b }{ c/d }\]

これの対数を取ると易しくなる.

\[\log(OR) = \log (a/b) - \log (c/d)\]

\(I = \{0,1\}\) についてそれぞれ(やはり)二項分布に従っているものだと考える. \(0 \in I\) の場合の二項分布を \(\Bi(p_0, n_0)\) , \(1 \in I\) の二項分布を \(\Bi(p_1, n_1)\) としてこの2つは独立だと仮定する.

ここで \(n_0, n_1\) は \(I\) に対応するサンプル数で \(n_0 = a+b, n_1 = c+d\) である. この2つの数値はクロスデータが与えられた時点で定数であることに注意(確率変数ではない).

また確率 \(p_0, p_1\) は \(0 \in J\) になる確率であって推定値としては \(p_0 = a/(a+b), p_1=c/(c+d)\) が使える.

というわけで \(a,c\) のことをそれぞれ二項分布に従う確率変数だと思える.

\[a \sim \Bi(p_0, n_0)\] \[c \sim \Bi(p_1, n_1)\]

二項分布はやはり正規分布に近似できて,

\[a \sim \N(n_0 p_0, n_0 p_0 (1-p_0))\] \[c \sim \N(n_1 p_1, n_1 p_1 (1-p_1))\]

さて今は \(\log(a/b)\) といった確率変数について考えたいのであった.

\[\log(a/b) = \log \frac{a}{ n_0 - a } \sim \N(?, ?)\] \[\log(c/d) = \log \frac{c}{ n_1 - c } \sim \N(?, ?)\]

そこでデルタ法を用いる. ここでのサブゴールは次の通り.

確率変数 \(X\) は \(\N(np, np(1-p))\) に従う. では \(\log(X/(n-X))\) が従う分布は何か?

簡単のために両辺 \(n\) で割る.

確率変数 \(\omega = \log \frac{X}{n-X} = \log \frac{ X/n }{ 1 - X/n }\) とおく.

ここで \(f(x) = \log \frac{x}{1-x}\) という関数を定義する. これの導関数は \(f'(x) = \frac{1}{x (1-x)}\) .

\(\omega = f(X/n)\) についてデルタ法を適用すると, \(\omega\) が次の正規分布に従うことが分かる.

改めて結果を書くと,

\[\log \frac{X}{n-X} \sim \N \left( \log\frac{p}{1-p} , \frac{1}{n p (1-p) } \right)\]

この結果をクロスデータに適用すると,

\[\log(a/b) \sim \N \left( \log\frac{p_0}{1-p_0} , \frac{1}{n_0 p_0 (1-p_0) } \right)\] \[\log(c/d) \sim \N \left( \log\frac{p_1}{1-p_1} , \frac{1}{n_1 p_1 (1-p_1) } \right)\]

そして \(\log(OR) = \log(a/b) - \log(c/d)\) であった. 正規分布の差を注意深く取ることで,

\[\log(OR) \sim \N \left( \log\frac{p_0}{1-p_0} - \log\frac{p_1}{1-p_1}, \frac{1}{n_0 p_0 (1-p_0)} + \frac{1}{n_1 p_1 (1-p_1)} \right)\]

ここから更に注意深く式展開をしてく.

\[\begin{align} \log\frac{p_0}{1-p_0} & = \log\frac{n_0p_0}{n_0(1-p_0)} \\ & = \log\frac{a}{b} \\ & = \log a - \log b \end{align}\]

ここで \(n_0 = a+b\) 及び \(p_0 = a/(a+b)\) という推定値を使った. 同様に \(\log\frac{p_1}{1-p_1} = \log c - \log d\) .

そして,

\[\begin{align} \inv{n_0 p_0 (1-p_0)} & = \inv{n_0p_0} + \inv{n_0 (1-p_0)} \\ & = \inv{a} + \inv{b} \\ \end{align}\]

これらを代入するとかなりきれいな式が出来上がる.

\[\log(OR) \sim \N \left( \log a - \log b - \log c + \log d, \inv{a} + \inv{b} + \inv{c} + \inv{d} \right)\]

この対数オッズ比に関する 95% 信頼区間は(ただの正規分布なので)

\[\log a-\log b - \log c + \log d \pm 1.96 \sqrt{ \inv{a} + \inv{b} + \inv{c} + \inv{d} }\]

これに \(\exp\) を掛けて対数を取り除くことで, \(OR\) に関する信頼区間

\[\frac{a/b}{c/d} \times \exp \left[ \pm 1.96 \sqrt{ \inv{a} + \inv{b} + \inv{c} + \inv{d} } \right]\]

を得る.