データ解析
第八回「検定」鈴木 大慈
理学部情報科学科
西八号館 W707 号室
s-taiji@is.titech.ac.jp

1 / 34

今日の講義内容
正規性検定
２群の比較
t-検定
Wilcoxon の順位和検定

適合度検定
独立性検定
分散分析

2 / 34

構成

1

正規性検定

2２群の比較

3

χ2 検定

4分散分析

3 / 34

正規性検定使いドコロ：いろんな検定は変数が正規分布に従うと仮定するけれども，本当に正規分布？
→ 正規性検定

次の２つの検定を紹介

Shapiro-Wilk 検定
Kolmogorov-Smirnov 検定※ 正規性検定で棄却されなかったからといって，積極的にその分布が正規分布に従っているとは言いにくい．検定は積極的に棄却はするが，積極的に採択はしない．

4 / 34

正規性検定の前に
Q-Q プロット：標準正規分布における分位点 vs 経験的分位点(例えば n サンプル中 i 番目のサンプル x(i) は標準正規分布の i/n 分位点と観測値x(i) を対応させてプロットされる)

0−3−2−1

Sample Quantiles

12

Normal Q−Q Plot−2−1012

Theoretical Quantiles

対角線から離れていればいるほど正規分布から遠い．
これから紹介する方法はこの離れ具合を検定統計量としている．
5 / 34

順序統計量サンプル {Xi }ni=1 を並べえ変えたもの

X(1) ≤ X(2) ≤ · · · ≤ X(n)を順序統計量とよぶ．

順序統計量の分布: Xi ∼ P (i.i.d.) のとき，n ( )∑nP(X(k) ≤ x) =F (x)j (1 − F (x))n−j ,jj=k

ただし，F (x) は P の分布関数．

6 / 34

Shapiro-Wilk 検定

W = 本当の正規分布からの順序統計量の期待値とサンプルの順序統計量との相関（のようなもの）
値が小さければ正規性が棄却される．
> x <- rnorm(100)> shapiro.test(x)Shapiro-Wilk normality test
data: xW = 0.9926, p-value = 0.86
> shapiro.test(exp(x))
Shapiro-Wilk normality test
data: exp(x)W = 0.6118, p-value = 7.267e-15


7 / 34

Shapiro-Wilk 検定統計量
x(i) (i = 1, . . . , n) を順序統計量とする．x̄ = (x1 + · · · + xn )/n とする．
m = (m1 , . . . , mn )⊤ を標準正規分布の順序統計量の期待値とする．つまりX̃i ∼ N(0, 1) (i = 1, . . . , n) (i.i.d.) に対して mi = E[X̃(i) ]. また V をその分散共分散行列とする: Vi,j = E[(X̃(i) − mi )(X̃(j) − mj )].
(a1 , . . . , an ) をm⊤ V −1
(a1 , . . . , an ) = √m⊤ V −1 V −1 mとする．
このとき，

∑n
(ai x(i) )2
W = ∑n i=12
i=1 (xi − x̄)が統計量である．

8 / 34

Kolmogorov-Smirnov 検定
サンプル： {xi }ni=1 .
経験分布関数:Fn (x) =x より小さいサンプル xi の数.
np

もし，真の分布の分布関数が連続で F (x) であれば，supx |Fn (x) − F (x)| → 0 となる．

9 / 34

Kolmogorov-Smirnov 検定
サンプル： {xi }ni=1 .
経験分布関数:Fn (x) =x より小さいサンプル xi の数.
np

もし，真の分布の分布関数が連続で F (x) であれば，supx |Fn (x) − F (x)| → 0 となる．

さらに√P( n sup |Fn (x) − F (x)| ≤ t) →x√∞
2π ∑ −(2i−1)2 π2 /(8t 2 )e.
ti=1

導出は難しいので省略．
とにかく漸近分布が求まる．

9 / 34

Kolmogorov-Smirnov 検定の補足

F −1 (t) = inf{x | F (x) ≥ t} とする．

Theorem (Donsker の定理)
分布関数 F (x) が連続なとき，√Gn (t) = n(Fn (F −1 (t)) − F (F −1 (t))) (t ∈ [0, 1])とおくと，Gn はブラウン橋に（適切な空間で）分布収束する．
ここで，ブラウン橋とは，標準ブラウン運動 W (t) に対してW (t) − tW (1)(t ∈ [0, 1])で定義される確率過程である．

10 / 34

> x <- rnorm(100) # rnorm(10000)> plot(ecdf(x))> y <- sort(x)> lines(y,pnorm(y),lwd = 4,col="red")




0.8
0.6
Fn(x)
0.4
0.2
0.0

0.0

0.2

0.4

Fn(x)

0.6

0.8

1.0

ecdf(x)1.0

ecdf(x)−2−10xn = 100

12−4−2024xn = 1000011 / 34



> x <- rnorm(100) # rnorm(10000)> y <- sort(x)> z <- ecdf(y)(y) - pnorm(y) #経験分布関数と真の分布関数との差> plot(sqrt(100)*z,type=’l’) #plot(sqrt(10000)*z,type=’l’)sqrt(10000) * z
0.00.20.0−0.5−0.2sqrt(100) * z

