ヘロログ
統計学

母比率の検定

「新しいWebサイトのデザインに変えたら、コンバージョン率は本当に上がったのか?」「世論調査で内閣支持率が50%を下回ったとニュースになったが、統計的に有意な変化なのか?」――このように、ある割合(比率)が特定の値と異なるか、あるいは2つの集団の比率に差があるかを判断する場面は、ビジネスや社会調査で頻繁に登場する。

こうした問題に答える手法が母比率の検定である。Z検定が正規分布の母平均を対象とするのに対し、母比率の検定は二項分布に従うデータを扱う。サンプルサイズが十分大きいとき、中心極限定理によって標本比率は近似的に正規分布に従うため、検定統計量として標準正規分布を利用できる。

本記事では、1つの母比率を基準値と比較する1標本の検定と、2つの母比率の差を検定する2標本の検定の両方を扱う。

1標本の母比率の検定 標本比率 θ̂ = X / n 比較 基準値 θ₀ 例:支持率 = 50%? H₀: θ = θ₀ 母比率の差の検定 群1 θ̂₁ = X₁/n₁ 群2 θ̂₂ = X₂/n₂ θ̂₁ − θ̂₂ ≠ 0 ? 例:A/Bテスト H₀: θ₁ = θ₂
図1:母比率の検定の2つの種類

1標本の母比率の検定

試行回数 n、成功確率 \theta二項分布に従う確率変数 X を考える。

P(X = x) = \binom{n}{x} \theta^x (1 - \theta)^{n-x}

与えられた値 \theta_0 に対して、帰無仮説 H_0: \theta = \theta_0 を検定する。成功確率の最尤推定量は標本比率 \hat{\theta} = \dfrac{X}{n} である。

検定統計量

n が十分大きいとき、中心極限定理より \hat{\theta} は近似的に平均 \theta、分散 \dfrac{\theta(1-\theta)}{n} の正規分布に従う。帰無仮説のもとでこれを標準化すると、検定統計量

Z = \dfrac{\hat{\theta} - \theta_0}{\sqrt{\dfrac{\theta_0(1 - \theta_0)}{n}}}

は近似的に標準正規分布 N(0, 1) に従う。

棄却域

有意水準 \alpha に対する棄却条件は次の通り。

右側検定 (H_1: \theta > \theta_0)Z \geq z_{\alpha}
左側検定 (H_1: \theta < \theta_0)Z \leq -z_{\alpha}
両側検定 (H_1: \theta \neq \theta_0)|Z| \geq z_{\alpha/2}

正規近似の適用条件

正規近似が十分に正確であるためには、n\theta_0 \geq 5 かつ n(1 - \theta_0) \geq 5 が目安とされる。この条件を満たさない場合は、二項分布に直接基づく正確検定(二項検定)を使用する。

計算例:1標本の母比率の検定

例題

ある企業が「当社の顧客満足度は80%である」と主張している。これを検証するために200人の顧客を無作為に調査したところ、150人が「満足」と回答した。この企業の主張は正しいと言えるか、有意水準5%で両側検定を行え。

解答

ステップ1:仮説の設定

\begin{aligned} H_0 &: \theta = 0.80 \\ H_1 &: \theta \neq 0.80 \end{aligned}

ステップ2:標本比率の計算

\hat{\theta} = \dfrac{150}{200} = 0.75

ステップ3:検定統計量の計算

Z = \dfrac{0.75 - 0.80}{\sqrt{\dfrac{0.80 \times 0.20}{200}}} = \dfrac{-0.05}{\sqrt{0.0008}} = \dfrac{-0.05}{0.02828} = -1.768

ステップ4:棄却域との比較

有意水準5%の両側検定では、臨界値は z_{0.025} = 1.96 である。

|Z| = 1.768 < 1.96 = z_{0.025}

ステップ5:結論

|Z| = 1.768 は棄却域に入らないので、帰無仮説を棄却しない。有意水準5%では「顧客満足度は80%ではない」とは言えない(P値 = 0.077)。

Z = −1.768 例題1:棄却域に入らない → 棄却しない 棄却域 棄却域 −1.96 1.96 0 帰無仮説を棄却しない(P = 0.077)
図2:例題1の検定結果(Z = −1.768 は棄却域の外)

