piątek, 7 października 2016

Bootstrap i bootstrapowanie średniej.

Spróbuję upiec dwie pieczenie na jednym ogniu – opowiedzieć jak działa bootstrap* i pokazać, co to znaczy: rozkład średnich wybranej cechy w populacji. Dlaczego to ostatnie? Otóż niekiedy spotyka się założenie o normalności cechy, np. w teście t-Studenta lub w ANOVA, lub w analizie regresji i bywa, że jest to zbyt mocne założenie. Zależy nam, aby owszem rozkład był normalny, ale nie wyjściowej cechy tylko ... pewnego przekształcenia wartości tej zmiennej. Takim przekształceniem jest średnia. Ale co to znaczy rozkład średnich w próbie? Dlaczego średnia miałaby mieć jakiś rozkład? O tym będzie niżej. A co ma do tego bootstrap? O tym będzie jeszcze niżej...

Spróbujmy zrozumieć na konkretnym przykładzie.
Mamy próbę, X jest zmienną psychologiczną – wyniki dwudziestu osób w skali ABC, która przyjmuje wartości od 1 do 10. Te dwadzieścia osób otrzymało taki oto wynik: 

0 2 1 7 6 3 5 1 10 3 2 6 5 10 5 1 9 8 7 5 

Przy okazji moglibyśmy dowiedzieć się coś o tym, ile jest wystąpień konkretnych wartości w próbie, np. ile jest osób o wyniku trzy, ile siedem, itd. Rozłożenie występowania wyników skali ABC przedstawia poniższy histogram.


Rys. Rozkład wartości skali ABC dla dwudziestu osób (LJK).

Rozkład ten można spróbować zinterpretować. Najczęściej występującą wartością jest 5 (aż cztery razy). Średnia w tej próbie wynosi 4,80 (użyłam wzoru na średnią arytmetyczną). Średnia w próbie (ta obliczana na podstawie wzoru) jest estymatorem średniej w populacji (czyli średniego poziomu cechy). Skoro jest estymatorem, to tak jak każdy estymator jest zmienną losową. Gdybyśmy przebadali inną grupę dwudziestu osób, to średnia mogłaby wyjść nie 4,80, a np. 4,52. Widać tutaj, że wartości średniej w próbie mogą zmieniać się w zależności od przebadanej próby. 
Zatem chcielibyśmy dowiedzieć się, w jakich granicach można spodziewać się wartości średniej w próbie. Innymi słowami, pytamy jak precyzyjny jest pomiar tej średniej. Zwykle korzysta się z przedziałów ufności. Interpretacja przedziałów ufności jest podana tutaj (klik). W przypadku naszej próby przedział ufności dla średniej wynosi [3.35,6.25]. Obliczyłam go na podstawie wzorów.
 
Centralne Twierdzenie Graniczne (CTG). 
Problem z przedziałami ufności obliczanymi w przy pomocy wzorów jest taki, że podskórnie zakładają one korzystanie z Centralnych Twierdzeń Granicznych. 
Centralne Twierdzenia Graniczne to taka grupa twierdzeń, które określają warunki, dzięki którym grupy rozkładów mogą zbliżać się do pewnego rozkładu wzorcowego. Na przykład coś takiego: jeśli będziesz mieć odpowiednio dużą liczbę elementów w próbie (czyt. przebadanych osób), to rozkład średniej w próbie będzie coraz bliżej rozkładowi normalnemu. 

Rozkład średnich w próbie. 
Jak to działa? Przykład. Mam 1000 grup po 20 osób każda. Każda z tych osób została zbadana pod kątem interesującej psychologa cechy. Jaki typ rozkładu mają średnie tej cechy? Jeśli ta cecha ma w populacji rozkład normalny, to nie dość, że wykres będzie wykresem rozkładu normalnego (to trochę stylistyczne powtórzenie), to rozkład średnich również jest rozkładem normalnym.


Rys. Rozkład cechy w populacji i rozkład średnich w próbie (LJK).


Dla cechy która ma rozkład normalny, rozkład średnich w różnych próbach będzie rozkładem normalnym (na to jest odpowiedni dowód matematyczny). Natomiast dla cechy, której rozkład nie jest rozkładem normalnym, korzysta się z CTG. 
Poniżej mamy cechę z rozkładu wykładniczego. Jej rozkład jest po lewej stronie. A po prawej stronie mamy rozkład średnich tej cechy w tysiącu dwudziestoelementowych próbek.
 
Rys. Rozkład cechy w populacji i rozkład średniej cechy w próbie (LJK).
Rozkład średniej w próbie jest nieco skośny z prawej strony. Rozkład normalny tymczasem jest symetryczny. 
Skoro w obliczaniu końców przedziału ufności korzysta się z kwantyli jakiegoś rozkładu, to tym sposobem zaocznie wskazuje się na ten rozkład. My używamy kwantyli rozkładu normalnego. Może ktoś pamięta wartość 1.96? 1.96 jest kwantylem rozkładu normalnego. 
Więc... spróbujmy postąpić inaczej. Gdybyśmy skądś wiedzieli, jaki jest rozkład wszystkich dwudziestoelementowych średnich tejże cechy, to łatwo byłoby skonstruować taki przedział (niżej). 
Ale tego nie mamy, możemy za to próbować odgadnąć jak wygląda taki rozkład. W tym celu przyda się bootstrap. Jak to wygląda? 

