logo
生物科学研究所 井口研究室
Laboratory of Biology, Okaya, Nagano, Japan
Home

カイ二乗検定と Kruskal-Wallis 検定は同様な検定である

井口豊(生物科学研究所,長野県岡谷市)
最終更新: 2022 年 12 月 15 日

1. はじめに

ノンパラメトリック検定の中でも,カイ二乗検定と Kruskal-Wallis 検定は良く知られた検定法である。一般的には,前者は母比率の差の検定であり,後者は平均順位の検定と言われる。ただし後者は,中央値検定であるかのような誤解があるので,その点は注意が必要である。

このように両者は,全く異なる目的の検定であるかのように説明されるが,実際には,似た者同士なのである。

例えば, A, B, C の 3 群に,はい,いいえ,という二件法アンケートを実施して,その結果をまとめたクロス集計表データ(表 1)を考えて見る。

表 1. 3 群のはい,いいえクロス集計
ABC
はい233514
いいえ251836

単純に考えると,はい・いいえの比率を比較する検定として,カイ二乗検定が考えられる。

しかしながら,はい・いいえは二値データであり,ダミー変数 0, 1 としても扱え,そうすると,順序尺度(順位データ)とも考えられ,そうすると, Kruskal-Wallis 検定も適用できるのである。

ここでは, R を使い,シミュレーションでカイ二乗検定と Kruskal-Wallis 検定の p 値を比較してみた。

なお,Kruskal-Wallis 検定は,通常,近似検定で計算されるので,各群の標本サイズ(サンプルサイズ)が小さいと,正確な結果が得られないので注意しよう。

2. カイ二乗検定と Kruskal-Wallis 検定の p 値の変化

データは 3 群(サンプル数 3)で,それぞれセルのサンプルサイズ を 15 から 40 で変化させて,両検定の p 値を比較した。

以下が, R スクリプトである。


#############
k<- 1e+2 # 標本取り出し反復回数

p<- replicate(k, {
   # 度数データ
   x<- sample(15:40, size = 6, replace = T)

   # 群分け
   group<- factor(rep(
      1:3, 
      c(sum(x[1:2]), sum(x[3:4]), sum(x[5:6]))
      ))
   
   # 群内順位
   d<- factor(rep(rep(1:2, 3), x))

   c(
   # カイ二乗検定
   chisq.test(
     matrix(x, ncol = 3),
     correct = FALSE)$p.value,

   # Kruskal-Wallis 検定
   kruskal.test(d ~ group)$p.value
   )
})

par(oma = c(3, 3, 2, 2))

# カイ二乗検定と Kruskal-Wallis 検定 p 値
plot(
  p[1, ], p[2, ],
  xlab = "Chi-square test p-value",
  ylab = "Kruskal-Wallis test p-value",
  cex.lab  = 1.2,
  cex.axis = 1.0
)

abline(0, 1, col = "red")

################

結果は,次の図 1 のとおりである。

カイ二乗検定と Kruskal-Wallis 検定 p 値

図 1. p 値の比較: カイ二乗検定と Kruskal-Wallis 検定

カイ二乗検定と Kruskal-Wallis 検定の p 値が,ほぼ一致することが分かる。両者は,比率の検定でもあり,順位の検定でもあり,その意味で二元性を持っていると言える。

関連サイト

Home