実装関連事項

各種プログラミング言語の基本的な書き方やソフトウェア等の使用方法について.

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

p値の計算

検定対象の各群のサンプルサイズは一致しなくて良い.以下のデータ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をそれぞれ変数 vx および vy,vz に格納する.

$ vx=c(2.9, 3.0, 2.5, 2.6, 3.2, 3.2, 2.5, 4.4)
$ vy=c(3.8, 2.7, 4.0, 2.4)
$ vz=c(1.8, 2.4, 2.5, 2.2, 2.0, 3.1)

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

$ kruskal.test(x=list(vx,vy,vz))

これを実行した結果は以下のようになる.

 
        Kruskal-Wallis rank sum test

data:  list(vx, vy, vz)
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のカイ二乗分布に従うことが知られている.

別の入力方法によるp値の計算

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

$ kruskal.test(x=c(vx,vy,vz),g=factor(rep(1:3,c(8,4,6))))

これを実行した結果は以下のようになる.当然ながら結果は上と同様となる.

 
        Kruskal-Wallis rank sum test

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

オプション一覧

主に用いるオプションは以下の3つである.

オプション詳細
x検定対象の読み込むデータの指定 (必須).リストまたはベクトル形式.
gデータをリストとして読み込んだ場合は不要.ベクトルとして読み込んだ場合は,そのベクトルのグループを規定するベクトルまたは文字列ベクトルを指定.
formula分散分析等と同様に,従属変数と独立変数をあらわすベクトルと因子を (ベクトル ~ 因子) の形式で読み込める.
Hatena Google+