はじめに
1-6の記事の続きで、仮説検定について紹介したいと思います。
特にカテゴリカルデータに対する検定手法をいくつか実例を交えて説明できたらと思っています
目次
- 二項検定
- カイ二乗検定:適合度検定
- カイ二乗検定:独立性の検定
1. 二項検定
データが、コインの表・裏のようにカテゴリで表される場合、カテゴリカルデータと呼びます。
つまち各カテゴリに含まれる数、カウント数を用いて計算をします。
まずはじめに二項検定について紹介したいと思います。
二項検定は、1つのカテゴリが確率$P$、もう一つのカテゴリが確率$1-P$で起きるかを調べる検定手法になっています。
例えばコイントスを例に挙げると、コイントスが偏りのない正しいものなのかを調べたいとします。コイントスを30回実施し、表が21回・裏が9回出たとき、このコイントスは偏りがあるかどうかなど。
ここでの前提条件は次のようになります。
帰無仮説:表が1/2、裏が1/2の確率で現れる。(偏りがない)
対立仮説:表が1/2、裏が1/2の確率で現れない(何らかの偏りがある)
続いてp値を計算する。p値の計算は今まで同様に帰無仮説が正しい世界で実施する。
_NC_mP^m(1-P)^{N-m}
今回の例だと、
_{30}C_{21} \times 0.5^{21} \times 0.5^{9}
となります。これを表21回裏9回~表30回裏0回までと表9回裏21回~表0回裏30回までを計算し、足し合わせたものがp値となります。
なぜ足し合わせる必要があるのか?について、p値は確率なので分布の面積を求める必要があります。
今回の表21回裏9回だけだと面積ではなく、1点を指す確率となってしまいます。そのため表21回裏9回以降の帰無仮説が正しい世界では起こること自体が稀な確率を全て足し合わせてp値を計算するようにしています。
ただあまりp値の計算方法とか気にしなくて大丈夫です。R使えば一瞬で計算できますので。
実際にRで検定を行うとp値=$0.043$となり、有意水準と比較すると$p<\alpha$となるため帰無仮説を棄却し対立仮説を採択します。
よって仮説検定の観点では、このコイントスには偏りがあるということがわかりました。
> binom.test(c(21, 9), p = 0.5)
Exact binomial test
data: c(21, 9)
number of successes = 21, number of trials = 30, p-value = 0.04277
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
0.5060410 0.8526548
sample estimates:
probability of success
0.7
2. カイ二乗検定:適合度検定
二項検定は2つのカテゴリを対象に考えていました。実際は2つ以上のカテゴリを考えることが多いと思います。その時は、カイ二乗検定の1つである適合度検定を使用するとよいでしょう。
適合度検定は次の前提条件の下で検定をします。
帰無仮説:母集団は想定している離散確率分布である
対立仮説:母集団は想定している離散確率分布ではない
ここからは実際に例を使用して説明していきます。
例:あるサイコロを60回振り、1から6までの目が次の表のように出たとする。このデータがサイコロの各目が1/6ずつ現れる正しいサイコロから得られたかどうかを検定する。
理論確率:帰無仮説が正しいときの確率。今回だとサイコロの各目が出る確率は1/6となる。
期待度数:理論確率の際の各目の出る回数を計算。$トータル回数 \times 理論確率$で求める。
検定統計量$\chi^2$値は、$(観測度数-期待度数)^2$$/期待度数$で求め、帰無仮説が正しいとき$\chi^2$分布に従う。
今回の例だと
$(5-10)^2/10+・・・+(10-10)^2/10=13.8$
となります。これを$\chi^2$統計表の値と比べることで検定ができます。
今回自由度は5となり、有意水準$\alpha=0.05$より$\chi^2$統計表の値は11.07を指します。($\chi^2\ $統計表の値は調べると出てきます)
これより11.07以下の値はよく観察されるが、11.07を上回る値は全体の5%ほどしかないとわかります。
今回$\chi^2$値は11.07よりも大きい値なので、帰無仮説を棄却し対立仮説を採択することになる。よってこのサイコロは各目が同じ確率で出る正しいサイコロではないと判断できます。
適合度検定もRを用いれば簡単に検定できるので、そちらもやってみたいと思います。
カイ二乗値は、手計算で行った時同様に13.8をとっていることがわかります。
p値が0.01693をとっているので、有意水準と比較すると$p<\alpha$となり帰無仮説を棄却できることがわかりました。
> o = c(5, 8, 10, 20, 7, 10)
> e = rep(1/6, 6)
> chisq.test(o, p=e)
Chi-squared test for given probabilities
data: o
X-squared = 13.8, df = 5, p-value = 0.01693
※適合度検定の自由度は、階級の数-1となる。今回だと6-1=5となる。
3. カイ二乗検定:独立性の検定
二項検定・適合度検定は、データと母集団の確率分布の比較を行っていました。
独立性の検定では、カテゴリ変数間の関係を調べる検定手法となっております。
カイ二乗の独立性の検定は次の前提条件で検定を行います。
帰無仮説:2つの変数は独立である
対立仮説:2つの変数は独立ではない(何かしらの関係がある)
$\chi^2$統計量の計算方法は適合度検定と同じ方法になります。
ではこちらも例題を使って説明していきたいと思います。
例:ある病気Aに関して、感染経験について調査したところ男女別に次のようなデータが得られた。病気Aの感染者と性別間には関連性があるといえるか? 有意水準は5%とする。
帰無仮説:性別と病気Aの感染経験は独立である。(関連性はない)
対立仮説:性別と病気Aの感染経験は独立ではない(何らかの関連がある)
まず$\chi^2$値(カイ二乗値)を求めるために期待度数を計算する。
期待度数は次の式で計算推測できる。
E_{ij} = \frac{n_{i・}n_{・j}}{N}
例えば病気Aに感染経験のある男性の期待度数は、$(118 \times 133)/257=61.1 \ $と推測できる。
よって期待度数は次のようになる。
以上よりカイ二乗値は次のように計算できる。
\chi^2 = \frac{(76-61.1)^2}{61.1} + ・・・+\frac{(82-67.1)^2}{67.1} = 13.07
独立性の検定では自由度は、$(行数-1)(列数-1)$で計算。今回だと$(2-1)(2-1)$で自由度1のカイ二乗に従うとわかる。
自由度1で有意水準5%のカイ二乗分布表の値は、3.84となる。よってカイ二乗値は3.84よりはるかに大きいので、帰無仮説を棄却し対立仮説を採択する。よって病気Aの感染経験と性別間には関連性があるといえる。
Rで計算した結果をみると、p値が0.00029となっており有意水準と比較すると$p < \alpha$となっていることがわかる。
よって帰無仮説を棄却し対立仮説を採択することが示せました。
> vx = matrix(c(76, 42, 57, 82), byrow=TRUE, ncol=2)
> chisq.test(vx)
Pearson's Chi-squared test with Yates'
continuity correction
data: vx
X-squared = 13.074, df = 1, p-value = 0.0002995
独立性の検定を行うために他の手法もあり、それがフィッシャーの正確確率性検定となっております。
こちらはカイ二乗の独立性検定よりも精度の高いp値を計算できることでよく使用される手法です。
カイ二乗の独立性検定との使い分けは、期待値が5以下のセルが1つでもある場合、フィッシャーの正確確率性検定を使うことをお勧めします。例えば以下表のようのようなデータではフィッシャーを使用したほうが良いでしょう。理由としては期待値が5以下のセルが1つでもあると、カイ二乗の独立性検定のp値の計算精度は悪くなることが知られているためです。