母比率の信頼区間

検定統計量の分母にある \theta_0\hat{\theta} に置き換えた

u = \dfrac{\hat{\theta} - \theta}{\sqrt{\dfrac{\hat{\theta}(1 - \hat{\theta})}{n}}}

n \to \infty のとき標準正規分布に収束することが示される。|u| \leq z_{\alpha/2}\theta について解くと、信頼係数 1 - \alpha信頼区間

\hat{\theta} \pm z_{\alpha/2} \sqrt{\dfrac{\hat{\theta}(1 - \hat{\theta})}{n}}

が得られる。先ほどの例題では

0.75 \pm 1.96 \times \sqrt{\dfrac{0.75 \times 0.25}{200}} = 0.75 \pm 0.060

より、\theta の95%信頼区間は [0.690, 0.810] となる。この区間は \theta_0 = 0.80 を含んでおり、帰無仮説が棄却されなかったことと整合する。

母比率の差の検定

次に、2つの母集団の比率が等しいかどうかを検定する問題を考える。Webマーケティングにおける A/Bテストや、2つの治療法の有効率の比較がこれにあたる。

設定

試行回数 n_1、成功確率 \theta_1 の二項分布に従う X_1 と、試行回数 n_2、成功確率 \theta_2 の二項分布に従う X_2 が独立に観測される。帰無仮説 H_0: \theta_1 = \theta_2 の検定を行いたい。ここで帰無仮説における \theta_1 (= \theta_2) の値そのものは指定されていないこと、すなわちこの共通の値は局外パラメータであることに注意する。

方法1:各群の推定値を使用

最尤推定量 \hat{\theta}_i = \dfrac{X_i}{n_i} を用いる。中心極限定理より \hat{\theta}_1 - \hat{\theta}_2 の平均は \theta_1 - \theta_2、分散は \dfrac{\theta_1(1-\theta_1)}{n_1} + \dfrac{\theta_2(1-\theta_2)}{n_2} であるから、帰無仮説のもとで

Z = \dfrac{\hat{\theta}_1 - \hat{\theta}_2}{\sqrt{\dfrac{\hat{\theta}_1(1-\hat{\theta}_1)}{n_1} + \dfrac{\hat{\theta}_2(1-\hat{\theta}_2)}{n_2}}}

は近似的に標準正規分布に従う。

方法2:プール推定量を使用

帰無仮説のもとでは \theta_1 = \theta_2 であるから、この共通の値をプール推定量

\hat{\theta}_* = \dfrac{X_1 + X_2}{n_1 + n_2}

で推定し、検定統計量を

Z = \dfrac{\hat{\theta}_1 - \hat{\theta}_2}{\sqrt{\left(\dfrac{1}{n_1} + \dfrac{1}{n_2}\right) \hat{\theta}_*(1 - \hat{\theta}_*)}}

とする。漸近的には2つの方法は等価である。

2つの方法の使い分け

検定では帰無仮説 \theta_1 = \theta_2 を前提とするため、プール推定量を用いるのが自然である。一方、\theta_1 - \theta_2信頼区間を求める場合は各群の推定値をそのまま用いる。

母比率の差の信頼区間

\theta_1 - \theta_2 の信頼係数 1 - \alpha の信頼区間は

(\hat{\theta}_1 - \hat{\theta}_2) \pm z_{\alpha/2} \sqrt{\dfrac{\hat{\theta}_1(1-\hat{\theta}_1)}{n_1} + \dfrac{\hat{\theta}_2(1-\hat{\theta}_2)}{n_2}}

で与えられる。

計算例:母比率の差の検定

例題

ある ECサイトで2つの広告デザイン A, B の効果を比較したい。デザインAを500人に表示したところ135人がクリックし、デザインBを400人に表示したところ80人がクリックした。2つのデザインのクリック率に差があると言えるか、有意水準5%で検定せよ。

解答

ステップ1:仮説の設定

\begin{aligned} H_0 &: \theta_1 = \theta_2 \\ H_1 &: \theta_1 \neq \theta_2 \end{aligned}

ステップ2:標本比率の計算

