全国学力テストでは、過去数十年のデータから全国平均と標準偏差が正確に把握されている。ある学校の生徒の成績が全国平均と異なるかどうかを判断したいとき、母集団の標準偏差が既知であることを活かした検定が可能である。このように母分散(または母標準偏差)が既知の場合に、平均値に関する仮説を検定する手法がZ検定である。
Z検定は検定統計量が標準正規分布(Z分布)に従うことからこの名がついた。歴史的には、統計ソフトが普及する以前、t分布の数表作成が煩雑だったため、サンプルサイズが大きい場合(目安として30以上)にはZ検定が広く用いられていた。現在では母分散が未知の場合に用いるt検定が一般的だが、Z検定は統計的仮説検定の基礎を理解する上で重要であり、品質管理など長年の実績データがある分野では今も活用されている。
Z検定とは
Z検定(Z-test)は、母集団の分散が既知の場合に、母平均に関する仮説を検定する手法である。検定統計量Zが標準正規分布N(0, 1)に従うことを利用する。
Z検定には主に2つの種類がある。
Z検定とt検定の違い
Z検定とt検定はどちらも平均に関する検定だが、母分散が既知かどうかで使い分ける。
| Z検定 | t検定 | |
|---|---|---|
| 母分散 | 既知 | 未知 |
| 検定統計量の分布 | 標準正規分布 N(0, 1) | t分布 t(n−1) |
| 臨界値(両側5%) | ±1.96(固定) | 自由度により変動 |
| 使用場面 | 品質管理など実績データあり | 一般的な実験・調査 |
実際の統計分析では母分散が未知であることがほとんどなので、t検定の方がよく使われる。しかし、Z検定は統計的仮説検定の基本を理解する上で重要であり、サンプルサイズが十分大きい場合はt分布が標準正規分布に近づくため、Z検定で近似することも多い。
1標本Z検定
1標本Z検定は、1つの標本から得られた平均が、ある基準値と異なるかどうかを検定する手法である。
設定
確率変数 X_1, \ldots, X_n が互いに独立に平均 \mu、分散 \sigma^2(既知)の正規分布に従うとする。
仮説
帰無仮説 H_0: \mu = \mu_0 に対して、以下の3通りの対立仮説を考える。
検定統計量
帰無仮説のもとで、標本平均 \bar{X} = \dfrac{1}{n} \sum_{i=1}^{n} X_i は平均 \mu_0、分散 \dfrac{\sigma^2}{n} の正規分布に従う。これを標準化した検定統計量
は標準正規分布 N(0, 1) に従う。
棄却域
有意水準 \alpha に対して、各対立仮説に応じた棄却条件は次の通り。
ここで z_{\alpha/2} は標準正規分布の上側 100 \cdot \dfrac{\alpha}{2} %点である。たとえば \alpha = 0.05 のとき z_{0.025} = 1.96 である。
計算例:1標本Z検定
ある工場で生産される製品の重量は、長年の実績から標準偏差 σ = 5g であることが分かっている。最近の製品10個の重量を測定したところ、平均が502gだった。この製品の真の平均重量は500gと言えるか?有意水準5%で両側検定を行う。
解答
ステップ1:仮説の設定
ステップ2:検定統計量の計算
ステップ3:棄却域との比較
有意水準 α = 0.05 の両側検定では、臨界値は ±1.96 である。
ステップ4:結論
|Z| = 1.265 は棄却域に入らないので、帰無仮説を棄却しない。したがって、有意水準5%では「真の平均重量は500gではない」とは言えない。
なお、P値を計算すると P = 0.206 である。これは α = 0.05 より大きいので、同じ結論が得られる。
2標本Z検定
2標本Z検定は、2つの独立した群の平均に差があるかどうかを検定する手法である。
設定
群Aの n_A 個のデータ X_{A1}, \ldots, X_{An_A} が互いに独立に平均 \mu_A、分散 \sigma_A^2(既知)の正規分布に従い、群Bの n_B 個のデータ X_{B1}, \ldots, X_{Bn_B} が互いに独立に平均 \mu_B、分散 \sigma_B^2(既知)の正規分布に従うとする。
仮説
平均の差を \delta = \mu_A - \mu_B とし、帰無仮説 H_0: \delta = \delta_0(多くの場合 \delta_0 = 0)を検定する。
検定統計量
帰無仮説のもとで、検定統計量
は標準正規分布 N(0, 1) に従う。
特に2群の分散が等しい(\sigma_A^2 = \sigma_B^2 = \sigma^2)場合は、
となる。棄却域は1標本Z検定と同様である。
計算例:2標本Z検定
2つの工場A, Bで生産される製品の平均重量に差があるか検定する。過去のデータから、両工場の標準偏差は σ = 4g と分かっている。工場Aでは15個を測定して平均102g、工場Bでは12個を測定して平均98gだった。有意水準5%で両側検定を行う。
解答
ステップ1:仮説の設定
ステップ2:標準誤差の計算
ステップ3:検定統計量の計算
ステップ4:棄却域との比較
ステップ5:結論
|Z| = 2.582 は棄却域に入るので、帰無仮説を棄却する。有意水準5%で「2つの工場の製品の平均重量には差がある」と結論できる(P値 = 0.0098)。
練習問題
検定統計量:
|Z| = 2.667 > 1.96 なので、帰無仮説を棄却する。
結論:有意水準5%で、真の平均長さは50mmではないと言える。
標準誤差:
検定統計量:
|Z| = 1.686 < 1.96 なので、帰無仮説を棄却しない。
結論:有意水準5%では「2つの肥料の効果に差がある」とは言えない。
まとめ
| 項目 | 1標本Z検定 | 2標本Z検定 |
|---|---|---|
| 目的 | 標本平均が基準値と異なるか | 2群の平均に差があるか |
| 前提条件 | 母分散 σ² が既知 | 両群の母分散が既知 |
| 検定統計量 | Z = \dfrac{\bar{X} - \mu_0}{\sigma / \sqrt{n}} | Z = \dfrac{\bar{X}_A - \bar{X}_B}{\sqrt{\frac{\sigma_A^2}{n_A} + \frac{\sigma_B^2}{n_B}}} |
| 分布 | 標準正規分布 N(0, 1) | |
| 臨界値(両側5%) | ±1.96 | |
母分散が既知の場合(品質管理など長年の実績データがある場合)、またはサンプルサイズが十分大きく(n ≥ 30程度)t分布が正規分布に近似できる場合に使用する。
Python実装
Pythonでは scipy.stats を使ってZ検定を実行できる。ただし、標準的なZ検定の関数は用意されていないため、自分で計算するか、statsmodels ライブラリを使用する。
import numpy as np
from scipy import stats
# ========== 1標本Z検定 ==========
print("【1標本Z検定】")
print("母分散既知(σ = 5g)、n = 10、標本平均 = 502g")
print("H₀: μ = 500 vs H₁: μ ≠ 500")
print()
n = 10
x_bar = 502
mu_0 = 500
sigma = 5
# 検定統計量
z = (x_bar - mu_0) / (sigma / np.sqrt(n))
print(f"検定統計量 Z = {z:.4f}")
# P値(両側)
p_value = 2 * (1 - stats.norm.cdf(abs(z)))
print(f"P値 = {p_value:.4f}")
# 判定
alpha = 0.05
z_crit = stats.norm.ppf(1 - alpha/2)
print(f"臨界値 = ±{z_crit:.4f}")
if abs(z) >= z_crit:
print("結論: 帰無仮説を棄却")
else:
print("結論: 帰無仮説を棄却しない")
print()
print("=" * 40)
print()
# ========== 2標本Z検定 ==========
print("【2標本Z検定】")
print("共通の母分散(σ = 4g)")
print("工場A: n = 15, 平均 = 102g")
print("工場B: n = 12, 平均 = 98g")
print()
n_A, n_B = 15, 12
x_bar_A, x_bar_B = 102, 98
sigma = 4
# 標準誤差
se = sigma * np.sqrt(1/n_A + 1/n_B)
print(f"標準誤差 SE = {se:.4f}")
# 検定統計量
z = (x_bar_A - x_bar_B) / se
print(f"検定統計量 Z = {z:.4f}")
# P値(両側)
p_value = 2 * (1 - stats.norm.cdf(abs(z)))
print(f"P値 = {p_value:.4f}")
# 判定
if abs(z) >= z_crit:
print("結論: 帰無仮説を棄却(有意差あり)")
else:
print("結論: 帰無仮説を棄却しない")