Jakie są praktyczne różnice między procedurami fałszywego wykrywania Benjamini i Hochberg (1995) a Benjamini i Yekutieli (2001)?

34

Mój program statystyczny wdraża zarówno procedury fałszywego wykrywania Benjamini i Hochberg (1995), jak i Benjamini i Yekutieli (2001). Zrobiłem co w mojej mocy, aby przeczytać późniejszy artykuł, ale jest on dość matematycznie gęsty i nie jestem pewien, czy rozumiem różnicę między procedurami. Widzę z podstawowego kodu w moim programie statystycznym, że rzeczywiście są one różne i że ten ostatni zawiera ilość q, o której widziałem w odniesieniu do FDR, ale też nie do końca rozumiem.

Czy istnieje powód, aby preferować procedurę Benjamini i Hochberg (1995) niż procedurę Benjamini i Yekutieli (2001)? Czy mają inne założenia? Jakie są praktyczne różnice między tymi podejściami?

Benjamini, Y. i Hochberg, Y. (1995). Kontrolowanie wskaźnika fałszywych odkryć: praktyczne i wydajne podejście do wielu testów. Journal of Royal Statistics Society Series B, 57, 289–300.

Benjamini, Y., i Yekutieli, D. (2001). Kontrola współczynnika fałszywych odkryć w wielu testach w zależności od zależności. Annals of Statistics 29, 1165–1188.

Artykuł z 1999 r., O którym mowa w komentarzach poniżej: Yekutieli, D., i Benjamini, Y. (1999). Częstotliwość fałszywych odkryć oparta na próbkowaniu kontrolująca wiele procedur testowych dla skorelowanych statystyk testowych. Journal of Statistics Planning and Inference, 82 (1), 171–196.

russellpierce
źródło
Myślałem, że artykuł z 2001 r. Ustala właściwości FDR (1995) w zależności. Yekutieli i Benjamini (Journal of Statistics Planning and Inference, 1999) ustanawiają inną procedurę FDR. Czy jest jakaś szansa, której szukasz?
julieth
@julieth: Tak rozumiałem artykuł z 2001 roku po przeczytaniu samego streszczenia, ale formuły zawarte w artykule (np. 27–30) wydają się obejmować pewną ilość określaną jako q. Z drugiej strony, podobnie jak ten cytowany w 1999 r. Artykuł. Wydaje mi się jednak, że artykuł z 1999 r. Implementuje podejście do ponownego próbkowania, które wyraźnie (z patrzenia na kod) nie jest tym, co robi mój program statystyczny (R; p. Dostosuj) ... ale mogę się mylić.
russellpierce
1
Pod koniec artykułu z 2001 r. Cytowano artykuł z 1999 r., Który mówi: „Na koniec przypomnijmy procedurę opartą na ponownym próbkowaniu Yekutieli i Benjamini (1999), która próbuje poradzić sobie z powyższym problemem i jednocześnie wykorzystać informacje o zależności struktura pochodząca z próbki. Procedura oparta na ponownym próbkowaniu jest bardziej wydajna, kosztem większej złożoności i jedynie przybliżonej kontroli FDR. ” ... więc myślę, że artykuł z 2001 roku dostarczył rozwiązanie obliczeniowe w formie zamkniętej i właśnie to wdraża mój program statystyczny.
russellpierce
1
Ok, więc używasz p.adjust. Papier 99 jest zupełnie inny, jak zauważyłeś. Zawsze widziałem opcję BY w p.adjust i nie zwracałem uwagi. Ten artykuł z 2001 r. Jest zwykle cytowany w odniesieniu do dowodu FDR i „dodatniej zależności od regresji”. Nigdy nie widziałem, żeby cytował inny estymator, ale może jest tam. Wygląda na to, że muszę go ponownie przeczytać.
julieth

Odpowiedzi:

21

