クラスカル・ウォリス検定

Rにてクラスカル・ウォリス検定 (Kruskal-Wallis one-way analysis of variance) を行う。アメリカの数学者William Henry Kruskalと同じくアメリカの経済学者であるWilson Allen Wallisによって開発された。クラスカル・ウォリス検定はノンパラメトリックにおける一元配置分散分析を行う検定法である。すなわち、3群以上における代表値の差を検定する。一元配置分散分析であるので、どのデータ間に差があるのか、また、いくつのデータ間に差があるのか等の情報は得られない。本検定法でも他のノンパラメトリック検定法と同様、データを順位に置き換えて扱う。また、分布の代表値には平均ではなく、中央値を用いる。

検定対象の各群の標本数は一致しなくて良い。以下のデータX、YおよびZの3群間の代表値に差があるかどうかを検定する。帰無仮説 (H0) は3群間の代表値に差がないことである。有意水準5%にて検定する。

データX2.9, 3.0, 2.5, 2.6, 3.2, 3.2, 2.5, 4.4
データY3.8, 2.7, 4.0, 2.4
データZ1.8, 2.4, 2.5, 2.2, 2.0, 3.1

Rを起動させ、以下のコマンドにて、上のデータXおよびYをそれぞれ変数"x"および"y"、"z"に格納する。

1|$x=c(2.9, 3.0, 2.5, 2.6, 3.2, 3.2, 2.5, 4.4)
2|$y=c(3.8, 2.7, 4.0, 2.4)
3|$z=c(1.8, 2.4, 2.5, 2.2, 2.0, 3.1)

クラスカル・ウォリス検定はコマンド"kruskal.test"にて実行する。この関数はRにデフォルトでインストールされているパッケージに含まれている。検定は、最も簡単には、以下のようにコマンドを打つ。

1|$kruskal.test(list(x,y,z))

        Kruskal-Wallis rank sum test

data:  list(x, y, z) 
Kruskal-Wallis chi-squared = 6.2044, df = 2, p-value = 0.04495

以上の結果では、p値が"0.04495"となっており、有意水準を5%で帰無仮説が棄却され、データX、YおよびZの3群の代表値に差がないとはいえないことが示された。統計量Tは"6.2044"、自由度は2である。この統計量は自由度2のカイ二乗分布に従うことが知られている。

また、上では変数x、yおよびzのリストをコマンド"kruskal.test"の入力としたが、ベクトルと各データのサンプルサイズを記述した文字列ベクトルを入力としても良い。以下では、"factor(rep(1:3,c(8,4,6)))"にて文字列ベクトルを作成している。各データのサンプルサイズ"8"、"4"および"6"を指定し、各データに1から3のグループ名を付けたということを意味する。

1|$kruskal.test(c(x,y,z),factor(rep(1:3,c(8,4,6))))

        Kruskal-Wallis rank sum test

data:  c(x, y, z) and factor(rep(1:3, c(8, 4, 6))) 
Kruskal-Wallis chi-squared = 6.2044, df = 2, p-value = 0.04495

当然ながら結果は上と同様となる。主に用いるオプションは以下の3つである。

OptionDescription
x検定対象の読み込むデータの指定 (必須)。リストまたはベクトル形式。
gデータをリストとして読み込んだ場合は不要。ベクトルとして読み込んだ場合は、そのベクトルのグループを規定するベクトルまたは文字列ベクトルを指定。
formula分散分析等と同様に、従属変数と独立変数をあらわすベクトルと因子を '(ベクトル ~ 因子)' の形式で読み込める。
このエントリーをはてなブックマークに追加

Site search

ページのトップへ戻る