見出し画像

8-8 母比率の差の検定 ~ 不良品率を母比率に見立てて2標本の母比率の差のz検定を実施

今回の統計トピック

統計的仮説検定のトピック「2標本の母比率の差の$${z}$$検定」を深掘りします。
過去記事「8-5 正規近似を用いた検定」と繋がっている問題です。


公式問題集の準備

「公式問題集」の問題を利用します。お手元に公式問題集をご用意ください。
公式問題集が無い場合もご安心ください!
「知る」「実践する」の章で、のんびり統計をお楽しみください!

問題を解いて、知る・実践する


今回の記事の構成

この記事は、通常の記事構成と違う章立てにいたします。
「問題を解く」「知る」「実践する」を1つの章にまとめます。
2標本の母比率の差の$${z}$$検定の一連の流れを、手作業・EXCEL・Pythonで実践いたします。

📘公式問題集のカテゴリ

検定の分野
問8 母比率の差の検定(機械で製造する部品の不良率)

試験実施年月
統計検定2級 2018年11月 問15(回答番号26)

📕公式テキスト:4.4.4 母比率の差の検定(156ページ~)

問題

公式問題集をご参照ください。

解き方

題意
与えられた条件から2標本の母比率の差の検定で用いる$${p}$$値を求めます。

【条件】
■標本$${X_A}$$(A社)
・標本サイズ:$${200}$$
・不良品数:$${16}$$
■標本$${X_B}$$(B社)
・標本サイズ:$${200}$$
・不良品数:$${17}$$
■その他の条件(2つの標本の差を$${d}$$と置く)
・帰無仮説:母比率の差$${d=0}$$
・対立仮説:母比率の差$${d\neq0}$$
・連続修正を行わない

公式問題集の記述を改変

読み解き

条件から統計的仮説検定の主題を読み解きます。

  • 帰無仮説「母比率の差$${d=0}$$」より、「2標本の母比率の差の検定」です。

  • 対立仮説「母比率の差$${d \neq 0}$$」の不等号より、「両側検定」です。

  • 条件に明記されていませんが、標本サイズ$${=200}$$を大きいものとして扱い、正規分布近似を用いて、検定統計量$${Z}$$を求める$${z}$$検定のようです。

この問題の統計的仮説検定の概要を図示します。

統計的仮説検定の手段

今回は、①手計算、②EXCEL、③Python の3つの手段で検定を実施いたします。



手計算で検定

ステップ1:検定統計量$${Z}$$を計算する

帰無仮説が正しいと仮定するときの検定統計量 $${Z}$$ を計算します。
計算結果の値を「$${z}$$値」と呼びます。
この問題で「帰無仮説が正しいと仮定する」とは、「母比率の差$${d=0}$$である」と仮定することです。

検定統計量$${Z}$$の計算式は次のとおりです。

■公式
検定統計量$${Z=\cfrac{(\hat{p}_A-\hat{p}_B) -d_{H0}}{\sqrt{\hat{p}_A(1-\hat{p}_A)/n_A + \hat{p}_B(1-\hat{p}_B)/n_B}}}$$

ただし、$${d_{H0}}$$:帰無仮説の母比率の差、$${\hat{p}_A}$$:標本Aの標本比率、$${\hat{p}_B}$$:標本Bの標本比率、$${n_A}$$:標本Aの標本サイズ、$${n_B}$$:標本Bの標本サイズ

2つの標本比率を「引き算」しますが、分母の分散の推定量は「足し算」になります。
注意しましょう(末尾の補足をご覧ください)。

注意のマーク:「いらすとや」さんより

問題文で与えられた$${d_{H0}=0}$$、$${\hat{p}_A=16/200=0.08}$$、$${\hat{p}_B=17/200=0.085}$$、$${n_A=n_B=200}$$を用いて検定統計量$${Z}$$を計算します。

$$
\begin{align*}
Z&=\cfrac{(\hat{p}_A-\hat{p}_B) - d_{H0}}{\sqrt{\hat{p}_A(1-\hat{p}_A)/n_A + \hat{p}_B(1-\hat{p}_B)/n_B}} \\
 \\
&=\cfrac{(0.08-0.085)-0}{\sqrt{0.08 \times (1-0.08) / 200 + 0.085 \times (1-0.085) / 200}} \\
 \\
&=\cfrac{-0.005}{\sqrt{0.08 \times 0.92 / 200 + 0.085 \times 0.915 / 200}} \\
 \\
&=\cfrac{-0.005}{\sqrt{(0.08 \times 0.92 + 0.085 \times 0.915)/200}} \\
 \\
&=-0.181 \cdots \\
&\fallingdotseq -0.18
\end{align*}
$$

$${z}$$値は$${-0.18}$$です。

