Saya bingung dengan yang berikut ini, dan saya belum bisa menggali jawabannya di tempat lain.
Saya mencoba mempelajari R sambil melakukan beberapa statistik, dan, sebagai latihan, saya mencoba memeriksa ulang hasil fungsi R bawaan dengan juga melakukan ini 'dengan tangan', seperti di R. , untuk tes Kruskal-Wallis saya terus mendapatkan hasil yang berbeda, dan saya tidak tahu mengapa.
Sebagai contoh, saya melihat data berikut yang diberikan dalam latihan
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)
Dan saya ingin menganalisis aktivitas berdasarkan kelompok. Pertama saya menjalankan tes Kruskal-Wallis menggunakan fungsi R built-in
kruskal.test(activity ~ group, data = data.raw)
Yang mengembalikan .
Untuk mengecek, saya mencoba melakukan hal yang sama 'dengan tangan' di R, dengan kode berikut (tidak diragukan lagi tak berdaya)
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
Yang dimaksudkan untuk mencerminkan rumus berikut:
Di mana adalah jumlah total pengamatan, adalah jumlah kelompok, adalah jumlah pengamatan dalam kelompok ke- , dan adalah jumlah peringkat dari kelompok ke- .g n i i R i i
Dan sekarang saya mendapatkan , yang, menambah kebingungan saya, juga merupakan jawaban yang diberikan untuk latihan tersebut. Saya sudah mencoba ini untuk beberapa set data yang berbeda, dan saya cenderung mendapatkan nilai yang sedikit lebih tinggi untuk menggunakan fungsi built-in.H
Saya sudah mencoba mencari tahu apa yang saya lakukan salah atau gagal untuk mengerti, tetapi tidak berhasil. Adakah yang bisa membantu saya memahami mengapa kruskal.test
fungsi inbuilt mengembalikan nilai yang berbeda dari yang saya dapatkan dengan mengeja semuanya?
sumber
Hmisc
paket Rspearman2
yang menggunakan midranks untuk pengikatan danF
tes untuk mendapatkan Kruskal-Wallis. Saya pikir ini lebih akurat daripada beberapa metode.