Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

検定

統計的仮説検定

帰無仮説(null hypothesis)H0H_0対立仮説(alternative hypothesis)H1H_1という2つの排反な仮説を設定し、両者の仮説のどちらを受容するかをデータから判定していく。

例えば、母集団の確率分布をf(xθ)f(x|\theta)としたときに

H0:θ=θ0 vs H1:θθ0H_0: \theta = \theta_0 \text{ vs } H_1: \theta \neq \theta_0

のように帰無仮説と対立仮説を設定する。

仮説検定方式

標本空間X\mathcal{X}を、H0H_0

  • 棄却域(rejection region)R={xXH0を棄却する}R = \{x \in \mathcal{X} | H_0 を棄却する \}

  • 受容域(acceptance region)A={xXH0を受容する}A = \{x \in \mathcal{X} | H_0 を受容する \}

とに分割するルールのことを仮説検定方式(hypothesis testing procedure)という。

また標本X1,,XnX_1,\dots,X_nに基づいた統計量T=T(X1,,Xn)T=T(X_1,\dots,X_n)によってRRAAが定まるとき、TT検定統計量(test statistic)という。

有意水準

もし帰無仮説を棄却したとき、その判断が間違っている可能性をコントロールしたい。 そこで、帰無仮説H0H_0が正しいにも関わらず誤ってH0H_0を棄却してしまう確率がすべてのθΘ0\theta \in \Theta_0に対してα\alpha以下になるようにするという条件

supθΘ0Pθ(XR)α\sup_{\theta \in \Theta_0} P_{\theta} (\boldsymbol{X} \in R) \leq \alpha

を満たすように棄却域を調整する。このα\alpha有意水準(significance leve)という。

