Ogólna zasada dotycząca liczby próbek bootstrapu

40

Zastanawiam się, czy ktoś zna jakieś ogólne zasady dotyczące liczby próbek bootstrap, których należy użyć, na podstawie cech danych (liczba obserwacji itp.) I / lub uwzględnionych zmiennych?

Hoyem
źródło
2
Byłem też ciekawy tego, ponieważ planuję analizę symulacji. Czy istnieje powód, aby nie pobierać tylu próbek, ile jest wykonalnych / wykonalnych? Oprócz problemów środowiskowych (np. Wydatki na energię elektryczną) i osobistych (np. Przekroczenie progów krytycznych dla trwałej nerdowości, przejście do czystej geekdomu ), jak dotąd nie widzę żadnych przeciwwskazań w odpowiedziach (+1 w całym BTW). ,
Nick Stauner
4
@Nick W dużej mierze się zgadzam - generalnie używam tyle, ile mogę sobie pozwolić na czekanie (zwykle doładowanie na milion, choć nie zawsze), ale zazwyczaj uważam 1000 za całkiem wyraźną dolną granicę. Jako pierwszą próbę często robię 1K, aby uzyskać informacje o czasie, a następnie sprawdzam, ile mnożników tego jestem gotów czekać na rzeczywistą odpowiedź.
Glen_b
1
Jeśli czasochłonna część procesu generuje symulacje, a obserwacje z nich można łatwo agregować (jak to często bywa z odrobiną dodatkowego kodowania), wydaje się, że nie ma usprawiedliwienia, aby nie popełnić błędu po stronie przekroczenia. Wydaje mi się, że z czasem mogłoby to wymknąć się spod kontroli, gdyby wszyscy to zrobili i zapomnieli, dlaczego, ale ponieważ prawdopodobnie tak się nigdy nie stanie ... Posiadanie minimalnego progu, do którego ludzie dążą niepotrzebnie, wydaje się nieco nieproduktywne, jeśli alternatywa - po prostu szukam czegoś więcej, dopóki naprawdę nie będzie już miejsca na wątpliwości - w ten sposób nieuchronnie się odradzam.
Nick Stauner
Po prostu uruchamiam, dopóki nie zobaczę wyraźnej zbieżności. Jeśli chcesz złagodzić obawy recenzentów, chciałbym tylko przedstawić wizualizację iteracji bootstrap w porównaniu do wynikowej oceny, aby zilustrować zbieżność.
RTbecard
North i in. 2002 zawiera kilka wskazówek, które znalazłem pomocne DOI: 10.1086 / 341527 [ ncbi.nlm.nih.gov/pmc/articles/PMC379178/pdf/AJHGv71p439.pdf]
Michael

Odpowiedzi:

33

Z mojego doświadczenia wynika, że ​​statystycy nie biorą poważnie symulacji ani bootstrapów, chyba że liczba iteracji przekroczy 1000. Błąd MC to duży problem, który jest nieco niedoceniany. Na przykład, ten papier używany Niter=50do wykazania lasso jako narzędzie selekcji cech. Moja teza zajęłaby o wiele mniej czasu, gdyby 50 iteracji uznano za dopuszczalne! Zalecam, aby zawsze sprawdzać histogram próbek bootstrap . Ich dystrybucja powinna wydawać się dość regularna. Nie sądzę, by wystarczała jakaś zwykła reguła numeryczna i byłoby przesadą wykonać, powiedzmy, podwójny bootstrap, aby ocenić błąd MC.

Załóżmy, że szacujesz średnią ze stosunku dwóch niezależnych standardowych normalnych zmiennych losowych, niektórzy statystycy mogą zalecić ładowanie go, ponieważ całka jest trudna do obliczenia. Jeśli masz u podstaw podstawową teorię prawdopodobieństwa, rozpoznasz, że stosunek ten tworzy losową zmienną Cauchy'ego z nieistniejącą średnią. Każdy inny rozkład leptokurtyczny wymagałby kilku dodatkowych iteracji ładowania początkowego w porównaniu z bardziej regularnym odpowiednikiem gęstości Gaussa. W takim przypadku 1000, 100000 lub 10000000 próbek ładowania początkowego byłoby niewystarczające do oszacowania tego, co nie istnieje. Histogram tych bootstrapów nadal wyglądałby nieregularnie i źle.