\hat{\theta}_1 = \dfrac{135}{500} = 0.270, \quad \hat{\theta}_2 = \dfrac{80}{400} = 0.200

ステップ3:プール推定量の計算

\hat{\theta}_* = \dfrac{135 + 80}{500 + 400} = \dfrac{215}{900} = 0.2389

ステップ4:検定統計量の計算

\begin{aligned} SE &= \sqrt{\left(\dfrac{1}{500} + \dfrac{1}{400}\right) \times 0.2389 \times 0.7611} \\ &= \sqrt{0.0045 \times 0.1818} \\ &= \sqrt{0.000818} = 0.02860 \end{aligned}
Z = \dfrac{0.270 - 0.200}{0.02860} = \dfrac{0.070}{0.02860} = 2.447

ステップ5:棄却域との比較

|Z| = 2.447 > 1.96 = z_{0.025}

ステップ6:結論

帰無仮説を棄却する。有意水準5%で「2つのデザインのクリック率には差がある」と結論できる(P値 = 0.014)。デザインAのクリック率がデザインBより高い。

Z = 2.447 例題2:棄却域に入る → 棄却する 棄却域 棄却域 −1.96 1.96 0 帰無仮説を棄却(P = 0.014)
図3:例題2の検定結果(Z = 2.447 は棄却域の内)

参考として、\theta_1 - \theta_2 の95%信頼区間を方法1(各群の推定値を使用)で求めると

(0.270 - 0.200) \pm 1.96 \times \sqrt{\dfrac{0.270 \times 0.730}{500} + \dfrac{0.200 \times 0.800}{400}} = 0.070 \pm 0.055

すなわち [0.015, 0.125] であり、0を含まないことからも有意差があることが確認できる。

練習問題

問1. コインを100回投げたところ60回表が出た。このコインは公正(表が出る確率 \theta = 0.5)と言えるか、有意水準5%で両側検定を行え。

仮説:H_0: \theta = 0.5 vs H_1: \theta \neq 0.5

標本比率:\hat{\theta} = \dfrac{60}{100} = 0.60

検定統計量:

Z = \dfrac{0.60 - 0.50}{\sqrt{\dfrac{0.50 \times 0.50}{100}}} = \dfrac{0.10}{0.050} = 2.000

|Z| = 2.000 > 1.96 なので、帰無仮説を棄却する。

結論:有意水準5%で、このコインは公正ではないと言える(P値 = 0.046)。

問2. 2種類の薬 A, B の有効性を比較する臨床試験を行った。薬Aを投与した80人中52人で症状が改善し、薬Bを投与した90人中45人で症状が改善した。2つの薬の有効率に差があると言えるか、有意水準5%で検定せよ(プール推定量を使用せよ)。

標本比率:\hat{\theta}_1 = \dfrac{52}{80} = 0.650\hat{\theta}_2 = \dfrac{45}{90} = 0.500

プール推定量:\hat{\theta}_* = \dfrac{52 + 45}{80 + 90} = \dfrac{97}{170} = 0.5706

標準誤差:

SE = \sqrt{\left(\dfrac{1}{80} + \dfrac{1}{90}\right) \times 0.5706 \times 0.4294} = \sqrt{0.02361 \times 0.2450} = 0.07606

検定統計量:

Z = \dfrac{0.650 - 0.500}{0.07606} = \dfrac{0.150}{0.07606} = 1.972

|Z| = 1.972 > 1.96 なので、帰無仮説を棄却する。

結論:有意水準5%で、2つの薬の有効率には差があると言える(P値 = 0.049)。ただし、P値が0.05にきわめて近いため、結論には慎重を期す必要がある。

まとめ

項目 1標本 2標本
目的 比率が基準値と異なるか 2群の比率に差があるか
帰無仮説 \theta = \theta_0 \theta_1 = \theta_2
検定統計量 \dfrac{\hat{\theta} - \theta_0}{\sqrt{\theta_0(1-\theta_0)/n}} \dfrac{\hat{\theta}_1 - \hat{\theta}_2}{\sqrt{(1/n_1 + 1/n_2)\hat{\theta}_*(1-\hat{\theta}_*)}}
帰無仮説下の分布 標準正規分布 N(0, 1)(近似)
臨界値(両側5%) ±1.96
適用条件 n\theta_0 \geq 5n(1-\theta_0) \geq 5 各群で同様の条件