Benjamini i Hochberg (1995) wprowadzili współczynnik fałszywych odkryć. Benjamini i Yekutieli (2001) udowodnili, że estymator jest ważny w niektórych formach zależności. Zależność może powstać w następujący sposób. Rozważ zmienną ciągłą stosowaną w teście t i inną zmienną skorelowaną z nią; na przykład testowanie, czy BMI różni się w dwóch grupach i czy obwód talii różni się w tych dwóch grupach. Ponieważ zmienne te są skorelowane, otrzymane wartości p również zostaną skorelowane. Yekutieli i Benjamini (1999) opracowali kolejną procedurę kontrolną FDR, którą można stosować w ogólnej zależności przez ponowne próbkowanie rozkładu zerowego. Ponieważ porównanie dotyczy zerowego rozkładu permutacji, wraz ze wzrostem całkowitej liczby prawdziwych wyników dodatnich, metoda staje się bardziej konserwatywna. Okazuje się, że BH 1995 jest również konserwatywny, ponieważ rośnie liczba prawdziwie pozytywnych wyników. Aby to poprawić, Benjamini i Hochberg (2000) wprowadzili adaptacyjną procedurę FDR. Wymagało to oszacowania parametru, proporcji zerowej, która jest również używana w estymatorze pFDR Storey'ego. Storey podaje porównania i twierdzi, że jego metoda jest silniejsza i podkreśla konserwatywny charakter procedury z 1995 roku. Kondygnacja ma również wyniki i symulacje zależne.

Wszystkie powyższe testy są ważne w ramach niezależności. Pytanie brzmi, z jakim rodzajem odejścia od niepodległości mogą sobie poradzić te szacunki.

Moje obecne myślenie jest takie, że jeśli nie spodziewasz się zbyt wielu pozytywnych wyników, procedura BY (1999) jest przyjemna, ponieważ zawiera funkcje dystrybucyjne i zależność. Jednak nie jestem świadomy implementacji. Metoda Storey'ego została zaprojektowana dla wielu prawdziwych pozytywów z pewną zależnością. BH 1995 stanowi alternatywę dla rodzinnego poziomu błędu i jest nadal zachowawczy.

Benjamini, Y i Y Hochberg. Na temat adaptacyjnej kontroli wskaźnika fałszywych odkryć w testach wielokrotnych z niezależnymi statystykami. Journal of Educational and Behavioral Statistics, 2000.

Julieth
źródło
Wielkie dzięki! Czy mógłbyś zrewidować swoje pytanie, aby wyjaśnić następujące kwestie / kwestie: „ponowne próbkowanie rozkładu zerowego” to artykuł z 1999 roku? Czy mógłby Pan podać cytat z pracy z 2000 roku? Wydawało ci się, że znasz p.adjust, czy faktycznie wdraża on procedurę BY? Czy należy stosować BH, gdy testy hipotez nie są zależne? Co powoduje, że testy hipotez są uważane za zależne? - Daj mi znać, jeśli którekolwiek z tych pytań wykracza poza obecny zakres i wymaga zadania nowego pytania.
russellpierce
p.adjust ma opcje dla obu (BH i BY). Myślałem jednak, że były takie same, więc coś przeoczyłem.
julieth
Kod podstawowy też jest inny (sprawdziłem), więc będą generować różne liczby.
russellpierce
Więc jaką procedurę według ciebie wykonuje p.adjust z argumentem BY? Nie sądzę, że jest to procedura z 1999 roku. Podstawowy kod to pmin (1, cummin (q * n / i * p [o])) [ro]. BH to pmin (1, cummin (n / i * p [o])) [ro]. Różnią się więc tylko q, co jest sumą (1 / (1: n)), gdzie n = liczba pvalues. oi ro tylko służyć do wprowadzenia wartości p malejące numerycznej dla funkcji, a następnie wypluć je z powrotem w tej samej kolejności użytkownik inputed ich.
russellpierce
1
Tak więc, ponieważ nie pojawiają się nowe odpowiedzi, zaakceptuję tę odpowiedź i podsumuję moje zrozumienie. p. dostosowanie może być błędne dla BY. To, co jest wykonywane, nie powoduje ponownego próbkowania. BH 2000 wprowadził adaptacyjną procedurę FDR, która obejmuje oszacowanie proporcji zerowej, która może oznaczać q występującą w kodzie BY. Tymczasem wydaje się rozsądne, aby cytować p.adjust bezpośrednio, ponieważ odzwierciedla to faktyczną procedurę zastosowaną podczas korzystania z opcji „BY” i po prostu mieć świadomość, że „BY” może faktycznie implementować Benjamini i Hochberg, 2000.
russellpierce
5