ステップ2:$${\boldsymbol{z}}$$値から$${\boldsymbol{p}}$$値を取得

検定統計量$${Z}$$は標準正規分布に従います。
標準正規分布の上側確率表より、$${z}$$値の上側確率を取得します。
標準正規分布の上側確率表は$${z}$$値が正の場合を前提としています。
そこで$${-0.18}$$の絶対値である$${0.18}$$を用いて、上側確率$${P(z \geq 0.18)}$$を求めます。

$${z}$$値$${0.18}$$の「0.1の行」・「.08の列」の交差点に求める上側確率が記載されています。
上側確率は$${0.4286}$$です。

この上側確率は右側部分のみです。つまり片側の確率です。
本問題は両側検定です。
$${p}$$値は下側確率(左側)も含める必要があります。
標準正規分布は左右対称の分布ですので、片側確率を2倍すると両側確率になります。
$${p}$$値$${=0.4286 \times 2=0.8572\fallingdotseq 0.86}$$

解答選択肢は$${p}$$値$${=0.86}$$です。

最後に、標準正規分布と$${z}$$値(横軸)、$${p}$$値(確率=面積)の関係を可視化しましょう。

黒い点線を$${z}$$値の位置に立てています。
$${p}$$値は$${z}$$値の左右の青い領域=両側確率です。

手計算は以上となります。

結局、不良品率に差はあるの?
$${p}$$値$${=0.86}$$はかなり大きな値です。
有意水準を$${10\%}$$としても、$${p}$$値は有意水準を大きく上回るので、帰無仮説は棄却されないと想定されます。
つまり、帰無仮説「2社の不良品率に差は無い(母比率の差はゼロである)」を受容することになるでしょう。

基板のイラスト:「いらすとや」さんより

■補足 標本比率の差の分散
検定統計量$${Z}$$の公式の分母に現れる標本比率の差の分散の推定量「$${\hat{p}_A(1-\hat{p}_A)/n_A + \hat{p}_B(1-\hat{p}_B)/n_B}$$」に関する補足です。

独立に正規分布に近似的に従う2つの標本比率$${\hat{p}_A, \hat{p}_B}$$(標本サイズ$${n_A,n_B}$$)について、標本比率の差を$${d=\hat{p}_A-\hat{p}_B}$$と表しましょう。

$${\hat{p}_A}$$の分散$${V[\hat{p}_A]}$$は$${p_A(1-p_A)/n_A}$$、$${\hat{p}_B}$$の分散$${V[\hat{p}_B]}$$は$${p_B(1-p_B)/n_B}$$です。
$${p_A, p_B}$$は母比率です。

標本比率の差$${d}$$の分散$${V[d]}$$は、次のように計算でき、$${p_A(1-p_A)/n_A + p_B(1-p_B)/n_B}$$になります。
(計算過程)
$${V[d]=V[\hat{p}_A-\hat{p}_B]=V[\hat{p}_A]+V[-1 \times \hat{p}_B]=V[\hat{p}_A]+(-1)^2 \times V[\bar{p}_B]=V[\hat{p}_A]+V[\hat{p}_B]=p_A(1-p_A)/n_A + p_B(1-p_B)/n_B}$$

そして、標本サイズ$${n_A,n_B}$$が大きい場合に大数の法則を用いて、母比率$${p_A, p_B}$$を標本比率$${\hat{p}_A, \hat{p}_B}$$に置き換えることで、標本比率の差の分散の推定量「$${\hat{p}_A(1-\hat{p}_A)/n_A + \hat{p}_B(1-\hat{p}_B)/n_B}$$」になります。


EXCELで検定

計算シートを用いて2標本の母比率の差の$${z}$$検定を行います。

計算シートの全体像
入力パラメータに標本ごとの標本サイズと標本比率、共通項目として帰無仮説の母比率の差、有意水準、検定方法を設定します。

この計算シートには特別な関数を用いていません。
検定統計量$${Z}$$の公式どおりに計算式を設定しています。
上側確率は NORM.S.DIST 関数を用いて標準正規分布の累積分布関数を取得して計算しています。

統計的仮説検定の実行

入力パラメータに予め問題の条件値をセットしています。
$${z}$$値、$${p}$$値を自動計算します。
有意水準$${5\%}$$、両側検定で実行しましょう。

$${z}$$値$${=-0.182}$$、$${p}$$値$${0.8558}$$になりました。

解答選択肢は$${p}$$値$${=0.86}$$です。

検定してみる

有意水準を 5% に設定して、両側検定を行いましょう。
$${p}$$値$${0.8558}$$が有意水準 5% を上回っているので、帰無仮説は棄却されず、帰無仮説「2社の不良品率に差は無い(母比率の差はゼロである)」を受容することになるでしょう。

どのくらい標本比率に差があると有意になるの?