W tej historii jest jeszcze kilka zmarszczek. W szczególności bootstrap jest naprawdę uzasadniony tylko wtedy, gdy istnieją momenty modelu prawdopodobieństwa generowania danych. Dzieje się tak, ponieważ używasz funkcji rozkładu empirycznego jako słomianego człowieka dla rzeczywistego modelu prawdopodobieństwa i zakładając, że mają one tę samą średnią, odchylenie standardowe, skośność, 99 percentyl itp.

Krótko mówiąc, oszacowanie statystyki początkowej i jej błędu standardowego jest uzasadnione tylko wtedy, gdy histogram próbek ładowanych początkowo wydaje się regularny ponad uzasadnioną wątpliwość i gdy uzasadnienie początkowe jest uzasadnione.

AdamO
źródło
3
Zawsze widziałem też duże próbki bootstrapu. Jednak w „An Introduction to Bootstrap” (1994) Efrona i Tibshirani podają, że można uzyskać przyzwoite oszacowanie przy B = 25, a B = 200 osiąga podobny współczynnik zmienności jak nieskończoność. Zapewniają tabelę współczynników zmienności dla różnych B (s. 52-53, obie strony są dostępne w książkach Google).
Jeramy Townley
19

edytować:

Jeśli poważnie myślisz o posiadaniu wystarczającej liczby próbek, powinieneś zrobić procedurę bootstrap, z nadzieją, że masz wystarczającą liczbę próbek kilka razy i zobaczyć, ile szacuje bootstrap. Jeśli powtarzane szacunki nie różnią się znacznie (gdzie „dużo” zależy od konkretnej sytuacji), najprawdopodobniej nic ci nie jest. Oczywiście można oszacować, o ile powtarzają się szacunki, obliczając próbkę SD lub podobną.

Jeśli chcesz mieć odniesienie i ogólną zasadę Wilcox (2010) pisze: „599 jest zalecane do ogólnego użytku”. Ale należy to traktować jedynie jako wskazówkę lub być może minimalną liczbę próbek, które należy wziąć pod uwagę. Jeśli chcesz być po bezpiecznej stronie, nie ma powodu (jeśli jest to wykonalne obliczeniowo), dlaczego nie powinieneś generować więcej próbek o rząd wielkości.

Osobiście notuję 10 000 próbek przy szacowaniu „dla siebie” i 100 000 próbek przy szacowaniu czegoś przekazywanego innym (ale jest to szybkie, ponieważ pracuję z małymi zestawami danych).

Odniesienie

Wilcox, RR (2010). Podstawy nowoczesnych metod statystycznych: znaczna poprawa siły i dokładności. Skoczek.

Rasmus Bååth
źródło
17
599? Pięćset dziewięćdziesiąt dziewięć? Co na Ziemi może być argumentem na korzyść tej liczby?
ameba mówi Przywróć Monikę
Zapytaj Wilcoxa (2010), myślę ... jestem też ciekawy; może Rasmus dałby nam nieco więcej kontekstu wokół cytatu?
Nick Stauner
niejasne dla mnie, skąd pochodzi również 599 ... dodał kilka lepszych porad do odpowiedzi ...
Rasmus Bååth
8
@amoeba Możesz sam przeczytać „fragment” . Jest to przykład wyjątkowo niejasnego zapisu w statystykach, a w szczególności stosuje się go tylko do wnioskowania na temat średniej przyciętej z oszacowanymi standardowymi błędami Windsorized .
AdamO,
11