0.50.41.0√n(Fn (x) − F (x)) をプロット
020

4060
Index

n = 10080

10002000

4000

6000

8000

10000

Index

n = 10000
12 / 34

Kolmogorov-Smirnov 検定を使ってみる
K-S 検定はあらゆる (連続な) 分布関数を帰無仮説にできる．
正規分布の場合は以下のとおり．
> x <- rnorm(100)> ks.test(x, "pnorm", mean=mean(x), sd=sqrt(var(x)))
One-sample Kolmogorov-Smirnov test
data: xD = 0.0678, p-value = 0.7482
alternative hypothesis: two-sided> y <- exp(x)> ks.test(y, "pnorm", mean=mean(y), sd=sqrt(var(y)))
One-sample Kolmogorov-Smirnov test
data: yD = 0.2449, p-value = 1.237e-05
alternative hypothesis: two-sided

13 / 34

構成

1

正規性検定

2

２群の比較

3

χ2 検定

4

分散分析

14 / 34２群の比較

t-検定 (パラメトリック検定)
２つの正規分布の平均値が異なるかを検定．
Wilcoxon の順位和検定 (ノンパラメトリック検定)
2 つの確率変数が相対的に大きいか小さいか．

ちなみにパラメトリック検定：分布が特定のモデルに含まれていると仮定して検定
ノンパラメトリック検定：パラメトリックモデルの仮定をしない検定
パラメトリックモデルの仮定が正しければパラメトリックの方が検出力が高い．
ノンパラメトリックのほうが仮定が少なくて済む分，保守的．

15 / 34

よくやる使い分け：
正規性検定を通過→ t-検定
正規性検定で棄却→ Wilcoxon 検定

16 / 34t-検定
２つの分布が正規分布に従っている時に，その平均値が等しいかどうかを検定．
(正規分布を仮定しているのでパラメトリック検定)
帰無仮説: ２群は平均が等しく分散も等しい正規分布.

Xi ∼ N(µ, σ 2 ) (i = 1, . . . , n1 ),(1)

Yi ∼ N(µ, σ ) (i = 1, . . . , n2 )(2)2

∑nV :=2 ∑n2i=1 (Xi −X̄ ) +i=1 (Yi −Ȳ )n1 +n2.

プールされた不偏分散X̄ − Ȳt=√V ( n11 + n12 )は自由度 n1 + n2 − 2 の t-分布に従う．
|t| ≥ tα の時に等平均であることを棄却 (両側検定)．
※ ２つの正規分布の分散が異なる場合はウェルチの t 検定を用いる．ここでは省略．等分散性の検定は F 検定を使う．
17 / 34

t-検定を使う
平均が等しい時> x <- rnorm(100)> y <- rnorm(100)> t.test(x,y)
Welch Two Sample t-test

data: x and yt = 0.255, df = 195.453, p-value = 0.799
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:-0.2377692 0.3083930
sample estimates:
mean of x mean of y
0.04628813 0.01097624
R version 3.1.0 では Weltch の t 検定がデフォルト．
18 / 34

t-検定を使う
平均が等しくない時．
> x <- rnorm(100)> y <- rnorm(100) + 1> t.test(x,y)
Welch Two Sample t-test

data: x and yt = -5.1183, df = 197.983, p-value = 7.273e-07
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:-1.0747345 -0.4769039
sample estimates:
mean of x mean of y0.1717119 0.9475311
t.test(x,y,var.equal=T) とすれば分散が等しい場合．(Student t-検定)
19 / 34

Wilcoxon の順位和検定
２つの確率変数（正規分布とは限らない）の” 大きさ” が等しいかどうかを検定．
(特に分布型を仮定していないのでノンパラメトリック検定)
1

第一群より X1 , . . . , Xm ，第二群より Y1 , . . . , Yn を得る．

2

２つの列を一列に並べる: X1 , . . . , Xm , Y1 , . . . , Yn .

34

これを小さい順に並べて，Yi の順番を Ri とする．
∑nW = i=1 Ri を計算→ Wilcoxon の順位和検定．

W が大きければ，相対的に Y の分布のほうが大きいことになる．
帰無仮説が正しい時，正規分布で近似できる (Mann-Whitney の U-統計量)．

２つの分布が「等しいか」どうかのノンパラメトリック検定はKolmogorov-Smirnov 検定などがある．

20 / 34

Wilcoxon の順位和検定統計量の漸近分布
W
N = n + m とし， N+1を考える．
WF (x) := P(X ≤ x), G− (y ) := P(Y < y ) とすると， N+1は漸近的にŴ = −n ∑m∑(G− (Xi ) − E[G− (Xi )]) +(F (Yi ) − E[F (Yi )])
N
N
mni=1

i=1

mnn(n + 1)+P(X ≤ Y ) +N2Nと分布が等しいことが知られている．

