Podstępny pan Bayes
- 8 minut czytania - 1577 słów [Nauka]Only a Bayesian Statistician is able to coherently explain the statement: If there is a 50-50 chance that something can go wrong, then 9 times out of ten it will.
Anonim
Za życia Tomasza Bayesa opublikowano dwie jego książki, w tym jedną anonimowo. Pierwsza z nich zawierała dowód na to, że celem boskiej opatrzności jest szczęśliwość stworzonych przez niego istot (Divine Benevolence, or an Attempt to Prove That the Principal End of the Divine Providence and Government is the Happiness of His Creatures). Druga dotyczyła rachunku różniczkowego i sformułowana była jako obrona Newtona przed atakami ze strony biskupa Berkeley. W żadnej z nich nie znalazł się jednak dowód twierdzenia Bayesa, które rozsławiło jego nazwisko – praca zawierająca sformułowanie i dowód tego twierdzenia została opublikowana w 1764, trzy lata po śmierci Bayesa.
Twierdzenie Bayesa jest proste, łatwe i nieskomplikowane, a mimo to jego zastosowania są olbrzymie, konsekwencje niebanalne, a dyskusja wokół stosowania twierdzenia Bayesa w modelowaniu statystycznym – bardzo zawzięta. W pewnym rozumieniu, twierdzenie Bayesa stawia bowiem na głowie rachunek prawdopodobieństwa, a nawet metodologię naukową.
Powiedzmy, że mamy do czynienia z nowym testem wykrywającym pewną chorobę, na przykład raka. Dajmy na to, że ta konkretna forma raka występuje u jednej osoby na dziesięć tysięcy. Test działa znakomicie: jeśli przetestujemy sto osób, które mają tę formę raka, to za pomocą nowego testu wykryjemy go u 95 osób. Tylko u pięciu osób test – błędnie – raka nie wykryje; oznacza to, że prawdopodobieństwo błędu drugiego rodzaju (false negative rate) wynosi 5/100 = 0.05. Jeśli zaś weźmiemy tysiąc osób, które są całkowicie zdrowe, to test – mylnie – wykryje raka zaledwie u jednej z nich; zatem prawdopodobieństwo błędu pierwszego rodzaju (false positive rate) wynosi 1/1000 = 0.001.
Wykonujemy test na losowej osobie; test wypada pozytywnie. Jakie jest prawdopodobieństwo, że ta osoba rzeczywiście ma raka?
nie da się tego policzyć
ok. 99%
ok. 90%
ok. 50%
ok. 10%
*Na obrazku: *
Naiwne rozumowanie brzmi tak: hipoteza zerowa brzmi “osoba jest zdrowa”, hipoteza alternatywna: “osoba ma raka”. Prawdopodobieństwo uzyskania pozytywnego wyniku jeśli osoba jest zdrowa wynosi 0.001 (0.1%). Zatem odrzucamy hipotezę zerową i przyjmujemy alternatywną. Ale jak policzyć prawdopodobieństwo, że osoba jest chora? Nie jest to 1-0.001, czyli 99.9% – ta wartość to prawdopodobieństwo, że osoba zdrowa uzyska negatywny wynik testu.
Załóżmy, że prowadzimy badania przesiewowe na milionie osób. Sto z nich będzie miało tę formę raka, której poszukujemy; za pomocą testu wykryjemy raka u 95 z nich. Natomiast 999900 osób nie będzie cierpiało raka, ale mimo to test da pozytywny wynik u jednej osoby na tysiąc, czyli mniej więcej tysiąca z niemal miliona zdrowych (0.001 * 999900 = 999.9). Mamy więc 1000 + 95 pozytywnych wyników testu, ale mniej niż sto z nich to osoby faktycznie cierpiące na raka. Prawidłowa odpowiedź wynosi zatem “około 10%”, zaś wyliczenie opiera się na twierdzeniu Bayesa (patrz ramka poniżej).
To prawda, że test jest z pozoru bardzo dokładny – rzadko popełnia błędy drugiego rodzaju (false negative), jeszcze rzadziej błędy pierwszego rodzaju (false positive). Problem jednak polega na tym, że choć błędną, pozytywną diagnozę test stawia stosunkowo rzadko, to jeszcze rzadziej mamy do czynienia z osobami, które faktycznie cierpią na tę formę raka. Mamy więc znacznie większe szanse na popełnienie błędnej pozytywnej diagnozy (false positive) niż błędnej negatywnej diagnozy (false negative).
A dokładniej: Chcemy policzyć prawdopodobieństwo warunkowe wystąpienia raka (R) w sytuacji, gdy test (T) u tej osoby dał wynik pozytywny – zapisujemy to jako p(R|T). Znamy prawdopodobieństwo wystąpienia raka p(R), wiemy, jakie są prawdopodobieństwa pozytywnego wyniku testu jeśli osoba ma raka p(T|R) = 0.99 i jeśli go nie ma, p(T|^R) = 0.001.
Możemy policzyć, jakie jest prawdopodobieństwo p(T), że u losowej osoby test da wynik pozytywny. Albo ta osoba ma raka (z prawdopodobieństwem p(R)), albo nie ma (z prawdopodobieństwem 1 - p(R)). Jeśli ma, to prawdopodobieństwo pozytywnego wyniku jest p(T|R), jeśli nie ma – p(T|^R). Ponieważ zdarzenia są niezależne (zakładamy, że albo rak jest, albo go nie ma), p(T) = p(R)*p(T|R) + (1-p(R)) * p(T|^R). Ten wzór odpowiada liczbie 1000 + 95, którą wyliczyliśmy powyżej. Z twierdzenia Bayesa p(R|T) = p(T|R) * p(R) / p(T). Wszystkie te trzy wielkości znamy; p(T|R) * p(R) odpowiada liczbie 95, którą wyliczyliśmy powyżej. Zatem p(R|T) = 0.95 * 0.0001 / ( 0.0001 * 0.95 + 0.9999 * 0.001 ) = 0.000095 / 0.00108 = 0.083, czyli 8.3%.
Twierdzenie Bayesa jest banalne do udowodnienia. Trick polega na definicji prawdopodobieństwa warunkowego: P(T|R) = p(T oraz R) / p(R). Jest to zgodne z naszą intuicją: załóżmy, że chcemy wyliczyć, ile osób z miliona ma (i) raka i (ii) pozytywny wynik testu (czyli p(T oraz R) razy milion). Liczymy ile osób ma raka ( milion * p(R) ) i mnożymy przez prawdopodobieństwo, że u osoby z rakiem test da wynik pozytywny (p(T|R) * p(R) * milion). Czyli milion * p(R) * p(T|R) = milion * p( T oraz R). Zatem p(T oraz R) = p(R)*p(T|R).
Oczywiście, w ten sam sposób p(R|T) = p( T oraz R ) / p(T), czyli p(T oraz R) = p(T) * p(R|T). Kombinując te dwa stwierdzenia, p(R)*p(T|R) = p(T)*p(R|T), czyli p(R|T) = p(R)*p(T|R) / p(T).
*Na obrazku: *
Rozwodzę się nad tym wszystkim, ponieważ twierdzenie Bayesa regularnie skręca mi mózg. Z jednej strony – jest bardzo proste, i do zrozumienia, i do udowodnienia. Z drugiej strony ma niebanalne konsekwencje w testowaniu hipotez i zrobiło niebywałą karierę w statystyce i biologii. Z trzeciej – stanowi przedmiot intensywnych dyskusji (do krytyków podejścia bajezjańskiego należeli m.in. Boole i Popper).
Powiedzmy, że mamy jakąś hipotezę H (w powyższym przykładzie hipoteza brzmi: losowy pacjent ma raka), której prawdopodobieństwo możemy w jakiś tam sposób przyjąć z góry. Mamy też pewien zestaw danych D (w powyższym przykładzie: wynik testu), i możemy policzyć, jakie jest prawdopodobieństwo uzyskania tego zestawu danych zakładając hipotezę H. Mamy też alternatywną hipotezę H’ i wiemy, jakie jest prawdopodobieństwo uzyskania tego zestawu danych jeśli prawdziwa jest H’. Wówczas możemy policzyć jakie jest prawdopodobieństwo, że hipoteza H jest prawdziwa w kontekście uzyskanych wyników. Prawdopodobieństwo p(H) zwykło się nazywać prawdopodobieństwem a priori, a p(H|D) – a posteriori, czyli po uzyskaniu danych.
Skręt mózgu bierze się najpierw z konfrontacji z “klasyczną” statystyką. W klasycznej statystyce określamy pewną hipotezę zerową (dana osoba jest zdrowa) i pewną hipotezę alternatywną (osoba ta ma raka). Liczymy prawdopodobieństwo p uzyskania pozytywnego wyniku testu (czyli uzyskania D) przy założeniu hipotezy zerowej, i odrzucamy hipotezę zerową na rzecz alternatywnej, jeśli p jest mniejsze od arbitralnie przyjętego progu. W naszym przypadku p = 0.001, więc zapewne odrzucamy hipotezę zerową i uznajemy – i to ze sporą pewnością siebie – że pacjent ma raka. Rozumowanie bajezjańskie umożliwia nam jednak bezpośrednie policzenie prawdopodobieństwa hipotezy alternatywnej, które wcale nie jest takie wysokie, jakby się to nam zdawało, ale i nie bezużytecznie: przecież 10% to wielokrotnie więcej, niż 0.01%.
Gorzej: mamy kłopot z Popperem. Jako się rzekło, Popper miał na pieńku z “rewolucją bajezjańską” w statystyce i nauce. Podejście bajezjańskie można częściowo rozumieć jako obliczanie parametrów tworzonego modelu wstecz z uzyskanych informacji; zamiast więc testować hipotezę w oparciu o informacji, de facto tworzymy ją tak, żeby pasowała do obserwacji.
Z drugiej strony, popperowski falsyfikacjonizm można rozumieć jako szczególny przypadek Bayesa. Załóżmy, że hipoteza H może zostać sfalsyfikowana przez obserwację D – to oznacza, że p(D|H) jest równe zeru. Wówczas z twierdzenia Bayesa wynika, że p(H|D) także równe jest zeru. Innymi słowy, jeśli zaobserwujemy D, to H jest nieprawdziwa i otrzymujemy popperowską falsyfikację. Jednak jeśli nie zaobserwujemy D, to mamy inną sytuacje, rozważamy bowiem p(H|^D) = p(^D|H)*p(H) / p(^D). Jeśli prawdopodobieństwo braku obserwacji D jest przy założeniu hipotezy H wyższe niż prawdopodobieństwo braku obserwacji D przy, na przykład, założeniu jakiejś alternatywnej hipotezy, to p(H|^D), czyli prawdopodobieństwo a posteriori jest wyższe niż p(H), prawdopodobieństwo a priori. Tak jak u Poppera, możemy odrzucić hipotezę w wyniku falsyfikacji. Inaczej jednak niż u Poppera, obserwacja zgodna z przewidywaniami wzmacnia (i to w sposób mierzalny) naszą hipotezę.
Na obrazku: Chronicznie roztargniona matematyczna wiewiórka from outer space
Ale to nie koniec: być może nie znamy prawdopodobieństwa a priori, albo mamy o nim bardzo mętne wyobrażenie. Okazuje się, że można (choć na ten temat toczą się zażarte spory) wziąć to prawdopodobieństwo z nosa, zebrać dane, policzyć prawdopodobieństwo a posteriori, a potem użyć go jako prawdopodobieństwa a priori w następnej rundzie. Ten trick wykorzystują liczne algorytmy, a także chronicznie roztargnione matematyczne wiewiórki from outer space, ale o nich będzie innym razem.
Literatura
Bellhouse, D. R., “The Reverend Thomas Bayes, FRS: A Biography to Celebrate the Tercentenary of His Birth”, Statistical Science 2004, Vol. 19, No. 1, 3–43
Znacznie dłuższe wprowadzenie do bajezjańskiego rachunku prawdopodobieństwa znajduje się tutaj
Komentarze
Komentarz: bart, 2010-02-10 13:34:47:
Za każdym razem, kiedy o tym czytam, boli mnie mózg.
Komentarz: ztrewq, 2010-02-10 14:03:35:
Od skręcania. Też to mam :-) A jeszcze nie doszliśmy do wiewiórek from outer space, czyli bajezjańskiego modelowania procesów.
Komentarz: ramone.alcin, 2012-11-08 16:26:35:
Fajne! Pisales cos moze o filtrach Kalmana?
Komentarz: Robert Maron, 2020-05-04 13:50:47:
Ja zawsze mam inny problem niż wszyscy, przepraszam. Tu zupełnie nie rozumiem tego podejścia naiwnego z początku: widzę, że test daje false-positive z prawdop. dużo większym, niż szansa w populacji na tegoż raka, więc od razu widzę, że test jest mocno bezużyteczny do sprawdzania na wynik pozytywny (owszem, jeśli kolejne pomiary to zdarzenia niezależne, bo błąd wynika np. z niedokładności wykonania testu, a nie np. ze stadium raka, albo genetyki badanego — to zrobimy po prostu zawsze dwa, trzy testy, i wynik potraktujemy jak jeden nowy test, o lepszych parametrach, ale to inna historia). Więc w ogóle nie wchodzę w ten tok rozumowania :(