Tes Friedman vs uji Wilcoxon

11

Saya mencoba menilai kinerja algoritma klasifikasi pembelajaran mesin yang diawasi. Pengamatan jatuh ke dalam kelas nominal (2 untuk saat ini, namun saya ingin menggeneralisasi ini ke masalah multi-kelas), yang diambil dari populasi 99 subjek.

Salah satu pertanyaan yang ingin saya jawab adalah, jika algoritme menunjukkan perbedaan signifikan dalam akurasi klasifikasi antara kelas input. Untuk kasus klasifikasi biner saya membandingkan akurasi rata-rata antara kelas-kelas di seluruh mata pelajaran menggunakan uji Wilcoxon berpasangan (karena distribusi yang mendasari adalah tidak normal). Untuk menggeneralisasi prosedur ini ke masalah multi-kelas saya berniat untuk menggunakan tes Friedman .

Namun, nilai p yang diperoleh oleh kedua prosedur dalam kasus biner IV sangat bervariasi, dengan uji Wilcoxon menghasilkan p < .001sedangkan p = .25untuk uji Friedman. Ini membuat saya percaya bahwa saya memiliki kesalahpahaman mendasar tentang struktur tes Friedman.

Apakah tidak tepat untuk menggunakan uji Friedman dalam kasus ini untuk membandingkan hasil pengukuran akurasi berulang di semua mata pelajaran?

Kode R saya untuk mendapatkan hasil tersebut ( subjectadalah pengidentifikasi subjek, accketepatan DV dan expectedkelas pengamatan IV):

> head(subject.accuracy, n=10)
   subject expected        acc
1       10     none 0.97826087
2       10     high 0.55319149
3      101     none 1.00000000
4      101     high 0.68085106
5      103     none 0.97826087
6      103     high 1.00000000
7      104     none 1.00000000
8      104     high 0.08510638
9      105     none 0.95121951
10     105     high 1.00000000
> ddply(subject.accuracy, .(expected), summarise, mean.acc = mean(acc), se.acc = sd(acc)/sqrt(length(acc)))
  expected  mean.acc     se.acc
1     none 0.9750619 0.00317064
2     high 0.7571259 0.03491149
> wilcox.test(acc ~ expected, subject.accuracy, paired=T)

    Wilcoxon signed rank test with continuity correction

data:  acc by expected
V = 3125.5, p-value = 0.0003101
alternative hypothesis: true location shift is not equal to 0

> friedman.test(acc ~ expected | subject, subject.accuracy)

    Friedman rank sum test

data:  acc and expected and subject
Friedman chi-squared = 1.3011, df = 1, p-value = 0.254
AdrianoKF
sumber
Saya tidak yakin bahwa panggilan Anda untuk wilcox.testmelakukan tes peringkat yang ditandatangani membandingkan keakuratan dalam dua kondisi, karena Anda tidak pernah memberi tahu variabel pasangan. Paling tidak ini adalah cara yang tidak aman untuk menjalankan tes, karena ini bergantung pada urutan baris dalam data input.
Aniko

Jawaban:

11

Tes Friedman bukan perpanjangan dari uji Wilcoxon, jadi ketika Anda hanya memiliki 2 sampel terkait, itu tidak sama dengan uji peringkat bertanda Wilcoxon . Yang terakhir menjelaskan besarnya perbedaan dalam suatu kasus (dan kemudian mengurutkannya dalam kasus), sedangkan Friedman hanya peringkat dalam kasus (dan tidak pernah di seluruh kasus): itu kurang sensitif.

Friedman sebenarnya hampir perpanjangan uji tanda . Dengan 2 sampel, nilai-p mereka sangat dekat, dengan Friedman sedikit lebih konservatif (dua tes ini memperlakukan ikatan dengan cara yang agak berbeda). Perbedaan kecil ini dengan cepat menghilang ketika ukuran sampel tumbuh. Jadi, untuk dua sampel terkait kedua tes ini benar-benar alternatif rekan.

Tes yang setara dengan Wilcoxon - dalam arti yang sama dengan tanda tangan Friedman - tidak terlalu dikenal dengan uji Quade , yang disebutkan sebagai contoh di sini: http://www.itl.nist.gov/div898/software/dataplot/refman1/ auxillar / friedman.htm .

ttnphns
sumber