Kruskal-Wallis組み込みR関数と手動計算の間のわずかな不整合


9

私は次のことに戸惑い、答えを他の場所で掘り下げることができませんでした。

私はいくつかの統計を行いながらRを学習しようとしています。そして、演習として、組み込みのR関数の結果を、Rのように「手動」でも実行することによって、ダブルチェックしてみます。 、Kruskal-Wallis検定では、さまざまな結果が得られますが、その理由がわかりません。

たとえば、私は演習で配布された次のデータを見ています

activity <- c(2, 4, 3, 2, 3, 3, 4, 0, 4, 3, 4, 0, 0, 1, 3, 1, 2, 0, 3, 1, 0, 3, 4, 0, 1, 2, 2, 2, 3, 2) 
group <- c(rep("A", 11), rep("B", 10), rep("C", 9))
group <- factor(group)
data.raw <- data.frame(activity, group)

また、活動をグループごとに分析したい。まず、組み込みのR関数を使用してKruskal-Wallisテストを実行します

kruskal.test(activity ~ group, data = data.raw)

これはを返します。H=8.9056

再確認するために、次のコード(間違いなく無力)を使用して、Rで同じ「手動」を実行してみます

rank <- rank(activity)
data.rank <- data.frame(rank, group)
rank.sum <- aggregate(rank ~ group, data = data.rank, sum)

x <- rank.sum[1,2]^2 / 11 + rank.sum[2,2]^2 / 10 + rank.sum[3,2]^2 / 9
H <- (12 / (length(activity) * (length(activity) + 1))) * x - 3 * (length(activity) + 1)
H

これは、次の式を反映することを意味します。

H=12N(N+1)i=1g(Ri2ni)3(N+1)

ここで、は観測の総数、はグループの数、は番目のグループの観測の数、は番目のグループのランクの合計です。NgniiRii

そして今私はを取得します。これは私の混乱に加えて、問題の演習に対して与えられた答えでもあります。私はいくつかの異なるデータセットに対してこれを試しましたが、組み込み関数を使用して値が少し高くなる傾向があります。H=8.499H

自分が間違っていることや理解できないことを見つけるために検索を試みましたが、役に立ちませんでした。誰かが私が組み込みのkruskal.test関数が物事を綴ることによって私が得るものとは異なる値を返す理由を理解するのを助けることができますか?

回答:


12

kruskal.testこのWikipediaの記事(ポイント4)で説明さているように引き分けに修正を適用します。

前のポイントで説明したショートカット式を使用する場合の同点の修正は、Hを除算することによって行うことができます、...1i=1G(ti3ti)N3N

あなたのコードから続ける:

TIES <- table(activity)
H / (1 - sum(TIES^3 - TIES)/(length(activity)^3 - length(activity)))
#[1] 8.9056

R関数が何をしているのかは、コードを注意深く調べることでわかりますgetAnywhere(kruskal.test.default)


4
@MichaelChernickいいえ、違います。重要なのは、OPはテストが単純化されており、関係がない場合にのみ使用する必要があるということです。
Roland

4
@MichaelChernickスタックオーバーフローに適合しないとは言っていません。しかし、私はそれがCVにも等しく適合すると主張します。明らかに、OPがコードを共有しただけでなく、使用している数式も共有できれば、助かったでしょう。
Roland

3
@Michaelこのスレッドのステータスは簡単に呼び出すことができます。統計テストを理解しようとしているため、このスレッドの範囲内にあります。
whuber

2
コードに反映された式を含むように編集されました。初めてそうしようと思ったはずです。謝罪。
MSR 2017年

3
タイとミッドクラスを使用してクラスカル・ウォリスを取得するテストを行うR Hmiscパッケージspearman2関数も参照してくださいF。これはいくつかの方法よりも正確だと思います。
フランクハレル2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.