Penjelasan intuitif mengapa prosedur FDR Benjamini-Hochberg bekerja?

14

Apakah ada cara sederhana untuk menjelaskan mengapa prosedur Benjamini dan Hochberg (1995) benar-benar mengendalikan laju penemuan palsu (FDR)? Prosedur ini sangat elegan dan ringkas, namun bukti mengapa itu bekerja di bawah independensi (muncul dalam lampiran makalah 1995 mereka ) tidak sangat mudah diakses.

Trisoloriansunscreen
sumber
4
menurut pendapat saya, bukti kontrol FDR yang disajikan di sini lebih intuitif (perhatikan Anda sedang mencari bukti teorema 2): citeseerx.ist.psu.edu/viewdoc/… Di sana, argumen hanya mengandalkan memperhatikan bahwa kami dapat menggunakan teorema berhenti opsional.
user795305
3
Ada kuliah bagus dari Benjamini di YouTube tentang berbagai masalah perbandingan, dan sejarah serta pengembangan logis dari metode penyesuaian yang digunakan untuk mengatasinya.
Alexis
Ramdas et al. (2017) adalah makalah baru yang sangat bagus yang menyatukan dan menggeneralisasi banyak metode pengujian ganda, dan Proposisi mereka 1 (c) menyiratkan Teorema 1 dalam Benjamini & Hochberg (1995). Buktinya hanya menggunakan Lemma 1 (c) untuk mengikat harapan FDP, dan Lemma ini sendiri hanya dibuktikan oleh kalkulus multivariat yang sangat mendasar dalam apendiks mereka.
daniel.s
2
Berikut penjelasan intuitif lain yang saya temukan di saluran StatQuest di YouTube: youtube.com/watch?v=K8LQSvtjcEo
RobertF

Jawaban:

2

Berikut ini beberapa Rkode untuk menghasilkan gambar. Ini akan menunjukkan 15 nilai-p simulasi yang diplot terhadap pesanan mereka. Jadi mereka membentuk pola titik naik. Poin di bawah garis merah / ungu mewakili tes signifikan pada level 0,1 atau 0,2. FDR adalah jumlah titik hitam di bawah garis dibagi dengan jumlah total titik di bawah garis.

x0 <- runif(10)      #p-values of 10 true null hypotheses. They are Unif[0,1] distributed.
x1 <- rbeta(5,2,30)  # 5 false hypotheses, rather small p-values
xx <- c(x1,x0)
plot(sort(xx))
a0 <- sort(xx)
for (i in 1:length(x0)){a0[a0==x0[i]] <- NA}
points(a0,col="red")
points(c(1,15), c(1/15 * 0.1 ,0.1), type="l", col="red")
points(c(1,15), c(1/15 * 0.2 ,0.2), type="l", col="purple")

Saya harap ini dapat memberikan beberapa perasaan tentang bentuk distribusi nilai-p yang dipesan. Bahwa garis-garis itu benar dan bukan misalnya beberapa kurva berbentuk perumpamaan, ada hubungannya dengan bentuk distribusi urutan. Ini harus dihitung secara eksplisit. Padahal, garis itu hanyalah solusi konservatif.

Horst Grünbusch
sumber
1
Maukah Anda menambahkan set.seed(<some number>)dan memposting gambar yang dihasilkan untuk orang yang tidak membaca R?
gung - Reinstate Monica
Tidak ada poin yang jatuh di bawah garis ketika saya menjalankan kode ini ...
winni2k