私は次のことに戸惑い、答えを他の場所で掘り下げることができませんでした。
私はいくつかの統計を行いながら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)
これはを返します。
再確認するために、次のコード(間違いなく無力)を使用して、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
これは、次の式を反映することを意味します。
ここで、は観測の総数、はグループの数、は番目のグループの観測の数、は番目のグループのランクの合計です。
そして今私はを取得します。これは私の混乱に加えて、問題の演習に対して与えられた答えでもあります。私はいくつかの異なるデータセットに対してこれを試しましたが、組み込み関数を使用して値が少し高くなる傾向があります。
自分が間違っていることや理解できないことを見つけるために検索を試みましたが、役に立ちませんでした。誰かが私が組み込みのkruskal.test
関数が物事を綴ることによって私が得るものとは異なる値を返す理由を理解するのを助けることができますか?