Hintergrund : Ich habe einen Doktortitel in Sozialpsychologie, in dem theoretische Statistik und Mathematik in meinen quantitativen Kursen kaum behandelt wurden. Während des Studiums und der Graduiertenschule wurde ich (wahrscheinlich wie viele von Ihnen auch in den Sozialwissenschaften) durch das "klassische" frequentistische Rahmenwerk unterrichtet. Jetzt liebe ich auch R und die Verwendung von Simulationsmethoden, um zu überprüfen, ob Methoden funktionieren, ist WegSinnvoller für mich als mathematische Beweise (wieder: Hintergrund in einer quantitativen Sozialwissenschaft, keine theoretische Statistik). Frequentistische Methoden und Simulationsmethoden zusammen ergeben für mich eine Menge Sinn. Weil Frequentisten Wahrscheinlichkeit als langfristige Gewinnchancen betrachten (z. B. Wenn ich dies beliebig oft mache und es 50% der Zeit passiert, gibt es eine 50% ige Wahrscheinlichkeit). Wir können dies langfristig mit Monte-Carlo-Methoden simulieren!
Komplikationen : Seit dem Studium war ich mir der Bayes'schen Methoden sehr bewusst, und es gab immer Leute in meinem Leben, die mich auf die Bayes'sche Seite riefen und sagten, dass die Ergebnisse leichter zu interpretieren seien und dass wir die Wahrscheinlichkeit für eine Hypothese anstelle der Daten erhalten Ich hatte eine Hypothese usw. Ich war wirklich begeistert davon und nahm an einem Bayes-Kurs teil, las einige Bayes-Bücher und -Papiere und bin jetzt ziemlich vertraut mit Stan und den dazugehörigen R-Paketen.
Mayo betreten : Nachdem ich eine Weile gedacht hatte, "Bayesian ist wahrscheinlich der Weg der Zukunft", las ich Deborah Mayos statistische Inferenz als schwerwiegende Prüfung . Sie sagt, dass sie am Anfang des Buches keine Seite auswählt, aber sie tut es: Sie ist eine Frequentistin, und ein Großteil des Buches verteidigt die Frequentist-Methoden. Ich möchte nicht unbedingt darüber diskutieren, ob wir glauben, dass die Art und Weise, wie sie Beweise sieht, gültig ist oder nicht, aber das brachte mich zum Nachdenken: Ist Bayes wirklich alles, was beworben wird? Ich meine, die Bayes-Menge ist selbst so zerbrochen, dass ich nicht einmal den "richtigen" Weg kenne, um Daten in einem Bayes'schen Rahmen oft zu analysieren. Normalerweise würde ich nur verwendenrstanarm
und präsentieren Punktschätzungen und glaubwürdige Intervalle ... die oft eng mit häufigen Schätzungen und Konfidenzintervallen übereinstimmen. Ich könnte Modellvergleiche durchführen, habe aber immer Angst, Bayes-Faktoren als posteriore Wahrscheinlichkeitsvergleiche usw. zu beschreiben.
Mehr Nachdenken : Was ich in Mayos Buch immer wieder nachdachte, war: Es gibt eine Möglichkeit, mithilfe von Computern sicherzustellen, dass unsere häufig verwendeten Methoden funktionieren, denn die Wahrscheinlichkeit ist das, was wir auf lange Sicht sehen, und wir können dies simulieren. Die Bayesianer können sich nicht einmal darauf einigen, wie hoch die Wahrscheinlichkeit tatsächlich ist, abhängig von der Bayesianischen Schule (Standard, subjektiv usw.). Was mich zu meiner Frage führt:
Frage : Wie überprüfen Bayesianer mithilfe von Monte-Carlo-Simulationsmethoden, ob ihre Methoden die Unsicherheit richtig definieren (dh gültige glaubwürdige Intervalle und posteriore Verteilungen berechnen), wenn die Wahrscheinlichkeit auf lange Sicht nicht als Rate definiert ist?
Beispiel : Ich erstelle einen Datengenerator. Dies wird nur aus einer Bernoulli-Verteilung mit einer Wahrscheinlichkeit von 0,5 simuliert:
set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
rbinom(n, 1, p)
}
Angenommen, ich möchte sicherstellen, dass die Konfidenzintervalle in einer logistischen Regression tatsächlich gültig sind. Ich kann eine Regression sehr oft simulieren und sicherstellen, dass der tatsächliche Bevölkerungswert in 95% der Fälle in das 95% -Konfidenzintervall fällt. Da es sich nur um ein Intercept-Modell handelt, möchte ich nur sicherstellen, dass ich p
richtig schätze:
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)
Das dauert einige Minuten, aber am Ende wird mean(results)
uns der Anruf gegeben 0.9416
. Dies sind ungefähr 95%, und ich bin zuversichtlich, dass der glm
Befehl die Unsicherheit auf gültige Weise beschreibt. Ich bin mir sicher, dass es bei 95% näher an die Nase gerückt wäre, wenn ich mich erhöht hätte iter
und länger hier an meinem Laptop warten wollte.
Auf der anderen Seite passen wir ein Bayes'sches Modell für dasselbe an:
library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)
Zum Teil gibt mir dies:
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
Da Bayesianer Wahrscheinlichkeit nicht als das definieren, was wir auf lange Sicht sehen, wie kann ich Simulationsmethoden verwenden, um zu überprüfen, ob stan_glm
die Unsicherheit genau erfasst wird? Wie kann ich mithilfe von Simulationsmethoden darauf vertrauen, dass diese glaubwürdigen Intervalle gültig sind? Und im Moment definiere ich nicht einmal einen Prior - wie kommt hier die Einbeziehung von Priors ins Spiel, da dies unsere Unsicherheitsmaße beeinflusst?
Als ich einmal versuchte, eine Beta-Regression mit einer Hürdenmodellkomponente in Stan von Grund auf neu zu schreiben, wurde mir jemand empfohlen: "Daten simulieren. Tun Sie dies einige Male, und die tatsächlichen Schätzungen sollten im glaubwürdigen Intervall von etwa 95 liegen % der ganzen Zeit." Aber für mich widerspricht das genau dem, woran die Bayesianer glauben! Das beruht auf häufigem Verständnis der Wahrscheinlichkeit! Wie würde mich ein Bayesianer davon überzeugen, dass das glaubwürdige Intervall, das ich vom summary()
Aufruf meines Modells erhalte, die Unsicherheit mithilfe von Simulationsmethoden genau beschreibt?
Zweck der Frage : Dies ist ein triviales Beispiel, aber oft stellen Kunden mir schwierige Probleme. Und ich probiere Dinge aus, mit denen ich nicht vertraut bin, deshalb führe ich oft eine Simulationsstudie durch, um sicherzustellen, dass das, was ich tue, gültig ist. Wenn ich ein benutzerdefiniertes Modell in Stan schreiben würde, woher würde ich wissen, dass das, was ich tue, legitim ist? Wie kann ich mithilfe von Simulationsmethoden überprüfen, ob das, was ich in Stan mache, mir tatsächlich sagt, was ich wissen möchte?