黄昏より暗きもの、血の流れより赤きもの

黄昏より暗きもの、血の流れより赤きもの

自分の好きな事を好きなように書いて行きます。

RやExcelを使い、カイ二乗検定よりデーターがある分布に従うかを調べる方法

序章

各データX_1,X_2,X_3,....,X_nにある規則性がある事が掴めれば、例えば未来の数量の予測がしやすくなる。(簡単に言うと過去の情報から、未来のアタリをつけやすくなると言う事)。そのためにはまず各データX_1,X_2,X_3,......,X_nがどのような規則性があるか?それが例えば統計的な観点からどれだけ妥当か?を調べる必要がある。この統計的な観点から調べる方法の一つが、今日取り扱うカイ二乗検定だ。

カイ二乗検定を使う事で出来る事は、観測されたデータ(Observed)から、サイコロの各出目が\frac{1}{6}であるか?又はポアソン分布など各分布に従うか?と言う時に調べ、データの持つ規則性を調べる事が可能だ。

例えば分散σ^2が既知のときの母平均の検定や区間推定は中心極限定理を使い、標準化変数Z=\frac{\overline{X}- μ}{\sqrt{\frac{σ^2}{n}}}が標準正規分布N(0,1)に従う事を利用する物であった。このよう に確率統計ではある特徴量や変数が、特徴的な分布に従うと仮定し数量の見積もりを行う事が多い。

カイ二乗適合度検定の流れ

まずk個のカテゴリーA_1A_2、....、A_nがある。このとき各カテゴリーに属する観測度数をf_1f_2、....、f_nとし、理論確率をp_1p_2、....、p_nとしよう。この時以下の分割表を作る事が出来る。

属性Aのカテゴリー A_1 A_2 *** A_k
観測度数(observed) f_1 f_2 *** f_k n
理論度数(expected) np_1 np_2 *** np_k n

さてこのとき{\chi}^2 = \sum_{i=1}^n {(\frac{X_i - np_i}{np_i}})^2は、自由度(n-1){\chi}^2分布に従う。検定の際の帰無仮説H_0は、全てのiに対してp_i=p_i^*」(p_i^*はある分布などに従う確率変数)と言う形となる。

さて立方体に1〜6の整数のかかれたサイコロにおいて、1〜6が常に一様に出力されるか検定したいとする。この時の帰無仮説H_0は、全てのiに対してp_i=\frac{1}{6}となる。このように出た値に依らず出現が一様である場合は、出た値が一様分布に従うかを調べている事のと同じだ。

ポアソン分布に従うかを調べたいと言った場合は、p_i^*の分布の情報からexpectedを計算してから検定と言う流れとなる。

例題(統計検定2015年度 問16より)

あるウズラの養殖場において,ウズラが産む卵の数を一週間調べたところ,次の表のようになった。曜日によって産卵数に違いがあるといえるか?有意水準5%で検定せよ。

曜日
観測度数(observed) 20 18 17 24 24 22 22 147

手計算による解答

1:観測度数の情報が無いので整理

まず曜日によって産卵数に違いがあるといえるかを調べるためには、ウズラの産卵数が曜日に依らず一様であり、一様分布に従うかを調べればよい。(この読み替えがカギ!)

このとき、観測度数(observed)を日曜日から順にp_1,p_2,....p_7とおき、期待度数(expected)をp_1^*,p_2^*,....p_7^*とおく。このとき1 \leq i \leq 7を満たす全ての自然数iに対し、

帰無仮説H_0:p_i = \frac{1}{7}

を棄却することで、産卵数に違いがあるかどうかを調べる。

2:検定統計量を計算し、棄却域に入るか調べる

まず1 \leq i \leq 7を満たす全ての自然数iにに対し、期待度数(expected)np_i = 147 * \frac{1}{7} = 21である。この事から分割表をまとめると、

曜日
観測度数(observed) 20 18 17 24 24 22 22 147
期待度数(expected) 21 21 21 21 21 21 21 147

{\chi}^2 = \frac{(20-21)^2}{21} + \frac{(18-21)^2}{21} + \frac{(17-21)^2}{21} + \frac{(24-21)^2}{21} + \frac{(24-21)^2}{21} + \frac{(22-21)^2}{21} + \frac{(22-21)^2}{21} = 2.1905

上記は自由度(7-1)=6{\chi}^2分布に従う。 さて有意水準が5%よりz_6(0.05)=12.592{\chi}^2 < z_6(0.05)より、有意水準5%において帰無仮説H_0は棄却されない。この事から曜日に依って産卵数に違いがあるとは言えない。

R言語カイ二乗検定を行う

今度はR言語カイ二乗検定を行いたい。使う関数はchisq.test(観測度数のベクトル,p=期待確率ベクトル)だ。第一引数に観測度数のベクトル、第二引数に期待確率ベクトルを打ち込む。主な流れは以下を見て欲しい。

#観測度数(observed)のベクトルを入力
observed<-c(20,18,17,24,24,22,22)
#期待確率のベクトルを入力
expected<-c(1/7,1/7,1/7,1/7,1/7,1/7,1/7)
#カイ二乗検定を実践
chisq.test(observed,p=expected)

本問の場合、有意水準が5%よりp-valueが0.95以上かを見れば良い。p-value = 0.9014より、帰無仮説が採択される。

Chi-squared test for given probabilities
data: observed
X-squared = 2.1905(検定統計量の値), df = 6(自由度), p-value = 0.9014

p値(p-value)とz値について

大学の授業や試験、又は統計検定の場合は、数表からz値を探してきて検定する。しかしながら各種ソフトウェアの場合はp値を基に棄却の判断を行う。ここでp値とz値を簡単に説明すると以下の図のようになる。

f:id:program_study:20160530040800j:plain

簡単に説明すれば、連続型の確率分布における関数とx軸で囲まれた面積(確率)がp値、pがある値となるようなx座標の値をz値と言う。

Excelカイ二乗検定を行う

今度はExcelカイ二乗検定を行いたい。EXCELでもCHISQ.TEST(A1:B1,A2:B2)関数を使って、カイ二乗検定を行ったときのp値を出力してくれる。具体的な流れは以下の通りだ。


f:id:program_study:20160530041617p:plain

最後IF関数で棄却するかを調べる必要があるのが面倒な所だ。RやExcelでもカイ二乗検定は簡単に行う事ができるので、是非活用して欲しい。

参考文献