p.adjust nie popełnia błędów w przypadku BY. Odwołuje się do Twierdzenia 1.3 (dowód w Rozdziale 5 na str. 1182) w pracy:

Benjamini, Y., i Yekutieli, D. (2001). Kontrola współczynnika fałszywych odkryć w wielu testach w zależności od zależności. Annals of Statistics 29, 1165–1188.

Ponieważ w tym artykule omówiono kilka różnych korekt, odwołanie do strony pomocy (w czasie pisania) dla p.adjust () jest nieco niejasne. Metoda gwarantuje kontrolowanie FDR w podanym tempie, zgodnie z najbardziej ogólną strukturą zależności. W slajdach Christophera Genovese znajdują się pouczające komentarze: www.stat.cmu.edu/~genovese/talks/hannover1-04.pdf Zwróć uwagę na komentarz na slajdzie 37, odnoszący się do metody Twierdzenia 1.3 w pracy BY 2001 [method = „BY” za pomocą p.adjust ()], że: „Niestety jest to zazwyczaj bardzo konserwatywne, czasem nawet bardziej niż Bonferroni”.

Przykład numeryczny: method='BY' vsmethod='BH'

Poniżej porównano metodę = „BY” z metodą = „BH”, używając funkcji p.adjust () R dla wartości p z kolumny 2 tabeli 2 w pracy Benjamini i Hochberg (2000):

> p <-    c(0.85628,0.60282,0.44008,0.41998,0.3864,0.3689,0.31162,0.23522,0.20964,
0.19388,0.15872,0.14374,0.10026,0.08226,0.07912,0.0659,0.05802,0.05572,
0.0549,0.04678,0.0465,0.04104,0.02036,0.00964,0.00904,0.00748,0.00404,
0.00282,0.002,0.0018,2e-05,2e-05,2e-05,0)
> pmat <- rbind(p,p.adjust(p, method='BH'),p.adjust(p, method='BY'))
> rownames(pmat)<-c("pval","adj='BH","adj='BY'")
> round(pmat,4)

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] pval 0.8563 0.6028 0.4401 0.4200 0.3864 0.3689 0.3116 0.2352 0.2096 adj='BH 0.8563 0.6211 0.4676 0.4606 0.4379 0.4325 0.3784 0.2962 0.2741 adj='BY' 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] pval 0.1939 0.1587 0.1437 0.1003 0.0823 0.0791 0.0659 0.0580 0.0557 adj='BH 0.2637 0.2249 0.2125 0.1549 0.1332 0.1332 0.1179 0.1096 0.1096 adj='BY' 1.0000 0.9260 0.8751 0.6381 0.5485 0.5485 0.4856 0.4513 0.4513 [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26] [,27] pval 0.0549 0.0468 0.0465 0.0410 0.0204 0.0096 0.0090 0.0075 0.0040 adj='BH 0.1096 0.1060 0.1060 0.1060 0.0577 0.0298 0.0298 0.0283 0.0172 adj='BY' 0.4513 0.4367 0.4367 0.4367 0.2376 0.1227 0.1227 0.1164 0.0707 [,28] [,29] [,30] [,31] [,32] [,33] [,34] pval 0.0028 0.0020 0.0018 0e+00 0e+00 0e+00 0 adj='BH 0.0137 0.0113 0.0113 2e-04 2e-04 2e-04 0 adj='BY' 0.0564 0.0467 0.0467 7e-04 7e-04 7e-04 0

Uwaga: Mnożnik, który wiąże wartości BY z wartościami BH, wynosija=1m(1/ja), gdzie mto liczba wartości p. Mnożniki to na przykład wartości m = 30, 34, 226, 1674, 12365:

> mult <- sapply(c(11, 30, 34, 226, 1674, 12365), function(i)sum(1/(1:i)))

setNames (mult, paste (c ('m =', rep ('', 5)), c (11, 30, 34, 226, 1674, 12365))) m = 11 30 34 226 1674 12365 3.020 3.995 4.118 6.000 8.000 10.000

Sprawdź to w powyższym przykładzie, gdzie m= 34, mnożnik wynosi 4.118

John Maindonald
źródło