Pertanyaan
Skor tes dari tiga kelompok orang disimpan sebagai vektor terpisah dalam R.
set.seed(1)
group1 <- rnorm(100, mean = 75, sd = 10)
group2 <- rnorm(100, mean = 85, sd = 10)
group3 <- rnorm(100, mean = 95, sd = 10)
Saya ingin tahu apakah ada perbedaan signifikan dalam median antara kelompok-kelompok ini. Saya tahu bahwa saya bisa menguji kelompok 1 versus kelompok 2 menggunakan tes Wilcoxon, seperti itu.
wilcox.test(group1, group2)
Namun, ini membandingkan hanya dua grup sekaligus, dan saya ingin membandingkan ketiganya secara bersamaan. Saya ingin tes statistik yang menghasilkan nilai ap pada tingkat signifikansi 0,05. Bisakah seseorang tolong?
Sunting # 1 - Tes median Mood
Mengikuti jawaban yang disarankan pengguna Hibernating, saya mencoba tes median Mood.
median.test <- function(x, y){
z <- c(x, y)
g <- rep(1:2, c(length(x), length(y)))
m <- median(z)
fisher.test(z < m, g)$p.value
}
median.test(group1, group2)
Namun, pendekatan ini memungkinkan saya untuk menguji perbedaan yang signifikan antara median hanya dua kelompok sekaligus. Saya tidak yakin bagaimana menggunakannya untuk membandingkan median ketiganya secara bersamaan.
Sunting # 2 - Tes Kruskal-Wallis
Jawaban yang disarankan pengguna dmartin tampaknya kurang lebih seperti yang saya butuhkan, dan memungkinkan saya untuk menguji ketiga kelompok secara bersamaan.
kruskal.test(list(group1, group2, group3))
Edit # 3
Pengguna Greg Snow dengan senang hati mencatat dalam jawabannya bahwa tes Kruskal-Wallis sesuai selama itu membuat asumsi-asumsi ketat yang menjadikannya juga ujian cara.
sumber
median test
. Jawaban / komentar saya sendiri ada di sini .Jawaban:
Tes Kruskal-Wallis juga dapat digunakan, karena merupakan ANOVA non-parametrik. Selain itu, sering dianggap lebih kuat daripada tes median Mood . Ini dapat diimplementasikan dalam R menggunakan fungsi kruskal.test dalam paket statistik di R.
Untuk menanggapi hasil edit Anda, menafsirkan KW mirip dengan ANOVA satu arah. Nilai p signifikan berhubungan dengan menolak nol yang berarti ketiga berarti sama. Anda harus menggunakan tes tindak lanjut (sekali lagi, seperti ANOVA), untuk menjawab pertanyaan tentang grup tertentu. Ini biasanya mengikuti pertanyaan penelitian spesifik yang mungkin Anda miliki. Hanya dengan melihat parameter simulasi, ketiga kelompok harus berbeda secara signifikan satu sama lain jika Anda melakukan tes tindak lanjut (karena mereka semua 1 SD terpisah dengan N = 100).
sumber
Pertama, tes Wilcoxon (atau tes Mann-Whitney) bukan tes median (kecuali Anda membuat asumsi yang sangat ketat yang juga menjadikannya tes berarti). Dan untuk membandingkan lebih dari 2 kelompok, uji Wilcoxon dapat mengarah pada beberapa hasil paradoks (lihat Efron's Dice ).
Karena tes Wilcoxon hanyalah kasus khusus dari tes permutasi dan Anda secara khusus tertarik pada median, saya akan menyarankan tes permutasi pada median.
Pertama-tama pilih ukuran perbedaan, sesuatu seperti yang terbesar dari 3 median minus yang terkecil dari 3 (atau varians dari 3 median, atau MAD, dll).
Sekarang hitung stat Anda untuk data asli.
pool semua data dalam satu set kemudian secara acak mempartisi nilai menjadi 3 kelompok
ukuran yang sama seperti aslinya dan menghitung statistik yang sama.
ulangi berkali-kali (seperti 9998)
Bandingkan bagaimana statistik dari data nyata dibandingkan dengan distribusi semua statistik untuk pengujian Anda.
sumber
t.test
danaov
mungkin juga akan baik-baik saja.Wilcoxon sum-rank test
apakah Anda tidak keberatan untuk mengkonversi "Wilcox" ke nama itu?wilcox.test
). Bisakah Anda mengedit?Tes median Mood adalah tes nonparametrik yang digunakan untuk menguji kesetaraan median dari dua atau lebih populasi. Lihat di sini untuk bagian R dari pertanyaan Anda. Lihat juga pertanyaan terkait di sini . Juga dari sini :
Sunting: Untuk tiga grup, Anda dapat mempertimbangkan generalisasi sederhana kode R yang saya tautkan ke:
sumber
mood.medtest
dalam paket RVAideMemoire tampaknya menjadi tes biasa kecuali bahwa ia menggunakan uji pasti Fisher secara default untuk ukuran sampel yang lebih kecil. Themedian_test
fungsi dalam paket koin dapat memberikan tes asimtotik atau menggunakan Monte Carlo.Saya tahu ini terlambat, tetapi saya juga tidak bisa menemukan paket yang bagus untuk tes median Mood, jadi saya mengambilnya sendiri untuk membuat fungsi dalam R yang tampaknya melakukan trik.
Untuk pertanyaan OP, pertama-tama Anda akan menjalankan ini untuk membuat bingkai data baru untuk menyimpan nilai-nilai dari tiga vektor grup Anda dengan variabel "grup" yang cocok.
dan menjalankan fungsi untuk tes median Mood dengan
moods.median(df$value, df$group)
sumber