Apakah Wilcoxon rank-sum test adalah tes yang tepat untuk melihat apakah total donasi berbeda?


8

Latar Belakang:

Perangkat lunak saya meminta donasi opsional kepada pengguna dalam jumlah berapa pun. Saya membagi permintaan sumbangan tes di antara pengguna untuk menemukan cara terbaik untuk bertanya: 50% mendapatkan permintaan versi 1, 50% mendapatkan permintaan versi 2, dan kami melihat mana yang lebih baik.

Hampir semua pengguna memberikan $ 0, tetapi beberapa menyumbang. Hasilnya mungkin terlihat seperti ini:

         Number of users  Number of donations   Dollar amounts donated
GROUP A  10,000           10                    40,20,20,20,15,10,10,5,5,5
GROUP B  10,000           15                    50,20,10,10,10,10,10,10,5,5,5,5,5,5,5

Saya ingin tahu apakah satu kelompok adalah pemenang, atau apakah itu seri, atau jika kita perlu sampel yang lebih besar untuk memastikan. (Contoh ini, dibuat sederhana untuk diskusi, hampir pasti membutuhkan sampel yang lebih besar untuk mendapatkan hasil yang signifikan.)

Apa yang sudah saya ukur:

  1. Apakah satu kelompok memiliki jumlah sumbangan yang jauh lebih besar ? Berapa besar? Saya mengukur nilai p dan interval kepercayaan ini menggunakan alat ABBA Thumbtack , hanya menggunakan jumlah donasi dan jumlah pengguna, mengabaikan jumlah dolar. Metodologinya dijelaskan dalam "Apa statistik yang mendasarinya?" bagian dari tautan itu. (Itu di atas kepala saya, tapi saya percaya ini menghitung interval kepercayaan dengan mengambil perbedaan antara tingkat donasi sebagai variabel acak normal pada interval Agresti-Couli.)
  2. Apakah satu kelompok menyumbangkan jumlah total uang yang sangat berbeda ? Saya mengukur nilai p ini dengan melakukan tes permutasi: berulang-ulang mengocok semua subjek 2N menjadi 2 kelompok subjek N, mengukur perbedaan total uang antar grup setiap kali, dan menemukan proporsi pengocokan dengan perbedaan> = yang diamati perbedaan. (Saya percaya ini valid berdasarkan video Khan Academy ini melakukan hal yang sama untuk cracker, bukan dolar.)

Wilcox.test R:

Beberapa pertanyaan tentang wilcox.test()R:

  1. Jika saya wilcox.test(paired=FALSE)memasukkan tabel data di atas, apakah itu akan menjawab pertanyaan baru yang belum dijawab oleh alat saya di atas, memberi saya lebih banyak wawasan untuk memutuskan apakah akan terus menjalankan tes saya / menyatakan pemenang / menyatakan dasi?
  2. Jika demikian, pertanyaan persis apa yang akan dijawabnya?

Bisakah Anda menggambarkan dua hal yang sedang Anda lakukan dalam pertanyaan, daripada mengandalkan tautan? Yang kedua khususnya tautan ke video, yang saya, dan harapkan orang lain, tidak akan meluangkan waktu untuk menonton untuk mengetahui apa yang Anda minta.
Aaron meninggalkan Stack Overflow

1
Pertanyaan ini jelas tentang memahami bagaimana tes yang berbeda berhubungan dengan tujuan belajar. Ini hampir tidak memiliki koneksi ke pengkodean. Ini adalah topik di sini, & akan di luar topik di Stack Overflow .
gung - Reinstate Monica

@ Harun: selesai. Terima kasih untuk umpan baliknya. Saya takut dinding teks akan mencegah orang membaca pertanyaan di tempat pertama. Sulit untuk memecah menguji jawaban saya untuk mengoptimalkan jawaban di CrossValidated;)
Michael Gundlach

Jawaban:


7

Jika Anda menggunakan wilcox.test()argumen paired(perhatikan bahwa ini huruf kecil, dan Rsensitif huruf) disetel ke FALSE, Anda menjalankan uji Mann-WhitneyU . Ini adalah tes dominasi stokastik . Jika distribusinya sama, dan Anda memilih pengamatan dari setiap versi secara acak, pengamatan dari versi 2 akan memiliki kemungkinan 50% -50% lebih tinggi daripada pengamatan dari versi 1. Di sisi lain, nilai yang diambil dari versi 2 mungkin memiliki peluang lebih besar dari 50% untuk menjadi lebih besar dari (kurang dari) nilai dari versi 1. Ini adalah dominasi stokastik. Tidak ada yang dikatakan tentang seberapa besar atau lebih kecil, hanya saja itu lebih besar atau lebih kecil.

Itu tidak menurut saya cocok untuk tujuan Anda. Anda menginginkan total uang paling banyak, yang dapat dipahami sebagai donasi rata-rata terbesar kali jumlah pengguna. Mungkin saja, karena condong, satu versi dapat memiliki rata-rata / total terbesar, tetapi versi lainnya secara stokastik lebih besar. (Jika itu masalahnya, Anda ingin versi yang lama.) Karena inilah yang akhirnya Anda inginkan, tes yang khusus untuk aspek distribusi yang paling sesuai untuk Anda.

