検定#

統計的仮説検定#

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

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

H0:θ=θ0 vs H1:θθ0

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

仮説検定方式#

標本空間Xを、H0

  • 棄却域(rejection region)R={xX|H0}

  • 受容域(acceptance region)A={xX|H0}

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

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

有意水準#

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

supθΘ0Pθ(XR)α

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

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

(例)

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

H0:μ=μ0 vs H1:μμ0

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

  • |X¯μ0|>CならばH0を棄却する

  • |X¯μ0|CならばH0を受容する

と書き換えることができる。この場合、|X¯μ0|が検定統計量となり、H0の棄却域は

R={xX | |X¯μ0|>C}

となる。

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

Pμ=μ0(|X¯μ0|>C)=α

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

Z=n(X¯μ0)/σとすると、帰無仮説μ=μ0のもとで標準正規分布に従うZN(0,1)ため、

TODO: 続きかく

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

正規母集団に関する検定#

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

母平均に関する検定#

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

両側検定H0:μ=μ0 vs H1:μμ0のとき

σ2が既知の場合#

検定統計量は標本平均X¯の標準化したもの

Z=X¯μσ/n

を使用する。

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

R={xX | |Z|>Zα/2}

言い換えると

|Z|>Zα/2H0を棄却|Z|Zα/2H0を受容

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

σ2が未知の場合#

母分散σ2を標本分散s2で置き換えたスチューデントのt統計量

t=X¯μs/n

を使用する。

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

|t|>tα/2(n1)reject|t|tα/2(n1)accept

とする。

多項分布に関する検定#

カイ2乗適合度検定#

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

n個のデータがK個のカテゴリーに分類され、それぞれX1,,XK個観測されたとする(X1++XK=n)。

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

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

H0:p1=π1,,pK=πKH1:piπi (あるiに対して)

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

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

(X1nπ1)2,,(XKnπK)2

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

Q(X,π)=i=1K(Xinπi)2nπi

を使って検定を行うことができる (ここでX=(X1,,XK),π=(π1,,πK))。

Q(X,π)H0のもとでχK12に収束するため、

Q(X,π)>χK1,α2reject

とする検定を考えればよいことになる。ただしχK1,α2χK12分布の上側100α%点である。

Hide code cell 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()
../../_images/137c6df4cd1b210cf20a602881f5db8cd154b71e5ef0e64c6c6974520630e6c0.png
(命題) Q(X,π)H0のもとでχK12に収束する

(証明)

#

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

Hide code cell 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
A B O AB
観測度数 371 200 337 92

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

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

Hide code cell source
d.loc["期待度数", :] = pi * n
d
A B O AB
観測度数 371.0 200.0 337.0 92.0
期待度数 400.0 200.0 300.0 100.0

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

Q(X,π)=i=1K(Xinπi)2nπi

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

Q = sum( (x - pi * n)**2 / (pi * n) )
Q
7.305833333333333
Hide code cell 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()
../../_images/09404898a24fcbd4508070177efc633f3910727b2e06b610dcc6732b4026a652.png

独立性の検定#

TODO

尤度比検定#

尤度を用いた検定。

最尤推定量の漸近正規性#

ワルド検定#

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

R={xX|θ^θ|/Var(θ^)zα/2}

という棄却域を作る

スコア検定#

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

Sn(θ,X)=ddθlogfn(Xθ)

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

E[Sn(θ,X)]=0,Var(Sn(θ,X))=In(θ)=nI1(θ)

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

Sn(θ,X)/nI1(θ)dN(0,1)

となる. H0:θ=θ0 vs H1:θθ0 に対して Sn(θ0,X)/nI(θ0) に基づいた 検定が考えられる

R={xX| |Sn(θ0,x)|nI1(θ0)zα/2}

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

参考文献#

信頼区間と検出力