理論分布(正規分布)の当てはめの適合度検定:Juliaによる計算例

どうも、木村(@kimu3_slime)です。

今回は、理論分布(正規分布)の当てはめの適合度検定について、Juliaによる計算例を紹介します。

 

理論分布への当てはめの適合度検定

あるテストを100人に受けてもらったところ、そのヒストグラムは次のようになっていたとしましょう。

このデータは、平均50、分散10の正規分布から得られたものではないか、と推測してみます。

経験分布関数と理論的な正規分布を合わせて描いてみると、上の図のようになりました。かなり近いように見えますが、果たしてこの推論は妥当なのでしょうか。

このサンプルから得られる経験分布は、理論分布にフィットしていると言えるのでしょうか? それを検証するのに、適合度の検定、カイ二乗検定が利用できます。

 

適合度検定の考え方は、次のようなものです。

一般に、\(k\)個の取りうる値がある試行を、\(n\)回行ったとしましょう。

それぞれの値が観測された回数(サンプルの度数)を\(n_1,\dots,n_k\)とします。また、1回の試行でそれぞれの値を取る経験的な確率が\(p_1,\dots,p_k\)(多項分布)であったとします。

それぞれの値を取る理論的な確率を、\(\theta_1,\dots,\theta_k\)としましょう。調べたい仮説は、

\[H_0 : p_i = \theta_i \quad(i =1,\dots,k)\]

です。対立仮説\(H_1\)は、\(H_0\)が成り立たないこととします。

\(e_i = n \theta_i\)を、それぞれの値の理論的な期待値としましょう。帰無仮説\(H_0\)が正しいとき、統計量

\[\chi^2 = \sum_{i=1}^k \frac{(n_i -e_i)^2}{e_i}\]

は、\(n\)を大きくすると、自由度\(k-1\)のカイ二乗分布に近づくことが知られています。

この近似による適合度の検定は、ピアソンのカイ二乗検定と呼ばれるものです。

 

この考え方を、データと理論的な分布の問題に応用しましょう。

今回のデータでは、取りうる値は連続的ですが、実数全体を有限個の区間\(I_1,\dots,I_k\)に分けて考えれば良いです。

例えば、\((-\infty,40),(40,45),(45,50),(50,55),(55,60),(60,\infty)\)のように。それぞれの区間内に値を取るデータの個数を数えれば、\((n_1,\dots,n_6)=(24,18,15,20,10,13)\)となります。

想定する理論的な分布(ここでは正規分布)の累積分布関数を\(F\)としましょう。各区間に対応する理論的な確率\(\theta_i\)は、\(F\)を使って求めることができます。例えば、40以上45以下となる確率は\(\theta_2 = F(45)-F(40)\)です。

有限個の区間に分けて考えることで、経験的な頻度と理論的な確率を比較して、それらの適合度の検定が行なえますね。

 

Juliaによる計算例

ここからは、コンピュータ、Juliaを使って適合度検定、カイ二乗検定を実行してみましょう。

 

テストを100人に受けてもらった結果のサンプルを作ります。

 

冒頭で示したヒストグラムは、このサンプルを使って作られました。

 

このサンプルによる経験分布が、正規分布\(\mathrm{Normal}(50,10)\)の理論分布に適合するか、カイ二乗検定してみましょう。

まず、サンプルがそれぞれの区間の値を取る回数をまとめたベクトル\((n_1,\dots,n_6)=(24,18,15,20,10,13)\)に変換する必要があります。これはサンプルから「count」を使うことで可能です。

区間の分け方は、40以下、40から60までは長さ5の等間隔、60以上としました。

 

累積分布関数を利用することで、各区間の値を取る理論的な確率\(\theta_0 = (\theta_1,\dots ,\theta_6)\)を求められます。

xの合計は100(サンプルサイズ)、theta0の合計は1(実数全体の確率)となっていることを、sum関数でチェックしておくと良いでしょう。