Python実装

SciPyを使って検定統計量とP値を計算できる。なお、statsmodelsの proportions_ztest は1標本の場合に分母で \hat{\theta}(1 - \hat{\theta}) を使うWald統計量を計算するため、本記事のスコア統計量(分母に \theta_0(1 - \theta_0) を使用)とは値がやや異なる点に注意する。

proportion_test.py
import numpy as np
from scipy import stats

# ========== 1標本の母比率の検定 ==========
print("【1標本の母比率の検定】")
print("H₀: θ = 0.80  vs  H₁: θ ≠ 0.80")

n, x, theta_0 = 200, 150, 0.80
theta_hat = x / n
print(f"n = {n}, x = {x}, θ̂ = {theta_hat}")
print()

# スコア検定統計量(分母にθ₀を使用)
z = (theta_hat - theta_0) / np.sqrt(theta_0 * (1 - theta_0) / n)
p_value = 2 * (1 - stats.norm.cdf(abs(z)))
print(f"検定統計量 Z = {z:.4f}")
print(f"P値(両側)= {p_value:.4f}")

# 信頼区間(分母にθ̂を使用)
z_crit = stats.norm.ppf(0.975)
ci_lower = theta_hat - z_crit * np.sqrt(theta_hat * (1 - theta_hat) / n)
ci_upper = theta_hat + z_crit * np.sqrt(theta_hat * (1 - theta_hat) / n)
print(f"95%信頼区間: [{ci_lower:.4f}, {ci_upper:.4f}]")
print(f"結論: 帰無仮説を棄却しない")

print()
print("=" * 50)
print()

# ========== 2標本の母比率の差の検定 ==========
print("【母比率の差の検定】")
print("H₀: θ₁ = θ₂  vs  H₁: θ₁ ≠ θ₂")

n1, x1 = 500, 135
n2, x2 = 400, 80
theta1, theta2 = x1 / n1, x2 / n2
print(f"A: n₁ = {n1}, x₁ = {x1}, θ̂₁ = {theta1}")
print(f"B: n₂ = {n2}, x₂ = {x2}, θ̂₂ = {theta2}")
print()

# プール推定量による検定
theta_pool = (x1 + x2) / (n1 + n2)
se_pool = np.sqrt((1/n1 + 1/n2) * theta_pool * (1 - theta_pool))
z_pool = (theta1 - theta2) / se_pool
p_pool = 2 * (1 - stats.norm.cdf(abs(z_pool)))
print(f"プール推定量 θ̂* = {theta_pool:.4f}")
print(f"検定統計量 Z = {z_pool:.4f}")
print(f"P値(両側)= {p_pool:.4f}")

# 差の信頼区間(各群の推定値を使用)
se_ind = np.sqrt(theta1*(1-theta1)/n1 + theta2*(1-theta2)/n2)
diff = theta1 - theta2
ci_l = diff - z_crit * se_ind
ci_u = diff + z_crit * se_ind
print(f"差の95%信頼区間: [{ci_l:.4f}, {ci_u:.4f}]")
print(f"結論: 帰無仮説を棄却(有意差あり)")
【1標本の母比率の検定】 H₀: θ = 0.80 vs H₁: θ ≠ 0.80 n = 200, x = 150, θ̂ = 0.75 検定統計量 Z = -1.7678 P値(両側)= 0.0771 95%信頼区間: [0.6900, 0.8100] 結論: 帰無仮説を棄却しない ================================================== 【母比率の差の検定】 H₀: θ₁ = θ₂ vs H₁: θ₁ ≠ θ₂ A: n₁ = 500, x₁ = 135, θ̂₁ = 0.27 B: n₂ = 400, x₂ = 80, θ̂₂ = 0.2 プール推定量 θ̂* = 0.2389 検定統計量 Z = 2.4472 P値(両側)= 0.0144 差の95%信頼区間: [0.0148, 0.1252] 結論: 帰無仮説を棄却(有意差あり)