ここでΘ0\Theta_0はパラメータθ\thetaのとりうる値の集合である母数空間(parameter space)Θ\Thetaのうち帰無仮説に対応するものである(例えばΘ0={θθ=θ0}\Theta_0 = \{ \theta | \theta = \theta_0 \}

(例)

例えば、標本平均がある値μ0\mu_0と等しいかどうかを検定したいとする。

H0:μ=μ0 vs H1:μμ0H_0: \mu = \mu_0 \text{ vs } H_1: \mu \neq \mu_0

という両側検定は、適当な定数CCを使って、

  • Xˉμ0>C|\bar{X} - \mu_0| > CならばH0H_0を棄却する

  • Xˉμ0C|\bar{X} - \mu_0| \leq CならばH0H_0を受容する

と書き換えることができる。この場合、Xˉμ0|\bar{X} - \mu_0|が検定統計量となり、H0H_0の棄却域は

R={xX  Xˉμ0>C}R = \big\{ x \in \mathcal{X} \ \big|\ |\bar{X} - \mu_0| > C \big\}

となる。

有意水準がα\alphaになるようCCを調整する場合、

Pμ=μ0(Xˉμ0>C)=αP_{\mu = \mu_0}( |\bar{X} - \mu_0| > C) = \alpha

となるようなCCにすることになる。

Z=n(Xˉμ0)/σZ = \sqrt{n} (\bar{X} - \mu_0) / \sigmaとすると、帰無仮説μ=μ0\mu = \mu_0のもとで標準正規分布に従うZN(0,1)Z \sim N(0, 1)ため、

TODO: 続きかく

import numpy as np
from scipy import stats
import pandas as pd
import matplotlib.pyplot as plt

正規母集団に関する検定

母集団の分布が正規分布ときの検定について。

母平均に関する検定

母平均μ\mu、母分散σ2\sigma^2の正規母集団についての検定を考える。

両側検定H0:μ=μ0 vs H1:μμ0H_0: \mu = \mu_0 \text{ vs } H_1: \mu \neq \mu_0のとき

σ2\sigma^2が既知の場合

検定統計量は標本平均Xˉ\bar{X}の標準化したもの

Z=Xˉμσ/nZ = \frac{\bar{X} - \mu}{\sigma / \sqrt{n}}

を使用する。

帰無仮説が正しければ、標本平均は中心極限定理により正規分布N(μ,σ2/n)N(\mu, \sigma^2 / n)に従うため、標準化したZZは標準正規分布N(0,1)N(0, 1)に従う。 なので、棄却域RRは標準正規分布のパーセント点Zα/2Z_{\alpha/2}と比較して次のようになる

R={xX  Z>Zα/2}R = \big\{ x \in \mathcal{X} \ \big|\ |Z| > Z_{\alpha/2} \big\}

言い換えると

Z>Zα/2    H0を棄却ZZα/2    H0を受容|Z| > Z_{\alpha/2} \implies H_0\text{を棄却}\\ |Z| \leq Z_{\alpha/2} \implies H_0\text{を受容}\\

とする。(絶対値を使うのは正規分布が原点に対し対称な分布であるため)

σ2\sigma^2が未知の場合

母分散σ2\sigma^2を標本分散s2s^2で置き換えたスチューデントのtt統計量

t=Xˉμs/nt = \frac{ \bar{X} - \mu }{ s /\sqrt{n} }

を使用する。

帰無仮説が正しければ、検定統計量ttは自由度n1n-1tt分布に従うため、パーセント点tα/2(n1)t_{\alpha/2}(n-1)と比較して

t>tα/2(n1)    rejectttα/2(n1)    accept|t| > t_{\alpha/2}(n-1) \implies \text{reject}\\ |t| \leq t_{\alpha/2}(n-1) \implies \text{accept}\\

とする。

多項分布に関する検定

カイ2乗適合度検定

クロス表(多項分布)において、観測データの確率分布が理論上想定される確率分布に等しいかどうかを調べる検定がカイ2乗適合度検定である。

nn個のデータがKK個のカテゴリーに分類され、それぞれX1,,XKX_1, \dots, X_K個観測されたとする(X1++XK=nX_1 + \cdots + X_K = n)。

それぞれのカテゴリーに入る(真の)確率をp1,,pKp_1, \dots, p_Kとするとp1++pK=1p_1 + \cdots + p_K=1である。

pip_iXi/nX_i/nで推定される。理論上想定される確率がπ1,,πK\pi_1, \dots, \pi_Kであるとするとき、観測データに基づいた確率分布が理論上想定される確率分布に等しいか否かを検定する問題は、次のように定式化される。

H0:p1=π1,,pK=πKH1:piπi (あるiに対して)\begin{align} H_0&: p_1 = \pi_1, \dots, p_K = \pi_K\\ H_1&: p_i \neq \pi_i \ (\text{ある}i\text{に対して}) \end{align}

これをカテゴリーに関するカイ2乗適合度検定(chi-square test of goodness of fit)という。

H0H_0が正しいとき、カテゴリーCiC_iに入る個数がn×πin \times \pi_iになり、これを理論値あるいは期待度数という。 観測データに基づいた確率分布と理論上想定される確率分布の差は、観測値と理論値の差の二乗

(X1nπ1)2,,(XKnπK)2(X_1 - n \pi_1)^2, \dots, (X_K - n \pi_K)^2

にもとづいて測ることができるので、ピアソンのカイ2乗検定統計量

Q(X,π)=i=1K(Xinπi)2nπiQ(\boldsymbol{X}, \boldsymbol{\pi}) = \sum^K_{i=1} \frac{(X_i - n\pi_i)^2}{n \pi_i}

を使って検定を行うことができる (ここでX=(X1,,XK),π=(π1,,πK)\boldsymbol{X}=(X_1, \dots, X_K), \boldsymbol{\pi}=(\pi_1, \dots, \pi_K))。

Q(X,π)Q(\boldsymbol{X}, \boldsymbol{\pi})H0H_0のもとでχK12\chi^2_{K-1}に収束するため、

Q(X,π)>χK1,α2    rejectQ(\boldsymbol{X}, \boldsymbol{\pi}) > \chi^2_{K-1, \alpha} \implies \text{reject}

とする検定を考えればよいことになる。ただしχK1,α2\chi^2_{K-1, \alpha}χK12\chi^2_{K-1}分布の上側100α100\alpha%点である。

Source
from scipy.stats import chi2

x = np.linspace(0, 20, 100)
dist = chi2(df=5)
y = dist.pdf(x)

fig, ax = plt.subplots()
ax.plot(x, y, label=r"$\chi^2_{K-1}$")
ax.axhline(color="gray", alpha=0.5)

alpha = 0.95
t = dist.ppf(alpha)
ax.text(t, -dist.pdf(t) * 0.7, r"$\chi^2_{K-1, \alpha}$", ha="center")
ax.fill_between(x=x[x > t], y1=y[x > t], alpha=.5)

ax.axis("off")
ax.legend()
fig.show()
<Figure size 432x288 with 1 Axes>
(命題) Q(X,π)Q(\boldsymbol{X}, \boldsymbol{\pi})H0H_0のもとでχK12\chi^2_{K-1}に収束する

(証明)

日本人1000人の血液型を調べたところ、次のようになったとする。

Source
import pandas as pd
from scipy.stats import multinomial, chi2
n = 1000
pi = np.array([.4, .2, .3, .1])  # 理論確率

# データの生成
m = multinomial(n=1, p=pi)
x = m.rvs(size=n, random_state=100).sum(axis=0)
d = pd.DataFrame([x], columns=["A", "B", "O", "AB"], index=["観測度数"])
d
Loading...

日本人における血液型の割合は、おおよそA型40%、B型20%、O型30%、AB型10%といわれている(一般社団法人日本血液製剤協会)。

これを理論確率π\boldsymbol{\pi}とすると、期待度数(理論値)n×πn \times \boldsymbol{\pi}は次のようになる

Source
d.loc["期待度数", :] = pi * n
d
Loading...

ピアソンのカイ2乗検定統計量

Q(X,π)=i=1K(Xinπi)2nπiQ(\boldsymbol{X}, \boldsymbol{\pi}) = \sum^K_{i=1} \frac{(X_i - n\pi_i)^2}{n \pi_i}

を計算すると次のようになる

Q = sum( (x - pi * n)**2 / (pi * n) )
Q
7.305833333333333
Source
from scipy.stats import chi2

K = len(d.columns)
df = K - 1

x = np.linspace(0, 15, 100)
dist = chi2(df=df)
y = dist.pdf(x)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.axhline(color="gray", alpha=0.5)
ax.set(title=r"$\chi^2_{K-1}$ and Q")

alpha = 0.95
t = dist.ppf(alpha)
ax.text(t, dist.pdf(t) * 1.1, r"$\chi^2_{K-1, \alpha}$")
ax.fill_between(x=x[x > t], y1=y[x > t], alpha=.5)

ax.vlines(Q, 0, dist.pdf(Q) * 1.4, color="tomato")
ax.text(Q, dist.pdf(Q) * 1.5, f"Q = {Q:.1f}", ha="center", color="tomato")

fig.show()
<Figure size 432x288 with 1 Axes>

独立性の検定

TODO

尤度比検定

尤度を用いた検定。

最尤推定量の漸近正規性

ワルド検定

帰無仮説のもとでの漸近分布が正規分布で近似できるとき、それを利用して

R={xXθ^θ/Var(θ^)zα/2}R = \{ x \in \mathcal{X} \mid |\hat{\theta} - \theta| / Var(\hat{\theta}) \geq z_{\alpha/2} \}

という棄却域を作る

スコア検定

スコア検定 (score test)はスコア関数

Sn(θ,X)=ddθlogfn(Xθ)S_n(\theta, \boldsymbol{X}) = \frac{d}{d \theta} \log f_n(\boldsymbol{X} \mid \theta)

に基づいた検定方式である。

E[Sn(θ,X)]=0,Var(Sn(θ,X))=In(θ)=nI1(θ)E\left[S_n(\theta, \boldsymbol{X})\right]=0, \operatorname{Var}\left(S_n(\theta, \boldsymbol{X})\right)=I_n(\theta)=n I_1(\theta)

となる。 Sn(θ,X)S_n(\theta, \boldsymbol{X}) は i.i.d. である確率変数の和になるので, θ\theta が真値のときの中心極限定理により

Sn(θ,X)/nI1(θ)dN(0,1)S_n(\theta, \boldsymbol{X}) / \sqrt{n I_1(\theta)} \rightarrow_d \mathcal{N}(0,1)

となる. H0:θ=θ0H_0: \theta=\theta_0 vs H1:θθ0H_1: \theta \neq \theta_0 に対して Sn(θ0,X)/nI(θ0)S_n\left(\theta_0, \boldsymbol{X}\right) / \sqrt{n I\left(\theta_0\right)} に基づいた 検定が考えられる

R={xX Sn(θ0,x)nI1(θ0)zα/2}R=\left\{ \boldsymbol{x} \in \mathcal{X} \left| \ \frac{ | S_n\left(\theta_0, \boldsymbol{x}\right) | } { \sqrt{n I_1\left(\theta_0\right)} } \geq z_{\alpha / 2} \right\} \right.

を棄却域とする検定をスコア検定という。