Rozdział 23 Wykorzystanie metod numerycznych: symulacje, bootstrapping, testy permutacyjne

23.1 Symulacje w szacowaniu prawdopodobieństwa i proporcji

Symulacje są wygodnym sposobem przybliżenia rozwiązania wielu zadań, w sytuacji gdy problem jest złożony matematycznie, nie znamy lub nie ma prostej analitycznej postaci rozwiązania albo gdy trzeba uwzględnić specyficzną sytuację i dostosować się do charakterystyki danych.

Symulację umożliwiają oszacowanie wyniku, a po wyznaczeniu przedziałów ufności możemy również ocenić precyzję naszego oszacowania.

Przykład 23.1 Wylosuj 10 tysięcy punktów z kwadratu jednostkowego. Sprawdź, jaki odsetek tych punktów jest odalony od początku układu współrzędnych (dolnego lewego wierzchołka kwadratu) o mniej niż jednostkę. Na tej podstawie oszacuj liczbę \(\pi\) z 99-procentową ufnością. Co należałoby zrobić, żeby dwukrotnie zwiększyć precyzję oszacowania?

set.seed(124)
# Symulacja:
nsim <- 1e4
x <- runif(nsim)
y <- runif(nsim)
w <- x^2+y^2<1
res <- binom::binom.confint(sum(w), nsim, conf.level=0.99, method="wilson")
c(oszacowanie=res$mean*4, dolny_kraniec=res$lower*4, górny_kraniec=res$upper*4, 
   szerokość_przedziału = res$upper*4-res$lower*4)
##          oszacowanie        dolny_kraniec        górny_kraniec szerokość_przedziału 
##           3.15880000           3.11605030           3.20001302           0.08396272
# Dwukrotne zwiększenie precyzji jest możliwe przy czterokrotnym zwiększeniu próby:
nsim <- 4 * 1e4
x <- runif(nsim)
y <- runif(nsim)
w <- x^2+y^2<1
res <- binom::binom.confint(sum(w), nsim, conf.level=0.99, method="wilson")
c(oszacowanie=res$mean*4, dolny_kraniec=res$lower*4, górny_kraniec=res$upper*4, 
   szerokość_przedziału = res$upper*4-res$lower*4)
##          oszacowanie        dolny_kraniec        górny_kraniec szerokość_przedziału 
##           3.13390000           3.11249442           3.15492947           0.04243505

23.2 Bootstrapping

Metody bootstrapowe (metody samowsporne) to metody wyznaczania przedziałów ufności na podstawie symulacji opartych na pojedynczej próbie. W najprostszej wersji metoda polega na:

  1. wygenerowaniu wielu próbek, poprzez losowanie ze zwracaniem z pojedynczej próby (ang. resampling);

  2. obliczeniu dla każdej z takich próbek badanej statystyki stanowiącej oszacowanie parametru w populacji;

  3. a następnie wyznaczeniu przedziału ufności na podstawie odpowiednich kwantyli utworzonego rozkładu statystyki.

Metoda działa zwykle przynajmniej tak samo dobrze, jak standardowe przedziały ufności. Wymaga jednak oczywiście wystarczająco dużej losowej próby z populacji podlegającej badaniu. Metoda ma ograniczoną skuteczność, jeżeli dane nie mogą pochodzić z populacji skrajnie asymetrycznej lub w inny sposób ekstremalnej.

23.3 Testy permutacyjne

Testy permutacyjne to elastyczne nieparametryczne testy statystyczne oparte na permutacjach (rozumianych tutaj jako próby przekształcone przez przemieszanie wartości). Takie podejście umożliwia ocenę hipotez statystycznych bez potrzeby zakładania konkretnego rozkładu danych w populacji (a także homogeniczności wariancji, itp.).