Istnieją sytuacje, w których można powiedzieć wcześniej lub po kilku iteracjach, że ogromna liczba iteracji ładowania początkowego nie pomoże w końcu.

  • Mamy nadzieję, że masz wcześniej pomysł rzędu wielkości precyzji, która jest wymagana do sensownej interpretacji wyników. Jeśli tego nie zrobisz, nadszedł czas, aby dowiedzieć się nieco więcej o problemie związanym z analizą danych. W każdym razie po kilku iteracjach możesz być w stanie oszacować, ile jeszcze iteracji jest potrzebnych.

  • Oczywiście, jeśli masz bardzo niewiele przypadków (powiedzmy, że komisja etyczna zezwoliła na 5 szczurów), nie musisz myśleć o dziesiątkach tysięcy iteracji. Może lepiej byłoby spojrzeć na wszystkie możliwe losowania. A może lepiej byłoby zatrzymać i pomyśleć, jak pewne wnioski mogą (nie) być oparte na 5 szczurach.

  • Pomyśl o całkowitej niepewności wyników. W mojej dziedzinie część niepewności, którą można zmierzyć i zmniejszyć za pomocą ładowania początkowego, może stanowić jedynie niewielką część całkowitej niepewności (np. Z powodu ograniczeń w projektowaniu eksperymentów ważne źródła zmienności często nie są objęte eksperymentem - powiedzmy , zaczynamy od eksperymentów na liniach komórkowych, chociaż ostatecznym celem będą oczywiście pacjenci). W tej sytuacji nie ma sensu przeprowadzać zbyt wielu iteracji - i tak nie pomoże to w końcowym wyniku, a ponadto może wzbudzić fałszywe poczucie pewności.

  • Powiązany (choć nie dokładnie taki sam) problem występuje podczas sprawdzania poprawności modeli poza pasowaniem lub krzyżowania: masz dwa źródła niepewności: skończoną (aw moim przypadku zwykle bardzo małą liczbę niezależnych przypadków) i (w) stabilność modeli bootstrapped. W zależności od konfiguracji sprawdzania poprawności ponownego próbkowania może być tylko jeden z nich przyczyniający się do oszacowania ponownego próbkowania. W takim przypadku możesz użyć oszacowania drugiego źródła wariancji, aby ocenić, jaką pewność powinieneś osiągnąć przy ponownym próbkowaniu i kiedy przestanie ono pomagać w końcowym wyniku.

  • Wreszcie, chociaż do tej pory myślałem o tym, jak wykonać mniej iteracji, oto praktyczna uwaga na korzyść robienia więcej :
    W praktyce moja praca nie jest wykonywana po uruchomieniu bootstrapu. Dane wyjściowe bootstrapu muszą zostać zagregowane w statystyki podsumowujące i / lub liczby. Wyniki należy interpretować w formie pisemnej lub raportu, który należy napisać. Wiele z nich można już wykonać przy wstępnych wynikach kilku iteracji bootstrapu (jeśli wyniki są jasne, pokazują już po kilku iteracjach, jeśli są graniczne, pozostaną graniczne). Dlatego często konfiguruję ładowanie w sposób, który pozwala mi wyciągać wstępne wyniki, dzięki czemu mogę kontynuować pracę podczas obliczania komputera. W ten sposób nie przeszkadza mi to bardzo, jeśli ładowanie trwa kilka dni.

cbeleites obsługuje Monikę
źródło
10

TLDR. 10 000 wydaje się dobrą regułą, np. Wartości p z tej dużej lub większej próbki bootstrap będą w granicach 0,01 „prawdziwej wartości p” dla metody przez około 95% czasu.

Rozważam tylko poniższe podejście do percentylowego ładowania początkowego, które jest najczęściej stosowaną metodą (o ile mi wiadomo), ale co prawda ma też słabości i nie powinno być stosowane z małymi próbkami .

Lekkie załamanie. Przydatne może być obliczenie niepewności związanej z wynikami z bootstrapu, aby uzyskać poczucie niepewności wynikającej z użycia bootstrapu. Zauważ, że nie usuwa to możliwych słabości bootstrapu (np. Patrz link powyżej), ale pomaga ocenić, czy w konkretnej aplikacji jest wystarczająco dużo próbek bootstrapu. Zasadniczo błąd związany z rozmiarem próbki ładowania początkowego n spada do zera, gdy nidzie do nieskończoności, a pytanie brzmi: jak duży powinien nbyć błąd związany z rozmiarem małej próbki ładowania początkowego?

Niepewność bootstrap w wartości p. Niedokładność oszacowanej wartości p, powiedzmy, że pv_est jest wartością p oszacowaną na podstawie bootstrapu, wynosi około 2 x sqrt(pv_est * (1 - pv_est) / N), gdzie Njest liczba próbek bootstrapu. Jest to ważne, jeśli pv_est * Ni (1 - pv_est) * Nsą jednocześnie >= 10. Jeśli jeden z nich jest mniejszy niż 10, to jest mniej precyzyjny, ale z grubsza w tym samym sąsiedztwie, co szacunek.

