Tło : Mam doktorat z psychologii społecznej, gdzie statystyki teoretyczne i matematyka były ledwo ujęte w moich ilościowych zajęciach. Przez szkołę licencjacką i gradową uczyłem się (podobnie jak wielu z was również w naukach społecznych) poprzez „klasyczne” ramy częstokroć. Teraz Uwielbiam też R i za pomocą metod symulacyjnych w celu sprawdzenia, że metody pracy sprawia, że sposóbbardziej sensowny dla mnie niż dowód matematyczny (znowu: tło w ilościowej nauce społecznej, a nie statystyki teoretyczne). Metody częstych i metody symulacji razem mają dla mnie mnóstwo sensu. Ponieważ częstokroć postrzegają prawdopodobieństwo jako szanse długoterminowe (np. Jeśli zrobię to dowolnie wiele razy, a zdarza się to w 50% przypadków, istnieje prawdopodobieństwo 50%). Możemy symulować ten długi okres metodami Monte Carlo!
Powikłania : Ponieważ undergrad, byłem bardzo świadomy metody Bayesa, i nie zawsze ludzie w moim życiu nazywając mnie do Bayesa boku, mówiąc, że wyniki były łatwiejsze do interpretacji, że mamy prawdopodobieństwa dla hipotezy zamiast danych biorąc pod uwagę hipotezę itp. Naprawdę się tym zajmowałem i wziąłem udział w lekcji bayesowskiej, przeczytałem kilka książek i artykułów bayesowskich, a teraz całkiem dobrze znam Stan i związane z nim pakiety R.
Enter Mayo : Po przemyśleniu „Bayesian jest prawdopodobnie drogą przyszłości”, przeczytałem Wnioskowanie statystyczne Deborah Mayo jako poważne testowanie . Mówi, że nie wybiera strony na początku książki, ale robi to: jest częstym, a duża część książki broni metodologii częstych. Nie chcę koniecznie wdawać się w dyskusję na temat tego, czy uważamy, że sposób, w jaki postrzega dowody, jest ważny, ale to sprawiło, że pomyślałem: czy Bayes jest naprawdę wszystkim, co jest reklamowane? Mam na myśli to, że tłum Bayesów jest tak podzielony, że nawet nie znam „właściwej” metody częstej analizy danych w ramach Bayesa. Zwykle po prostu używałbymrstanarm
i prezentujemy szacunki punktowe i wiarygodne przedziały ... które często są ściśle zgodne z częstymi szacunkami i przedziałami ufności. Mogę robić porównania modeli, ale zawsze boję się opisywać czynniki Bayesa jako porównania prawdopodobieństwa a posteriori itp.
Więcej przemyśleń: W mojej książce Mayo zastanawiałem się: Istnieje sposób, w jaki możemy wykorzystać komputery, aby upewnić się, że nasze metody częstokroć działają, ponieważ prawdopodobieństwo jest tym, co widzimy na dłuższą metę i możemy to zasymulować. Bayesianie nie mogą nawet zgodzić się co do tego, jakie jest prawdopodobieństwo, w zależności od szkoły bayesowskiej (domyślne, subiektywne itp.). Co prowadzi mnie do mojego pytania:
Pytanie : W jaki sposób Bayesianie weryfikują, czy ich metody poprawnie określają niepewność (tj. Obliczają prawidłowe wiarygodne przedziały i rozkłady tylne) przy użyciu metod symulacji Monte Carlo, jeśli prawdopodobieństwo nie jest zdefiniowane jako wskaźniki w długim okresie?
Przykład : tworzę generator danych. To będzie po prostu symulować z rozkładu Bernoulliego z prawdopodobieństwem .5:
set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
rbinom(n, 1, p)
}
Powiedzmy, że chcę się upewnić, że przedziały ufności w regresji logistycznej są rzeczywiście poprawne. Potrafię symulować regresję wiele razy i upewnić się, że rzeczywista wartość populacji mieści się w 95% przedziale ufności w 95% przypadków. Jest to model tylko przechwytujący, więc chcę się tylko upewnić, że p
poprawnie oceniam :
set.seed(1839)
iter <- 10000
results <- sapply(seq_len(iter), function(zzz) {
mod <- glm(gen_dat(n, p) ~ 1, binomial)
conf <- suppressMessages(confint(mod))
log(p / (1 - p)) < max(conf) & log(p / (1 - p)) > min(conf)
})
mean(results)
Uruchomienie zajmuje kilka minut, ale ostatecznie otrzymujemy mean(results)
połączenie 0.9416
. Jest to około 95% i jestem przekonany, że glm
polecenie to opisuje niepewność w prawidłowy sposób. Jestem pewien, że przy 95% zbliżyłbym się do nosa, gdybym podniósł się iter
i chciałem dłużej czekać na swoim laptopie.
Z drugiej strony, dopasujmy model Bayesa do tej samej rzeczy:
library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)
Po części daje mi to:
Estimates:
mean sd 2.5% 25% 50% 75% 97.5%
(Intercept) -0.1 0.2 -0.5 -0.2 -0.1 0.0 0.3
mean_PPD 0.5 0.1 0.3 0.4 0.5 0.5 0.6
log-posterior -73.0 0.7 -75.1 -73.1 -72.7 -72.5 -72.5
Ponieważ Bayesianie nie definiują prawdopodobieństwa jako tego, co widzimy na dłuższą metę, w jaki sposób mogę użyć metod symulacyjnych do weryfikacji, niż stan_glm
dokładnie wychwytuje niepewność? To znaczy, jak mogę ufać, że te wiarygodne przedziały są prawidłowe, stosując metody symulacji? I w tej chwili nawet nie definiuję przeora - w jaki sposób ma tu zastosowanie włączenie przeorów, skoro wpłynie to na nasze mierniki niepewności?
Kiedy próbowałem napisać od początku regresję beta z komponentem modelu przeszkody w Stanie, ktoś polecił mi: „Symuluj dane. Zrób to kilka razy, a prawdziwe szacunki powinny być w wiarygodnym przedziale około 95 % czasu. ” Ale dla mnie jest to sprzeczne z tym, w co wierzą Bayesianie! To opiera się na częstym rozumieniu prawdopodobieństwa! Jak więc Bayesian przekonałby mnie, że wiarygodny przedział czasu, jaki otrzymuję od summary()
połączenia do mojego modelu, dokładnie opisuje niepewność za pomocą metod symulacyjnych?
Cel pytania : To jest trywialny przykład, ale wiele razy klienci napotykają na mnie trudne problemy. Próbuję rzeczy, których nie znam, więc często przeprowadzam badanie symulacyjne, aby upewnić się, że to, co robię, jest prawidłowe. Gdybym miał napisać niestandardowy model w Stanie, skąd miałbym wiedzieć, że to, co robię, jest legalne? Jak mogę użyć metod symulacji, aby zweryfikować, że to, co robię w Stanie, powie mi, co chcę wiedzieć?