Test permutacyjny składa się z następujących kroków:

  1. Wyznaczenie hipotezy zerowej. W zależności od sytuacji zakładamy, że nie ma różnicy między badanymi grupami albo korelacji (związku statystycznego) pomiędzy badanymi zmiennymi.

  2. Wyznaczenie hipotezy alternatywnej. W niektórych testach możliwe jest zastosowanie jednostronnej lub dwustronnej hipotezy alternatywnej.

  3. Obliczenie statystyki testowej (różnica średnich, korelacja, itp.) dla pierwotnych danych.

  4. Przeprowadzenie symulacji permutacyjnej. Losowo miesza się dane (między grupami, między obserwacjami), zachowując liczbę obserwacji w każdej grupie. Dla każdej kombinacji (nazywanej w tym kontekście permutacją) oblicza się wartość statystyki testowej. W ten sposób powstaje rozkład permutacyjny statystyki testowej. Teoretycznie, w przypadku małych prób, możliwe jest wyznaczenie wszystkich permutacji; w praktyce jednak, ze względu na ograniczone możliwości obliczeniowe, stosuje się ograniczoną liczbę losowych permutacji, np. 1000 lub 10000.

  5. Na podstawie rozkładu permutacyjnego, dla przyjętej formy hipotezy alternatywnej, wyznacza się permutacyjną wartość p (p-value), którą można porównać z przyjętym poziomem istotności \(\alpha\).

23.4 Zadania

Zadanie 23.1 Za pomocą symulacji oszacuj, jakie jest prawdopodobieństwo, że w 23-osobowej grupie przynajmniej dwie osoby obchodzą urodziny tego samego dnia.

Zadanie 23.2 Na Boże Narodzenie 28-osobowa klasa chce przygotować sobie wzajemnie prezenty. Karteczki z imionami wszystkich wrzucone są do pudełka i każdy losuje jedną karteczkę. Za pomocą symulacji oszacuj, jakie jest prawdopodobieństwo, że nikt nie wylosuje siebie.

Zadanie 23.3 Załóżmy, że proporcja w populacji wynosi 0,25. Sprawdź, czy 95-procentowy przedział ufności dla proporcji wyznaczony na podstawie 39-elementowej próby jest rzeczywiście 95-procentowy. Jakiej liczebności replikacji potrzeba, żeby oszacować rzeczywistą ufność z precyzją plus minus 0,1 pp? Przeprowadź odpowiednie szacunki.

Zadanie 23.4 Pobieramy 100-elementową próbę losową z populacji o rozkładzie normalnym i na jej podstawie wyznaczamy 95-procentowy przedział ufności dla średniej. Następnie pobieramy kolejną 100-elementową próbę losową z tej samej populacji. Ile wynosi prawdopodobieństwo, że średnia z drugiej próby trafi do wyznaczonego na podstawie pierwszej przedziału ufności? Oszacuj je, wykorzystując symulację. Wbrew naturalnej intuicji prawdopodobieństwo to nie wynosi 0,95.

Zadanie 23.5 Wygeneruj 39 liczb z rozkładu normalnego o średniej 179 i odchyleniu standardowym 7. Na podstawie takiej syntetycznej próby

  • zbuduj przedział ufności dla średniej metodą standardową (wzór z lub t),

  • zbuduj przedział ufności dla średniej metodą bootstrap,

  • zbuduj przedział ufności dla odchylenia standardowego metodą bootstrap.

Zadanie 23.6 Wygeneruj 50 par obserwacji dwóch zmiennych X i Y z dwuwymiarowego rozkładu normalnego o korelacji równej 0,4. Oblicz korelację dla próby.

  • Wyznacz przedział ufności dla współczynnika korelacji i przeprowadź odpowiedni test istotności, używając wzorów przedstawionych w rozdziale 22.

  • Wygeneruj przedział ufności dla współczynnika korelacji metodą bootstrap.

  • Wygeneruj p-value testu na istotność korelacji z wykorzystaniem metody permutacyjnej.

Zadanie 23.7 Wykorzystaj dane z zadania 11.6, aby przeprowadzić test permutacyjny sprawdzający hipotezę zerową o równości średnich czasów dojazdu na uczelnię rowerem Sz i rowerem Ko. Zbuduj bootstrapowy przedział ufności dla różnicy średnich czasów i dla miary wielkości efektu d Cohena.

Zadanie 23.8 Użyj danych z zadania 16.2, żeby przeprowadzić test permutacyjny.

Zadanie 23.9 Użyj danych z zadania 22.2, żeby przeprowadzić test permutacyjny współczynnika korelacji. Wyznacz przedział ufności dla współczynnika korelacji metodą bootstrapową.