X と Y の分布関数が同一の連続な分布関数 F である時，W /(N + 1) は平均が n/2 で分散が mn/(12(N + 1))．
(U-統計量の漸近正規性より) W /(N + 1) の分布はこの平均・分散を持つ正規分布で近似できる．
Y の方が X より大きめの値をとりやすい場合（G が正の側によっている場合）は順位和検定統計量は大きめの値をとる．
21 / 34

なお，

W =m ∑n∑i=1 j=1

1{Xi ≤ Yj } +n(n + 1)2である．これの第一項目は U-統計量とよばれる形になっている．

22 / 34

Wilcoxon の順位和検定を使う

中央値の等しい指数分布> x <- rexp(100)> y <- rexp(100)> wilcox.test(x,y)
Wilcoxon rank sum test with continuity correction
data: x and yW = 5136, p-value = 0.7406
alternative hypothesis: true location shift is not equal to 023 / 34

Wilcoxon の順位和検定を使う

中央値の異なる指数分布> x <- rexp(100)> y <- rexp(100,rate = 3)
> wilcox.test(x,y)
Wilcoxon rank sum test with continuity correction
data: x and y
W = 8103, p-value = 3.439e-14
alternative hypothesis: true location shift is not equal to 024 / 34

構成

1

正規性検定

2

２群の比較

3

χ2 検定

4

分散分析

25 / 34

適合度検定χ2 検定
すべての目が等しい確率のサイコロの検定:
chisq.test(c(8, 12, 10, 9, 5, 6))(帰無仮説：すべての目が出る確率が等しい)

p を指定して，サイコロの眼の出る確率を検定:
chisq.test(c(20,8,5,2), p=c(4, 3, 2, 1)/10)(帰無仮説：それぞれの目がでる確率が 4/10, 3/10, 2/10, 1/10 である)
帰無仮説 (P(X = i) = πi (i = 1, . . . , k)) のもと
k∑(ni − nπi )2i=1nπiは漸近的に自由度 (k − 1) のカイ二乗分布に従う．ただし，ni は i 番目のカテゴ
リが観測された数．
26 / 34

独立性検定要因が２つある．
要因１の水準 i がでる確率=pi , 要因２の水準 j がでる確率=qj .
帰無仮説：要因１の水準が i かつ要因２の水準が j である確率=pi × qj .

B1
B2
帰無仮説のもとA1n1,1n2,1n.,1A2n1,2n2,2n.,2独立！

n1,.
n2,.
n.,.

n nr ∑c∑( i,.n.,..,j − ni,j )2i=1 j=1ni,. n.,jn.,.

は漸近的に自由度 (r − 1)(c − 1) の χ2 分布に従う．

27 / 34χ2 独立性検定の使い方
A 工場
B 工場

良品
19796

不良品
712





> x <- matrix(c(197,96,7,12),nrow=2)> chisq.test(x)Pearson’s Chi-squared test with Yates’ continuity correcti
data: xX-squared = 6.0015, df = 1, p-value = 0.01429
→独立性は棄却※ R の chisq.test は Yates の補正がかかっているので，前のページの式とはちょっと異なる．
correct = FALSE を指定すれば補正は切れる．

28 / 34

構成

1

正規性検定

2２群の比較

3

χ2 検定

4分散分析

29 / 34

分散分析
一元分散分析：A1 :Y1,1 , . . . , Y1,n1 ∼ N(µ1 , σ 2 )A2 :Y2,1 , . . . , Y2,n2 ∼ N(µ2 , σ 2 )..
.
Ar :Yr ,1 , . . . , Yr ,nr ∼ N(µr , σ 2 )帰無仮説：µ1 = µ2 = · · · = µr .
Yij = µ + ai + ϵij
として，ai = 0 (∀i) かどうかの検定ともみなせる．
→ 線形回帰．

30 / 34

二元分散分析
二元分散分析：Yijk = µ + ai + bj + γij + ϵijk
帰無仮説：
ai = 0 (∀i) → 要因 A の主効果
bj = 0 (∀j) → 要因 B の主効果
γij = 0 (∀i, j) → 交互作用

31 / 34

分散分析を実行する

(fm <- lm(wear ~ material+boy,data=boxshoes))(av <- anova(fm))

これだけで OK.



交互作用も入れたければ(fm <- lm(wear ~ (material+boy)^2,data=boxshoes))のようにする．

32 / 34

分散分析表の見方Analysis of Variance Table

Response: wear
Df Sum Sq Mean Sq F value
Pr(>F)
material
10.841 0.8405 11.215 0.008539 **boy
9 110.491 12.2767 163.811 6.871e-09 ***Residuals 90.675 0.0749--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1
1

左から自由度（Degree of freedom）, 平方和 (主効果)， 平均平方和 (平方和を自由度で割ったもの)，F 値, p-値
行は要因を表す．この場合，material と boy という要因がある． Residuals はこの２つでは説明できない部分．

p-値の横に*が付いている要因は有意に効果があることを表している．
33 / 34

講義情報ページ
http://www.is.titech.ac.jp/~s-taiji/lecture/dataanalysis/dataanalysis.html

34 / 34