9-1-4 ポアソン分布の当てはめ ~ 分布のパラメータが既知か未知か&データからパラメータを推定するか問題
統計的仮説検定のトピック「適合度の検定」の最終回です。
仮定する分布がポアソン分布のケースです。
観測データからポアソン分布のパラメータ$${\lambda}$$を推定するかどうかがポイントです。
公式問題集の準備
「公式問題集」の問題を利用します。お手元に公式問題集をご用意ください。
公式問題集が無い場合もご安心ください!
「知る」「実践する」の章で、のんびり統計をお楽しみください!
問題を解く
今回の記事の構成
この記事は、通常の記事構成と違う章立てにいたします。
「知る」「実践する」を1つの章にまとめます。
最初に「問題を解く」の章で、出題箇所にピンポイントで解答を検討します。
続く「知る・実践する」の章で、適合度の検定の一連の流れを手作業・EXCEL・Pythonで実践いたします。
📘公式問題集のカテゴリ
カイ二乗検定の分野 ~適合度検定の分野
問4 ポアソン分布の当てはめ(1日あたりの交通事故◯◯人数)
試験実施年月
調査中
問題
公式問題集をご参照ください。
解き方
題意
与えられた条件に基づき、適合度の検定に関する「$${\chi^2}$$分布の自由度」と「帰無仮説を棄却できるかどうか」を解答します。
この問題の統計的仮説検定の概要を図示します。
作戦会議
すでに検定統計量が分かっているので、ひとまず、出題箇所にフォーカスを当てて、ピンポイントで解答します。
$${\boldsymbol{\chi^2}}$$分布の自由度
観測度数が1変数の場合、検定統計量$${\chi^2}$$は自由度$${k-1-\alpha}$$の$${\chi^2}$$分布に従います。
$${k}$$はカテゴリの数です。
$${\alpha}$$は観測データから推定する分布のパラメータの数です。
本問で取り扱う観測度数は「人数ごとの日数」の1変数であり、カテゴリの数$${k}$$は5(0人から4人以上の5つ)、観測データから推定するポアソン分布のパラメータの数$${\alpha}$$は0ですので、自由度は$${k-1-\alpha=5-1-0=4}$$です。
解答選択肢(ア)は、A2:4です。
ポアソン分布のパラメータを推定するかどうか
本問の仮定する分布はパラメータ$${\lambda=2}$$のポアソン分布です。
パラメータ$${\lambda}$$は既知であり、パラメータ値$${2}$$を問題で与えられています。
つまり、本問は「観測データからパラメータを推定していない」ケースに該当しますので、自由度の計算時に$${\alpha=0}$$とします。
適合度の検定の結論
検定に必要な情報を並べます。
■ 既に明らかな情報
・有意水準・・・$${5\%}$$
・検定統計量$${\chi^2}$$・・・$${12.0}$$
・検定統計量が従う$${\chi^2}$$分布の自由度・・・$${4}$$
■ 不明な情報
・検定統計量が従う$${\chi^2}$$分布の上側$${5\%}$$点
(この$${5\%}$$は有意水準の$${5\%}$$を用いています)
自由度$${4}$$の$${\chi^2}$$分布の上側確率$${5\%}$$点を探しに行きましょう!
$${\chi^2}$$分布のパーセント点表を開きます。
自由度$${4}$$の$${\chi^2}$$分布の上側確率$${5\%}$$点は$${9.49}$$です。
いよいよ結論のときが来ました。
上側確率$${5\%}$$点の$${9.49}$$に対して、$${\chi^2}$$値$${12.0}$$は上回っています。
これは、$${\boldsymbol{\chi^2}}$$値が棄却域に含まれていることを意味しています。
【結論】
帰無仮説「人数はパラメータ$${\lambda=2}$$のポアソン分布に従う」は棄却され、対立仮説「人数はパラメータ$${\lambda=2}$$のポアソン分布に従わない」と言えます。
解答選択肢(イ)は、B1:「検定統計量の値は、自由度$${4}$$のカイ二乗分布の上側$${5\%}$$点より大きいから、平均$${2}$$のポアソン分布に従わないと言える」です。
$${\boldsymbol{\chi^2}}$$分布の可視化
最後に、自由度$${4}$$の$${\chi^2}$$分布の上側確率$${5\%}$$点・棄却域・$${\chi^2}$$値を可視化して、帰無仮説が棄却される状況を感じましょう。
自由度$${4}$$の$${\chi^2}$$分布の確率密度関数は美しい曲線ですね!
波が立っているかのようです(北斎、2回目)。
青塗りのエリアが有意水準$${5\%}$$の棄却域です。
$${\chi^2}$$値$${11.99\fallingdotseq12.0}$$はたしかに棄却域に含まれています。
解答
③ です。
難易度 ふつう
・知識:適合度の検定、$${\chi^2}$$分布のパーセント点表
・計算力:数式組み立て(低)
・時間目安:1分
知る・実践する
おしながき
公式問題集の問題について、適合度の検定の一連の流れを手作業・EXCEL・Pythonで実践していきましょう。
📕公式テキスト:6.2 適合度の検定(203ページ~)
読み解き
条件から統計的仮説検定の主題を読み解きます。
条件より「適合度の検定」を行います。
適合度の検定は「片側検定(上側)」です。仮定した確率分布「パラメータ$${\lambda=2}$$のポアソン分布」に基づいて期待度数を計算します。
観測度数と期待度数を用いて、検定統計量$${\chi^2}$$を計算します。
検定統計量$${\chi^2}$$が従う$${\chi^2}$$分布の自由度を計算します。
$${\chi^2}$$分布のパーセント点表より、有意水準$${5\%}$$のパーセント点を取得して、帰無仮説を棄却できるかどうか結論づけます。
この問題の統計的仮説検定の概要を図示します(再掲)。
観測度数は次のとおりです。
手計算で検定
ステップ1:期待度数を計算する
期待度数は、理論的な確率や想定する確率といった「仮定する分布」の下でカウントされる度数です。
本問の仮定する分布は「パラメータ$${\lambda=2}$$のポアソン分布」です。
ポアソン分布の確率はポアソン分布の確率質量関数から求めます。
この確率質量関数を可視化しましょう。
平均2の付近の確率が大きくなり、徐々に確率が小さくなります。
問題では確率の計算は不要であり、期待度数が与えられています。
しかしここでは、ポアソン分布の確率を計算しましょう!
パラメータ$${\lambda=2}$$、確率変数(人数)$${x=0, 1, 2, 3}$$をポアソン分布の確率質量関数に当てはめて、人数に対応する確率を求めます。
4人以上の階級は、全確率$${1}$$から0~3人の確率合計を差し引いて求めます。
確率を表にします。
100人(標本サイズ)について、ただいま求めた確率を用いて、期待度数を計算します。
$${100\times各人数カテゴリの確率}$$で求めます。
・0人:$${100×13.5\%=13.5}$$
・1人:$${100×27.1\%=27.1}$$
・2人:$${100×27.1\%=27.1}$$
・3人:$${100×18.0\%=18.0}$$
・4人以上:$${100×14.3\%=14.3}$$
期待度数を表にしましょう。
次の計算で観測度数と期待度数を用いるので、両方の度数をまとめて掲載しましょう。
棒グラフで観測度数と期待度数の違いを可視化しましょう。
0人~2人は観測度数が上回り、3人~4人以上は観測度数が上回っています。
さて、適合度検定の結果はいかに・・・。
ステップ2:検定統計量$${\boldsymbol{\chi^2}}$$を計算する
カテゴリ(分類)ごとに「観測度数と期待度数の差の2乗」を「期待度数で割り」、全カテゴリを合計します。
本問のカテゴリは「0人」~「4人以上」までの5つです。
検定統計量$${\chi^2}$$は次の計算式を用いて計算します。
先程まとめた観測度数と期待度数の値を当てはめて、検定統計量$${\chi^2}$$を計算しましょう。
検定統計量の計算で得られた$${\chi^2}$$値は$${12.0}$$です。
ステップ3:検定統計量$${\boldsymbol{\chi^2}}$$が従う$${\boldsymbol{\chi^2}}$$分布の自由度
観測度数が1変数の場合、検定統計量$${\chi^2}$$は自由度$${k-1-\alpha}$$の$${\chi^2}$$分布に従います。
$${k}$$はカテゴリの数です。
$${\alpha}$$は観測データから推定する分布のパラメータの数です。
本問で取り扱う観測度数は「人数ごとの日数」の1変数であり、カテゴリの数は5(0人から4人以上の5つ)、観測データから推定するパラメータの数は0ですので、自由度は$${k-1-\alpha=5-1-0=4}$$です。
この問題のポイントは、パラメータ$${\lambda}$$は既知であり、観測データからパラメータを推定していないことです。
観測データからパラメータを推定していないので、「観測データから推定するパラメータの数」は0個です。
ステップ4:検定統計量$${\boldsymbol{\chi^2}}$$が従う$${\boldsymbol{\chi^2}}$$分布の上側パーセント点
続いて上側パーセント点を取得して棄却域を確認します。
ここで重要なお知らせ。
適合度検定は片側・上側検定ですので、有意水準$${5\%}$$の棄却域を求める際には、自由度$${4}$$の$${\chi^2}$$分布のパーセント点表より上側確率$${5\%}$$点を取得します。
自由度$${4}$$の上側確率$${5\%}$$点は$${9.49}$$です。
$${\chi^2}$$分布の確率密度関数をグラフで確認しましょう。
ステップ5:結論を出す
$${\chi^2}$$値$${=12.0}$$と上側確率$${5\%}$$点$${=9.49}$$を比べます。
$${\chi^2}$$値は上側確率$${5\%}$$点より大きいため、棄却域の区間内です。
よって、帰無仮説は棄却されます。
具体的には、帰無仮説「人数はパラメータ$${\lambda=2}$$のポアソン分布に従う」は棄却され、対立仮説「人数はパラメータ$${\lambda=2}$$のポアソン分布に従わない」と言えます。
最後にグラフで棄却域と$${\chi^2}$$値の関係を確認しましょう。
確かに$${\chi^2}$$値は棄却域に含まれています。
手計算は以上となります。
EXCELで検定
計算シートを用いて適合度検定を行います。
計算シートの全体像
左側の表に観測度数を登録します。
仮定する分布にはポアソン分布の確率の計算結果を表示しています。
期待度数を計算して、観測度数・期待度数の両方を整えます。
また、カテゴリごとに$${(観測度数-期待度数)^2/期待度数}$$の計算を行って合計を取り、$${\chi^2}$$値にしています。
右側の入力パラメータは「パラメータ$${\lambda}$$」と「有意水準」です。
観測度数・期待度数・有意水準より、$${\chi^2}$$値、上側確率%点、$${p}$$値を求めて、判定します。
適合度検定の実行
上記の計算シートには既に必要なデータ、パラメータを設定済みです。
計算値によると、自由度は$${4}$$、$${\chi^2}$$値は$${11.989}$$、上側確率$${5\%}$$点は$${9.488}$$です。
$${\chi^2}$$値が上側確率$${5\%}$$点よりも大きいので、帰無仮説は棄却されます。
$${p}$$値は$${0.017}$$。小さな値になりました。
まとめ
$${\chi^2}$$値は$${11.989}$$、$${p}$$値は$${0.017}$$です。
有意水準$${5\%}$$で帰無仮説は棄却され、対立仮説「人数はパラメータ$${\lambda=2}$$のポアソン分布に従わない」と言えます。
EXCELの関数
EXCELの CHISQ.TEST 関数を用いて、適合度検定の$${p}$$値を算出できます。
引数は、CHISQ.TEST ( 観測度数のデータ範囲, 期待度数のデータ範囲 ) です。
シンプルなのでぜひ使ってみてください!
また、POISSON.DIST関数を用いて、仮定する分布の確率を算出できます。
引数は、POISSON.DIST ( イベント数, 平均, 関数形式 ) です。
イベント数は各カテゴリの人数(MID関数で先頭1文字を取得)、平均はパラメータ$${\lambda=2}$$、関数形式はFALSE(確率質量関数)を設定します。
EXCELは以上となります。
EXCELサンプルファイルのダウンロード
こちらのリンクからEXCELサンプルファイルをダウンロードできます。
Pythonで検定
scipy.stats の chisquare を用いて適合度検定を実行します。
①インポート
### インポート
import numpy as np
import pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Meiryo'
②データとパラメータの設定・計算
問題で与えられた「観測度数」、「有意水準」を登録します。
また、パラメータ$${\lambda=2}$$のポアソン分布の確率を scipy.stats の poisson.pmf で求めます。
この3つの情報から、期待度数、自由度、上側確率$${5\%}$$点を算出します。
$${\chi^2}$$分布の上側確率$${5\%}$$点の取得には、scipy.stats の chi2.isf を利用しました。
### データとパラメータの設定
## データ、パラメータの登録
# 観測度数 : 0人~4人以上の順
observed_freq = np.array([21, 32, 29, 12, 6])
# 有意水準
alpha = 0.05
## 検定に利用する値の計算
# 仮定する確率 : パラメータλ=2のポアソン分布
expected_prob = stats.poisson.pmf(k=[0, 1, 2, 3], mu=2)
expected_prob = np.append(expected_prob, 1 - expected_prob.sum())
# 期待度数
excepted_freq = expected_prob * observed_freq.sum()
# 自由度: カテゴリの数k-1-α, α=0(データから推定したパラメータは無い)
df = observed_freq.shape[0] - 1
# 有意水準のカイ二乗分布の上側パーセント点
critical_value = stats.chi2.isf(alpha, df)
## 観測度数と期待度数の表示
summary_table = pd.DataFrame(
data={'観測度数': observed_freq,
'期待度数': excepted_freq},
index=['0人', '1人', '2人', '3人', '4人以上']).T
display(summary_table.round(1))
③適合度検定の実施
scipy.stats の chisquare を用いて適合度検定を行います。
引数は、chisquare ( 観測度数データ, 期待度数データ ) です。
戻り値は、$${\chi^2}$$値と$${p}$$値です。
### 適合度検定の実施
chi2_value, p_value = stats.chisquare(observed_freq, excepted_freq)
print(f'chi2_value:{chi2_value:.3f}, p_value:{p_value:.3f}')
④結論の表示
有意水準と$${p}$$値を比較して、帰無仮説を棄却できるかどうかを判定します。
### 結論の表示
if p_value < alpha: # p値が有意水準より小さい場合:棄却できる
result = ('棄却される', '言える')
else: # p値が有意水準以上の場合:棄却できない
result = ('棄却されない', '言えない')
print(f'結論\n有意水準{alpha:.1%}で帰無仮説は{result[0]}\n'
f'対立仮説「観測データは仮定する確率分布に一致しない」と{result[1]}')
### 統計量の表示
print('\n統計量')
print(f'自由度{df}のカイ二乗分布の上側{alpha:.1%}点:{critical_value:.3f}, '
f'カイ二乗値:{chi2_value:.3f}')
print(f'有意水準{alpha:.3f}, p値:{p_value:.3f}')
まとめ
$${p}$$値が有意水準$${5\%}$$より小さいので、有意水準$${5\%}$$で帰無仮説は棄却され、対立仮説「人数はパラメータ$${\lambda=2}$$のポアソン分布に従わない」と言えます。
Pythonサンプルファイルのダウンロード
こちらのリンクからJupyter Notebook形式のサンプルファイルをダウンロードできます。
以上で終了です。
お疲れ様でした。
おわりに
適合度の検定の4部作が完了しました。
次回から独立性の検定が始まります。
$${\chi^2}$$を用いた検定の旅はまだまだ続きます。
最後までお読みいただきまして、ありがとうございました。
のんびり統計シリーズの記事
次の記事
前の記事
目次
この記事が気に入ったらサポートをしてみませんか?