Boostrap.
Na bootstrap składają się dwa pojęcia – repróbkowanie za pomocą losowania ze zwracaniem oraz zasada wtyczki (plug in principle) – czyli metaforyczna nazwa na użycie formuły (po ludzku: wzoru) pozwalającej obliczyć interesującą nas statystykę opisową. 

Losowanie ze zwracaniem.

Najpierw poznamy pojęcie losowania ze zwracaniem. Wyjaśnię to w obrazowy sposób. Mamy naszą oryginalną próbę dwudziestu wartości cechy X. Repróbkowanie ogólnie będzie polegało na utworzeniu nowej próby z elementów tej oryginalnej. Re-próbka ma mieć tyle samo elementów, czyli też dwadzieścia. Powstanie za pomocą mechanizmu losowania ze zwracaniem (nie jest to jedyny sposób repróbkowania, ale w bootstrapie robimy właśnie ten). 


Losowanie ze zwracaniem polega na tym, że po wylosowaniu elementów z worka i odnotowaniu jego wartości z powrotem wkładamy go do wora. Można go wylosować jeszcze raz, i jeszcze jeden i w ogóle może zdarzyć się tak, że tylko ten jeden wylosujemy te dwadzieścia razy (ale naprawdę rzadko tak się dzieje :).

Przykład losowania ze zwracaniem. Oryginalna próba ma trzy elementy (np. kulki z etykietami): {a,b,c}. Losujemy trzy razy ze zwracaniem, za każdym razem zapisując etykietę elementu i odkładając ją do puli). Próba jaka mogłaby powstać to: {b,b,c}. Inna to mogłaby być {a,b,a}. Jeszcze ktoś inny dostanie {c,c,a}.

Tak utworzona próbę wtórną {b,b,c} nazywa się próbą bootstrapową. Spróbowałam otrzymać jedną próbę bootstrapową dla naszych danych i mam taki wynik: 
3 1 1 1 3 6 2 1 5 1 5 2 5 6 1 3 1 6 3 0 
Co się stało? Bootstrapowa próba różni się od oryginalnej. Mamy siedem razy wartość 1 – w oryginalnej próbie były trzy. Na poniższym rysunku widać rozłożenie poszczególnych wartości.
Rys. Rozkład wartości pojedynczej próby bootstrapowej (LJK).


Czy można policzyć średnią w tej bootstrapowej próbie? Na to pytanie odpowiada zasada wtyczki.



Zasada wtyczki (plug-in principle).


Jest to tak intuicyjne, że w pierwszej chwili można nie wiedzieć o co chodzi, więc po kolei.

My bootstrapujemy teraz średnią. Wzór na średnią (zsumować wszystkie wartości i podzielić przez ich ilość) działa dla jakichkolwiek liczb.



Tak więc można zastosować wzór na średnią do naszej bootstrapowej próby numer 1. W wyniku zastosowania wzoru otrzymamy liczbę: 2.8. Cóż, dużo mniej niż ta oryginalna..
Skoro mamy jedną próbę bootstrapową i jedną bootstrapową wartość średniej, to tę procedurę można wykonywać nieskończenie wiele razy. Okazuje się, że rozsądnie jest zrobić to co najmniej 1000 razy.

Będziemy mieć tysiąc prób boostrapowych i tysiąc obliczonych dla każdej z nich wartości średniej.
Można byłoby zobaczyć, jak wygląda histogram takich średnich.
 

Rys. Histogram wartości średnich bootstrapowych (LJK).


Histogram to nic innego jak rozkład. Pionowa kreskowana linia to bootstrapowa wartość średniej.

Mając rozkład możemy policzyć przedział ufności bez używania wzorów, które to z kolei odwołują się do CTG. Jest kilka sposób obliczania przedziałów, my weźmiemy najprostszy i mamy wynik: [3,45; 6,20]. W porównaniu do przedziału ufności obliczanego tradycyjnie przez wzory jest on trochę węższy (tamten wynosił [3,35; 6,25]). Bootstrapowy przedział ufności tym się różni od tradycyjnego, że nie odwołuje się do Centralnych Twierdzeń Granicznych (CTG). Obliczając go, opieramy się na empirycznym rozkładzie estymatora średniego poziomu cechy w populacji, czyli średniej w próbie.

Tak wygląda najbardziej podstawowe (i popularne też) wykorzystanie bootstrapu i najprostszy bootstrapowy przedział ufności dla średniej. 

Posłowie
*Wiem, że jest propozycja ze strony pewnego uznanego psychologa, aby w języku polskim bootstrap nazywał się „samowspornością”. Cóż, podczas moich studiów na matematyce, ani też późniejszych rozmów z matematykami nikt nie znał tego pojęcia. Bootstrap to bootstrap – nie ma dobrego polskiego odpowiednika, tak jak na słowo 'computer' (choć Chińczycy zrobili z tego „elektryczny mózg”, 电脑). Mnie nie przekonuje propozycja polskiego odpowiednika, po prostu nie brzmi mi dobrze. No, ale jak się przyjmie, to się przyjmie. Uważam, że się nie przyjmie, bo trzeba byłoby przekonać grona innych naukowców nie tylko ze środowiska psychologicznego.