また、区間の分け方が悪く理論的な確率が小さくなりすぎると、\(e_i = n\theta_i\)が5以下となり、近似(カイ二乗検定)の妥当性が成り立たなくなることに注意しましょう。今回は、そうならないような区間の選び方をしました。

 

Hypothetistests.jlパッケージでは、「ChisqTest(x, theta0)」で帰無仮説を\(H_0 : p_i = \theta_i \quad(i =1,\dots,k)\)とするカイ二乗検定を行えます。

帰無仮説は棄却されない、つまりデータは正規分布に従っている可能性があることが示せました。

 

この検定では、確率分布での各区間での形状の違いは検出できないことに気をつけましょう。あくまで、各区間での理論的な確率がサンプルの度数とマッチするかどうかを調べているだけです。

確率(面積)が等しいけれども、曲線として異なるような違いは検出されません。

画像引用:ホーエル「入門数理統計学」 第9章 適合度の検定

 

 

別の例として、次のようなデータが得られたとしましょう。(自由度1のt分布、コーシー分布によるサンプルです。

最尤推定量としてサンプル平均と分散を利用した正規分布は、このデータとマッチしているのでしょうか。検定によって調べてみましょう。

 

実数全体の区間分けとして、-10以下、-10から10までは長さ5の等間隔、10以上という分け方を考えます。

それぞれの区間に値を取るデータの個数は、次の通りです。

 

正規分布を理論的な分布とするとき、各区間に対応する確率は次の通りです。

この数字を見るだけでも、データよりも正規分布は裾が厚いことが感じられますね。

 

適合度検定を行うと、次のようになりました。

 

ここで注意したいのが、理論分布\(F\)の\(r\)個のパラメータが未知であり、それを最尤推定量によって推測するときは、検定に用いる自由度が変化することです。

そのとき、統計量\(\chi ^2\)は自由度\(\nu = k-1\)ではなく、\(\nu = k -r-1\)のカイ二乗分布に従うことが知られています。

したがって、今回は正規分布の平均、分散という2つのパラメータを考えたので、自由度は\(6-1=5\)ではなく\(6-2-1=3\)を考える必要があります。

 

HypothesisTests.jlのChisqTestでは、自由度は指定できないようです。しかしながら、統計量は約17と求められいます。

自由度3のカイ二乗分布の累積分布関数が\(1-\alpha =0.95\)となる値(臨界値)\(c\)は、

です。検定統計量の約17はこれを上回っているので、帰無仮説は棄却されます。

よって、このサンプルは正規分布に従っているとは考えがたいことが示せました。

 

以上、理論分布(正規分布)の当てはめの適合度検定について、Juliaによる計算例を紹介してきました。

今回は理論分布として正規分布のみを考えましたが、同じ手順によって、理論分布による当てはめが妥当かどうか検定できますね。

木村すらいむ(@kimu3_slime)でした。ではでは。

 

Probability and Statistics: Pearson New International Edition
DeGroot, Morris(著), Schervish, Mark(著)
Pearson Education Limited (2013-07-30T00:00:01Z)
5つ星のうち4.3
¥10,792 (中古品)

 

入門数理統計学

入門数理統計学

posted with AmaQuick at 2022.03.27
P.G.ホーエル(著), 浅井 晃(翻訳), 村上 正康(翻訳)
培風館 (1978-01-01T00:00:01Z)
5つ星のうち4.1
¥5,280

 

Advanced Engineering Mathematics
Kreyszig, Erwin(著)
John Wiley & Sons Inc (2011-05-03T00:00:01Z)
5つ星のうち4.5
¥5,862 (中古品)

 

こちらもおすすめ

適合度のカイ二乗検定とは:Juliaによる計算例

統計モデル、統計的推測、パラメータ、統計量とは

最尤推定法、尤度とは:ベルヌーイ分布を例に

t分布とその性質、Juliaによる計算方法

多項式補間とは:Juliaによる計算例