最初の計算シートでお気づきの方もいらっしゃるでしょう。
標本比率を$${8\%}$$と$${3.5\%}$$としても、有意水準$${5\%}$$の両側検定では帰無仮説を棄却できません。
肌感覚では比率に大きな差があるように思えるのですが、$${z}$$検定では有意差と言えないようです。

標本比率を$${8\%}$$と$${3.4\%}$$にすると、有意水準$${5\%}$$の両側検定で帰無仮説を棄却できるようです。


EXCELは以上となります。

EXCELサンプルファイルのダウンロード
こちらのリンクからEXCELサンプルファイルをダウンロードできます。



Pythonで検定

Pythonで2標本の母比率の差の$${z}$$検定に用いる$${z}$$値と$${p}$$値を計算します。
今回は、2つの方法に取り組みます。

インポート

import numpy as np
from statsmodels.stats.proportion import proportions_ztest
from scipy import stats

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'meiryo'

データの準備

問題の条件値を設定します。
あわせて標本比率を計算します。

# データ入力
n1 = 200   # 標本1の標本サイズ
n2 = 200   # 標本2の標本サイズ
x1 = 16    # 標本1の該当数(不良品数など)
x2 = 17    # 標本2の該当数(不良品数など)
d = 0      # 帰無仮説の母比率の差

# 標本比率の計算
p_hat1 = x1 / n1
p_hat2 = x2 / n2

では、検定を実施しましょう。
最初に検定統計量$${Z}$$の公式どおりに計算して$${z}$$値を得ます。
$${p}$$値はscipy.statsを用いて正規分布の上側確率を取得して、2倍します。

# 母比率の差のz検定 両側検定
# 検定統計量zの公式どおりに計算、標準正規分布よりp値を取得

# z値の算出
z_value = ((p_hat1 - p_hat2) - d)/  \
          np.sqrt((p_hat1 * (1-p_hat1) / n1) + (p_hat2 * (1-p_hat2) / n2))

# p値の算出
p_value = stats.norm.sf(np.abs(z_value), loc=0, scale=1) * 2

print(f'z値: {z_value:.3f}, p値: {p_value:.3f}')

次に statsmodels の proportions_ztest を用いて$${z}$$値と$${p}$$値を取得します。
この関数はおそらく、次の計算式にて検定統計量$${Z}$$を計算している模様です。

■分散の計算にプールした(平均化した)標本比率$${{\boldsymbol{\hat{p}^{*}}}}$$を用いる計算式
※ 統計検定2級公式テキストの 式(4.4.7)

$${Z=\cfrac{(\hat{p}_1-\hat{p}_2)-(p_1-p_2)}{\sqrt{\hat{p}^{*}(1-\hat{p}^{*})(1/n_1+1/n_2)}} }$$

$${\hat{p}^{*}=\cfrac{x_1+x_2}{n_1+n_2}}$$

# 母比率の差のz検定 両側検定
z_value, p_value = proportions_ztest(
         [x1, x2],                # 2つの該当数(不良品数など)
         [n1, n2],                # 2つの標本サイズ
         value=d,                 # 帰無仮説の母比率の差
         alternative='two-sided'  # 両側検定:two-sided、片側>:larger、片側<:smaller
)

print(f'z値: {z_value:.3f}, p値: {p_value:.3f}')

今回の条件値では、2つの計算方法の$${z}$$値と$${p}$$値は同じになりました。
たとえば、$${x_2=7}$$にして計算すると、2つの計算方法の結果に差が出ます。
標本サイズ、標本比率、帰無仮説の母比率の差の値をいろいろと変えてみて、$${z}$$値・$${p}$$値の変化を楽しんでくださいね!

解答選択肢は$${p}$$値$${=0.86}$$です。

Pythonサンプルファイルのダウンロード
こちらのリンクからJupyter Notebook形式のサンプルファイルをダウンロードできます。

以上で終了です。
お疲れ様でした。

解答

⑤ です。

難易度 やさしい

・知識:2標本の母比率の差の$${z}$$検定、標準正規分布の上側確率表
・計算力:数式組み立て(低)、電卓(低)
・時間目安:1分



おわりに

統計関連ツールは、$${z}$$検定のサポートがなんだか薄い感じです。
ということは・・・
検定統計量$${Z}$$は記憶を頼りにするものなのかもしれません。
(機械に頼れないので。利用頻度は高くないのかもしれませんが)

統計検定2級公式問題集CBT対応版では、母比率関係の推定や検定を多めに取り扱っていて、$${z}$$値を求める機会が多いのです!
覚えるチャンスですね!

最後までお読みいただきまして、ありがとうございました。


のんびり統計シリーズの記事

次の記事

前の記事

目次


いいなと思ったら応援しよう!