Błąd ładowania początkowego w przedziale ufności. Jeśli używasz 95% przedziału ufności, to spójrz na zmienność kwantyli rozkładu ładowania początkowego w pobliżu 2,5% i 97,5%, sprawdzając percentyle na (dla 2,5 percentyla) 2.5 +/- 2 * 100 * sqrt(0.025 * 0.975 / n). Ta formuła komunikuje niepewność dolnej granicy 95% przedziału ufności w oparciu o liczbę pobranych próbek bootstrap. Podobną eksplorację należy przeprowadzić w górnej części. Jeśli ta ocena jest nieco zmienna, pamiętaj, aby wziąć więcej próbek bootstrap!

OpenIntro
źródło
Wybierz dowolną i dowolną wartość multiplikatywną (2-krotną, 10-krotną?), Mogę podać model prawdopodobieństwa, dla którego maksymalne prawdopodobieństwo ma tę wartość jako względną wydajność w stosunku do bootstrapu. n
AdamO,
7

Zaczynam od odpowiedzi na coś podniesionego w innej odpowiedzi: dlaczego tak dziwna liczba jak „ ” (liczba próbek bootstrap)? 599

Odnosi się to również do testów Monte Carlo (których ładowanie jest równoważne, gdy podstawowa statystyka jest kluczowa ) i wynika z tego: jeśli test ma być dokładny , to jeśli jest pożądanym poziomem istotności, a jest liczba próbek, musi zachowywać się następujący stosunek:BαB

α(1+B)=integer

Rozważmy teraz typowe poziomy istotności iα 2 = 0,05α1=0.1α2=0.05

Mamy

B1=integer0.11,B2=integer0.051

To „minus jeden” prowadzi do proponowanych liczb, takich jak „ ”, w celu zapewnienia dokładnego testu.599

Wziąłem następujące informacje od Davidson, R. i MacKinnon, JG (2000). Testy bootstrap: ile bootstrap ?. Recenzje ekonometryczne, 19 (1), 55-68. (roboczą wersję papierową można bezpłatnie pobrać).

Jeśli chodzi o ogólną zasadę, autorzy badają przypadek wartości p ładowania początkowego i sugerują, że dla testów na minimalna liczba próbek wynosi około 400 (czyli ), podczas gdy dla testu na poziomie jest to 1500 tak ( ).399 0,01 14990.053990.011499

Proponują również procedurę wstępnego badania w celu oznaczenia endogennie. Po przeprowadzeniu symulacji ich procedury stwierdzają:B

„Łatwo jest zrozumieć, dlaczego procedura wstępnego testowania działa dobrze. Gdy hipoteza zerowa jest prawdziwa, B może być bezpiecznie mały, ponieważ w ogóle nie martwimy się o moc. Podobnie, gdy zerowa wartość jest fałszywa, a moc testowa jest wyjątkowo wysoka, B nie musi być duży, ponieważ utrata mocy nie jest poważnym problemem. Jednak, gdy zero jest fałszywe, a moc testowa jest umiarkowanie wysoka, B musi być duże, aby uniknąć utraty mocy. Procedura wstępnego testowania ma tendencję do B mały, gdy może być bezpiecznie mały i duży, gdy musi być duży. ”

Na końcu artykułu porównują go również z inną procedurą, która została zaproponowana w celu określenia i stwierdzają, że ich wyniki są lepsze.B

Alecos Papadopoulos
źródło
4

Większość aplikacji ładujących, które widziałem, zgłosiło około 2000 do 100 000 iteracji. We współczesnej praktyce z odpowiednim oprogramowaniem istotnymi problemami z bootstrap są problemy statystyczne, bardziej niż czas i moc obliczeniowa. Początkującym użytkownikom programu Excel można było wykonać tylko kilkaset zadań, zanim będzie wymagało użycia zaawansowanego programowania Visual Basic. Jednak R jest znacznie prostszy w użyciu i sprawia, że ​​generowanie tysięcy wartości bootstrapped jest łatwe i proste.

Germaniawerks
źródło