カイ二乗検定

情報環境科学C・第 13 回 (2012/01/18)
カイ二乗検定
カイ二乗適合度検定
• カテゴリーごとの観測度数:O1 , . . . , Ok (Oj : 第 j カテゴリーに属する観測数)
• 帰無仮説 H0 : 理論比率 p1 , . . . , pk に従う (p1 + · · · + pk = 1).
∑
∑
– 期待度数:Ej = pj n (j = 1, . . . , k) (n = kj=1 Oj = kj=1 Ej )
k
∑
(Oj − Ej )2
(H0 のもとで近似的に X 2 ∼ χ2k−1 )
• 検定統計量:X =
Ej
2
j=1
独立性・同等性のカイ二乗検定
• r × c 分割表:観測度数
···
···
Bc
O1c
..
.
合計
A1
..
.
B1
O11
..
.
Ar
合計
Or1
nB1
···
···
Orc
nBc
nAr
n
nA1
..
.
nAi = Oi1 + · · · + Oic (i = 1, . . . , r)
nBj = O1j + · · · + Orj (j = 1, . . . , c)
∑
∑
n = ri=1 nAi = cj=1 nBj
• 帰無仮説 H0 : 因子 A, B は独立である.
(A1 , . . . , Ar の各水準について B1 , . . . , Bc の生起比率は等しい)
nAi nBj
– 期待度数:Eij =
(i = 1, . . . , r; j = 1, . . . , c)
n
∑ (Oij − Eij )2
(H0 のもとで近似的に X 2 ∼ χ2(r−1)(c−1) )
• 検定統計量:X 2 =
Eij
i,j
– 一部のセルの度数 Oij が非常に小さい場合,カイ二乗近似は適切でない.
このような場合には Fisher の正確検定法を用いるとよい.
• 2×2分割表の場合
A1
A2
合計
B1
O11
O21
nB1
B2
O12
O22
nB2
合計
nA1
nA2
n
n(O11 O22 − O12 O21 )2
(H0 のもとで近似的に X 2 ∼ χ21 )
nA1 nA2 nB1 nB2
前回取り上げた比率の検定と同等である (Z02 = X 2 ).
– 検定統計量:X 2 =
– Yates の連続補正統計量:
∑ (|Oij − Eij | − 1/2)2
n(|O11 O22 − O12 O21 | − n/2)2
XC2 =
=
Eij
nA1 nA2 nB1 nB2
i,j
例題
(1) Mendel によるエンドウ豆の交配実験で,4種の表現型に対する観測数が次表のよう
に得られた.Mendel の法則に従えば,4種の表現型が 9 : 3 : 3 : 1 の割合で現れる
はずである.この法則に従っているかどうかを検定しなさい.
丸い,黄色
しわ,黄色
丸い,緑色
しわ,緑色
合計
315
101
108
32
556
(出典)Bickel, P. J. & Doksum, K. A. (2001). Mathematical Statistics: Basic Ideas and Selected
Topics, Vol.1. Prentice Hall.
(2) 次表は ABO 式血液型別の人数のデータで,抗原 A, B の有無により類別したもの
である.
「抗原 A, B は独立である」という仮説を検定しなさい.
抗原 B
なし
あり
抗原 A
なし
あり
計
(O) 202
(A) 179
381
(B) 35
(AB) 6
41
計
237
185
422
(出典)Davison, A. C. (2003). Statistical Models. Cambridge University Press.
解答例
9 3 3 1
(1) 帰無仮説 H0 : (p1 , p2 , p3 , p4 ) = ( 16
, 16 , 16 , 16 ) のもとで,各表現型に対する期待度数
の値は,順に 312.75, 104.25, 104.25, 34.75 である.よって,検定統計量の値は
(315 − 312.75)2 (101 − 104.25)2 (108 − 104.25)2 (32 − 34.75)2
+
+
+
= 0.470
312.75
104.25
104.25
34.75
となる.自由度 4 − 1 = 3 のカイ二乗分布に基づく p 値は Pr(X 2 > 0.470) = 0.9254
であるから,実験結果は理論比率に従っていると言ってよい.
X2 =
(2) 「抗原 A, B が独立である」という仮説のもとで,各血液型の期待度数の値は
(O)
237·381
422
= 213.97, (A)
185·381
422
= 167.03, (B)
237·41
422
= 23.03, (AB)
185·41
422
= 17.97
であり,検定統計量の値は X 2 = 15.732 (XC2 = 14.45) となる.自由度 1 のカイ二
乗分布に基づく p 値は 0.0001 未満であり,独立性の仮説は強く棄却される.
課題 スイートピーの交配実験で,4種の形態をもつ第2代交配種が次表のように観測さ
れた.Mendel の法則 (9:3:3:1 の割合で出現) に従っているかどうかを検定しなさい.
紫で長形
紫で丸形
赤で長形
赤で丸形
合計
177
15
15
49
256
(出典)Brown & Hollander (1977). Statistics: A Biomedical Introduction. Wiley.
情報環境科学C・第 13 回 (2012/01/18)
例題の実行例
(1) 期待度数,検定統計量などの値を手計算で求めてみる.
✓
✏
> mendel.O <- c(315,101,108,32)
# 観測度数
> mendel.p <- c(9/16,3/16,3/16,1/16)
# 理論比率(帰無仮説)
> mendel.E <- sum(mendel.O)*mendel.p
# 期待度数の計算
> mendel.E
[1] 312.75 104.25 104.25 34.75
> mendel.X2 <- sum((mendel.O-mendel.E)^2/mendel.E)
> mendel.X2; 1-pchisq(mendel.X2,df=3)
# 検定統計量, p 値
[1] 0.470024
[1] 0.9254259
✒
関数 chisq.test を利用する.手計算での結果に一致する.
✓
✑
✏
> chisq.test(mendel.O,p=mendel.p)
Chi-squared test for given probabilities
data: mendel.O
X-squared = 0.47, df = 3, p-value = 0.9254
✒
✑
(2) 期待度数,検定統計量などの値を手計算で求めてみる.
行・列合計は関数 apply を用いると便利である.行合計 btype.rsum(列ベクトル)と列合計
t(btype.csum)(行ベクトル)の積を総度数 sum(btype.O) で割ると,期待度数が求まる.
✓
>
>
>
>
>
btype.O <- matrix(c(202,35,179,6),2,2,byrow=T)
btype.rsum <- apply(btype.O,1,sum)
# 行合計
btype.csum <- apply(btype.O,2,sum)
# 列合計
btype.E <- (btype.rsum %*% t(btype.csum))/sum(btype.O)
btype.E
[,1]
[,2]
[1,] 213.9739 23.02607
[2,] 167.0261 17.97393
> btype.X2 <- sum((btype.O-btype.E)^2/btype.E)
> btype.X2; 1-pchisq(btype.X2,df=1) # 検定統計量,p 値
[1] 15.73193
[1] 7.298157e-05
✏
# 期待度数の計算
✒
✑
関数 chisq.test を利用する.引数 correct=TRUE を付けた場合(連続補正なし),上記
の手計算での結果に一致する.デフォルトでは Yates の連続補正統計量が用いられる.
✓
✏
> chisq.test(btype.O,correct=FALSE)
(中略)
X-squared = 15.7319, df = 1, p-value = 7.298e-05
> chisq.test(btype.O)
Pearson’s Chi-squared test with Yates’ continuity correction
data: btype.O
X-squared = 14.4455, df = 1, p-value = 0.0001443
✒
✑
今週の R 関数 各関数の詳しい使い方はオンラインヘルプなどを参照のこと.
下線は省略したときの値を表す(バージョンにより異なることもある).
• カイ二乗検定
chisq.test(x, correct, p, ...)
引数
– x : 観測度数(適合度検定の場合はベクトル,分割表解析の場合は行列)
– correct : Yates の連続補正を行うかどうかを指定する(分割表解析の場合).
correct=TRUE : Yates の連続補正を行う.
correct=FALSE : Yates の連続補正を行わない.
– p : 帰無仮説の比率(適合度検定の場合:和が1になるように指定する)
出力(主なもの)
– statistic : カイ二乗統計量の値
– parameter : 自由度
– p.value : p 値(カイ二乗分布の上側確率)
• 分割表解析(Fisher の正確検定法)
※カイ二乗近似が適切でない場合に用いる.
fisher.test(x, alternative, ...)
引数
– x : 観測度数(行列)
– alternative : 対立仮説の形を指定(2×2分割表の場合のみ).
帰無仮説 H0 : ϕ = 1(ϕ = p12 p21 /p11 p22 : オッズ比)
alternative="two.sided" : 両側 (H1 : ϕ ̸= 1)
alternative="greater" : 左側 (H1 : ϕ < 1)
alternative="less"
: 右側 (H1 : ϕ > 1)
• その他
pchisq(q,df,...) : カイ二乗分布の累積分布関数の値(下側確率)
(上側確率を求めるには 1-pchisq(...) とすればよい)
– df: 自由度(省略不可)
apply(X,1,sum) : 行ごとの和を求める(X: 行列)
apply(X,2,sum) : 列ごとの和を求める