Saya menyadari bahwa data Anda tidak normal dari jauh, dan dengan demikian, uji- (yang mungkin merupakan apa yang kebanyakan orang pikirkan pertama kali untuk membandingkan dua kelompok), akan menjadi tidak pantas. Mengingat dua kelompok yang terus-menerus, tetapi tidak normal, kebanyakan orang mungkin juga secara otomatis pergi dengan Mann-Whitney. Dalam kasus Anda, saya akan pergi dengan tes permutasi, untuk alasan di atas. (Saya mengumpulkan ini adalah apa yang Anda lakukan, jika saya mengerti dengan benar.) Tes permutasi berlaku di sini, karena Anda secara acak menetapkan pengguna ke dua grup; oleh karena itu, mereka dapat ditukar. t

Untuk melakukan tes permutasi, cukup kocok indikator pengelompokan dan hitung rata-rata dan perbedaan antara rata-rata. Melakukan ini berkali-kali akan memungkinkan Anda untuk membuat distribusi sampling dari perbedaan antara rata-rata. Anda dapat membandingkan perbedaan yang diamati dengan distribusi sampling. Untuk tes dua sisi, ambil proporsi yang lebih kecil di luar perbedaan Anda dan kalikan dengan dua. Produk ini langsung dapat ditafsirkan sebagai nilai- . Berikut adalah contoh yang berfungsi dengan data Anda: hal

A            = c(rep(0, 9990), 40,20,20,20,15,10,10,5,5,5)
B            = c(rep(0, 9985), 50,20,10,10,10,10,10,10,5,5,5,5,5,5,5)
realized.dif = mean(B)-mean(A);  realized.dif  # [1] 0.0015

set.seed(6497)
donations = stack(list(A=A, B=B))
values    = donations$values
ind       = donations$ind
difs      = vector(length=1000)
for(i in 1:1000){
  ind     = sample(ind)
  difs[i] = mean(values[ind=="B"])-mean(values[ind=="A"])
}
difs = sort(difs)
mean(difs>=realized.dif)    # [1] 0.459  # a 1-tailed test, if Ha: B>A a-priori
mean(difs>=realized.dif)*2  # [1] 0.918  # a 2-tailed test

Mengenai pertanyaan studi pertama, yaitu, 'versi mana yang menghasilkan jumlah donasi lebih besar', sementara saya berikan bahwa semua orang menyukai ABBA , Anda dapat melakukannya Rjuga. Saya akan menggunakanz-test dari perbedaan dua proporsi. Dalam R, itu prop.test(). Berikut ini contoh menggunakan data Anda:

prop.test(rbind(c(10, 9990),
                c(15, 9985) ))
#  2-sample test for equality of proportions with continuity correction
# 
# data:  rbind(c(10, 9990), c(15, 9985))
# X-squared = 0.6408, df = 1, p-value = 0.4234
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#   -0.0015793448  0.0005793448
# sample estimates:
# prop 1 prop 2 
# 0.0010 0.0015 

Jawaban yang bagus, dan +2 jika saya bisa untuk tautan ABBA. :)
Aaron meninggalkan Stack Overflow

+1 Diskusi yang bagus, terutama tentang membandingkan cara. Perhatikan bahwa karena tidak ada sumbangan besar, contoh dalam pertanyaan memiliki distribusi sampling yang hampir normal. Jumlah donasi dengan nilai tertentu dalam grup A adalah Binomial dan, dengan akurasi tinggi, semua jumlah tersebut kira-kira independen. Uji-t harus bekerja dengan baik. Berikut adalah plot dari distribusi nol: b <- function(n) dbinom(0:n, n, 1/2); p <- apply(expand.grid(b(1), b(1), b(4), b(6), b(10)), 1, prod); n <- as.matrix(expand.grid(0:1, 0:1, 0:4, 0:6, 0:10)) %*% c(50,40,20,10,5); plot(dist <- aggregate(p, list(n), sum)).
whuber

1
Saya tidak kritis, tetapi inilah tujuan saya: dengan memeriksa beberapa donasi tertinggi, Anda dapat dengan cepat memutuskan apakah akan menggunakan uji-t atau tidak. Jika Anda tidak bisa, perbedaan rata-rata akan sangat tergantung pada beberapa outlier dan karenanya tidak akan signifikan. Pengamatan ini menyederhanakan analisis dan mereka juga menyarankan seseorang dapat mengandalkan perhitungan ukuran sampel berdasarkan teori normal untuk memperkirakan seberapa besar sampel akan dibutuhkan. Namun, yang lebih baik adalah menggunakan desain sampling berurutan.
whuber

1
@ Torvon untuk pengujian permutasi? Ada banyak, tapi saya ragu Anda membutuhkannya - ini adalah teknik yang cukup mapan & umum.
gung - Reinstate Monica

1
@ Torvon, alih-alih hanya menghitung perbedaan rata-rata & menyimpannya, jalankan MW U & simpan.
gung - Reinstate Monica

1

Jawaban @ gung benar. Tapi saya akan menambahkan bahwa karena data Anda mungkin miring, dengan ekor kanan yang besar, berarti mungkin tidak kuat dan karena itu mungkin bukan indeks "benar" untuk mewakili pusat distribusi Anda. Oleh karena itu, saya akan mencoba juga dengan solusi yang lebih kuat seperti median atau cara terpotong.


4
Salah satu poin terpenting @ gung adalah bahwa median dan rata-rata terpotong kemungkinan tidak relevan. (Lihat paragraf tentang "cocok untuk tujuan Anda.") Kami sangat peduli tentang sumbangan rata-rata. Jadi, meskipun solusi Anda yang kuat mungkin secara prosedural mudah digunakan, mendapatkan jawaban yang benar untuk pertanyaan yang salah mungkin sedikit membantu - atau bahkan lebih buruk.
whuber
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.