Grundkonzepte Bayesianischer Analysen
An einem fiktiven klinischen Beispiel mit viel zu kleinem
Inhaltsverzeichnis
In vielen Bereichen der Psychologie haben wir ein Problem. Also, eigentlich mehrere, aber eins beschäftigt uns außerordentlich häufig, auch während des Studiums: unsere Studien arbeiten oft mit sehr kleinen Stichproben. Insbesondere in klinischen Untersuchungen liegt das oft einfach daran, dass es sehr aufwendig ist Probanden zu erheben. Wenn wir psychotherapeutische Interventionen untersuchen bedeutet oft jedes einzelne zusätzliche
Ein einfaches Beispiel
Nehmen wir an, dass Sie in einer Suchtklinik arbeiten - oder vielleicht ein Praktikum machen. Das bisherige System, nach welchem Patient:innen Ausgang außerhalb des Klinikgeländes gewährt wird bezieht sich vor allem auf die Zeit, die die Person schon in der Klinik ist. Als Sie anfangen, finden Sie das System irgendwie suboptimal und Sie denken sich: “Das sollte doch eigentlich vom Therapiefortschritt abhängen…”. Obwohl Sie vielleicht Recht haben, ist auch für die Patient:innen Planbarkeit wichtig: ein Termin beim Bürgeramt, zum Beispiel, muss etliche Wochen vorab vereinbart werden. Also denken Sie sich etwas Neues aus, das alle super glücklich machen sollte. Sie können dieses System aber nicht an 42 Leuten testen (wie Ihre Poweranalyse Ihnen rät), sondern probieren es zunächst mit den zehn Patient:innen, die im Rahmen des Praktikums in Ihre Obhut übergeben wurden.
Ihr neues System führt dazu, dass 7 von 10 Patient:innen aus dem Ausgang zurück kommen ohne Drogen genommen zu haben. Angesichts der Tatsache, dass es bei den Kolleg:innen, die sich an das alte System halten immer knapp die Hälfte ist, verbuchen Sie das als Erfolg. Übertragen wir das Ganze mal in R
:
# Beobachtungen
obs <- c(0, 1, 1, 0, 1, 1, 1, 0, 1, 1)
# N
length(obs)
## [1] 10
# Erfolgsquote
mean(obs)
## [1] 0.7
Jede 1
stellt eine Person dar, die erfolgreich aus dem Ausgang zurückkam, ohne Drogen genommen zu haben. Jede 0
ein Scheitern, dass Sie an Ihrer Berufswahl zweifeln lässt.
Etwas formaler ausgedrückt: wir wollen jetzt prüfen, ob die Erfolgsquote Ihres Systems sich von der Quote Ihrer Kolleg:innen unterscheidet. Die Nullhypothese ist also, dass wir vermuten, dass auch Ihr System eine Erfolgsquote von 50% produziert:
Frequentistische Ansätze
Parametrischer Ansatz: -Test
Gucken wir uns zunächst die Möglichkeiten an, zu prüfen, ob Ihr System besser ist als das Ihrer Kolleg:innen. Ein klassischer Ansatz (den Sie hier im Appendix nachlesen können) ist der
# Häufigkeitstabelle der Erfolge
tab <- table(obs)
# Tabelle in den Chi2-Test
chisq.test(tab)
##
## Chi-squared test for given probabilities
##
## data: tab
## X-squared = 1.6, df = 1, p-value = 0.2059
Was hier geprüft wird ist die gleichmäßige Besetzung der Zellen. Unter der Nullhypothese
chisq.test(tab)$expected
## 0 1
## 5 5
In diesem Fall erhalten wir ein nicht bedeutsames Ergebnis - wir behalten die Nullhypothese also bei.
Den Aufmerksamen unter Ihnen ist vielleicht aufgefallen, dass der
Diese Tatsache führt dazu, dass insbesondere in klinischen Studien häufig gefordert wird, stattdessen mit Tests zu arbeiten, die sich nicht auf asymptotische Eigenschaften verlassen - sogenannte non-parametrische Tests. Für unser Beispiel gibt es da zum Glück eine recht einfache Möglichkeit!
Wenn Ihre Statistik I Vorlesung noch nicht allzu lange her ist, erinnern Sie sich vielleicht, dass die Anzahl von Erfolgen
Für diesen Fall also:
# Wahrscheinlichkeit händisch bestimmen
choose(10, 7) * 0.5^7 * (1 - 0.5)^(10 - 7)
## [1] 0.1171875
Uns interessiert aber nicht, wie wahrscheinlich es ist, dass Sie genau sieben Erfolge haben. In der Inferenzstatistik interessiert uns typischerweise, wie wahrscheinlich es ist dieses oder ein extremeres (im Fall der ungerichteten Nullhypothese) Ergebnis zu finden. Dafür können wir einfach die Funktion zur Binomialverteilung nutzen:
# Gerichtet
pbinom(6, 10, 0.5, lower.tail = FALSE)
## [1] 0.171875
# Ungerichtet
pbinom(6, 10, 0.5, lower.tail = FALSE) + pbinom(3, 10, 0.5)
## [1] 0.34375
Wir setzen hier 6 und nicht 7 in die Funktion ein, weil uns pbinom
die Überschreitungswahrscheinlichkeit ausgibt. Wir brauchen also die Wahrscheinlichkeit dafür einen Wert von 6 zu überschreiten (weil wir die 7 ja einschließen wollen). Der Test, den wir gerade durchgeführt haben, nennt man Binomialtest und auch für diesen gibt es eine eigene Funktion in R
, die dem gleichen Schema folgt, wie z.B. die t.test
-Funktion:
binom.test(7, 10, 0.5)
##
## Exact binomial test
##
## data: 7 and 10
## number of successes = 7, number of trials = 10, p-value = 0.3438
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
## 0.3475471 0.9332605
## sample estimates:
## probability of success
## 0.7
Auch hier also keine statistische Bedeutsamkeit.
Power in unseren frequentistischen Möglichkeiten
Wir haben jetzt also zwei Ansätze gesehen die einfache Frage zu prüfen, ob Ihr Ausgangssystem zu anderen Erfolgsquoten führt, als das Ihrer Kolleg:innen. Dabei hatten wir zunächst den klassischen, parametrischen Weg gewählt und einen
Also sind wir auf einen non-parametrischen Test ausgewichen (den Binomialtest). Das Problem dabei ist, dass wir die Power unsere Inferenzstatistik sogar noch verringern. In parametrischen Tests “gewinnen” wir ein wenig Power dadurch, dass wir Annahmen machen. Wenn wir weniger Annahmen machen, brauchen wir mehr Daten, um zur gleichen Sicherheit zu kommen. Mehr zur Poweranalyse in frequentistischen Analysen finden Sie hier.
Neyman-Pearson Nullhypothesentests
In unseren frequentistischen Berechnungen haben wir unsere Analysen stets mit der Betrachtung des
Im klassischen Neyman-Pearson Nullhypothesentest haben wir an dieser Stelle keine belastbare Erkenntnis generiert. Wir behalten unsere Nullhypothese bei, weil wir keinen echten Anlass haben, von dieser Abstand zu nehmen. In der nächsten Untersuchung (die vielleicht die nächste Praktikantin an der gleichen Klinik durchführen wird) werden wir wieder mit der Nullhypothese anfangen, dass Ihr Plan genauso gut ist, wie der Ihrer Kolleg:innen (es wird also wieder
Um uns noch einmal kurz zu verdeutlichen, warum das ist, gucken wir uns noch einmal an, was ein
Der
Ein kurzer Einschub zur klassischen Wissenschaftstheorie
Das klassische Nullhypothesentesten ist konzeptuell sehr nah an Karl Poppers naivem Falsifikationismus. Dieses Konzept haben Sie im Verlauf des Studiums bestimmt schon etliche Male gehört: wir haben eine Theorie, leiten aus dieser eine Hypothese (hier die
In den 60er und 70er Jahren wurde diese Ansicht des wissenschaftlichen Erkenntnisgewinns stark kritisiert. Vor allem Thomas Kuhn und Imre Lakatos (aber auch Popper selbst) integrierten in wissenschaftstheoretische Konzept, dass wissenschaftlicher Fortschritt durch schrittweise Anpassung von Theorien, das einpflegen neuer Erkenntnisse und die subjektiven Ansichten von Forscher:innen hinsichtlich der Nützlichkeit von Theorien geleitet wird. Nur in äußerst seltenen Fällen wird eine Theorie in Gänze über Bord geworfen, wenn eine aus ihr abgeleitete Hypothese falsifiziert wird. Viel häufiger kommt es vor, dass neue (empirische) Erkenntnisse genutzt werden, um unsere Theorien zu verfeinern. Leider wird dieses Vorgehen in unserer Art Hypothesen zu prüfen nicht direkt reflektiert. Stattdessen entscheiden wir bei jeder Studie erneut über die Ablehnung der Nullhypothese und schreiten nur dann mit unserem Wissen voran, wenn dies erfolgreich ist.
Wenn Sie eine etwas detaillierte Betrachtung des Nullhypothesentestens und bayesianischer Alternativen aus wissenschaftstheoretischer Sicht interessiert, ist das Buch von Dienes (2008) sehr empfehlenswert.
Likelihood
Leider bekommen wir von unseren Tests also eine Aussage über Daten, gegeben der Hypothesen und keine Aussagen über unsere Hypothesen. Naiv verstehen wir aber meistens die Daten als “fix” und unsere Hypothesen als das, was mit Unsicherheit behaftet ist. Also interessiert uns eher wie wahrscheinlich unsere Hypothese ist, gegeben der Daten -
Gucken wir uns noch einmal den Binomialtest an, den wir durchgeführt haben, um zu bestimmen wie wahrscheinlich es ist sieben “Erfolge” zu verbuchen, wenn wir zehn Patient:innen in den Ausgang schicken:
R
dann für unseren spezifischen Fall:
choose(10, 7) * 0.5^7 * (1 - 0.5)^(10 - 7)
## [1] 0.1171875
Wenn die Grundrate in der Population also
pi <- c(0.5, 0.6, 0.7, 0.8, 0.9, 1)
L <- choose(10, 7) * pi^7 * (1 - pi)^(10 - 7)
d <- data.frame(pi, L)
d
## pi L
## 1 0.5 0.11718750
## 2 0.6 0.21499085
## 3 0.7 0.26682793
## 4 0.8 0.20132659
## 5 0.9 0.05739563
## 6 1.0 0.00000000
Wir haben den Prozess also umgedreht: statt L
bezeichnet, weil es statistisch als Likelihood bezeichnet wird:
L_H0 <- dbinom(7, 10, 0.5)
L_H1 <- dbinom(7, 10, 0.7)
L_H1/L_H0
## [1] 2.276932
Eine Grundrate von .7 ist - gegeben der von uns beobachteten Daten - also 2.28-mal so likely wie eine Grundrate von .5. Der Begriff Likelihood Ratio ist Ihnen bestimmt schon einmal begegnet: genau das gleiche Prinzip nutzen wir, um verschiedene Modelle z.B. in hierarchischer Regression oder Faktorenanalyse zu vergleichen. In unserem Fall hier sind die “Modelle” nur sehr simpel: in einem ist die Grundrate .5 in dem anderen ist sie .7.
In der R
-Syntax benutze ich hier jetzt dbinom
statt die komplette Binomialverteilung händisch aufzuschreiben - es passiert aber genaus das Gleiche. Wir können die Dichteverteilung sogar nutzen, um uns anzugucken, wie die Likelihood so über verschiedene Werte von
likeli_plot <- ggplot(d, aes(x = pi, y = L)) + xlim(0, 1) + geom_function(fun = dbinom,
args = list(x = 7, size = 10)) + labs(x = expression(pi), y = "Likelihood")
likeli_plot + geom_vline(xintercept = 0.5, lty = 2) + annotate("text", x = 0.48,
y = 0.02, label = "H[0]", parse = TRUE) + geom_vline(xintercept = 0.7, lty = 2) +
annotate("text", x = 0.68, y = 0.02, label = "H[1]", parse = TRUE)

Basic Bayes
Für einen Beitrag, der eigentlich “Grundideen Bayesianischer Analysen” betitelt ist, war das ganz schön viel Vorgeplänkel bis ich jetzt endlich bei Bayes angekommen bin. Aber all das war nötig, um ein Verständnis von dem zu bekommen, was jetzt passiert (vermute ich… mir ging es zumindest so).
Die Grundidee der Bayesianischen Analysen lässt sich eigentlich in folgender Gleichung zusammenfassen:

Auf der linken Seite steht also die uns eigentlich interessierende Aussage - wie wahrscheinlich ist unsere Hypothese
Das Gegenstück ist die Wahrscheinlichkeit, die Daten
Warum dann überhaupt so Forschung betreiben und diese klassischen
Als letzte Information benötigen wir noch die Wahrscheinlichkeit der Daten, die wir gefunden haben. Diese Wahrscheinlichkeit kann sehr schwierig zu bestimmen sein und hat letztlich nur einen konkreten Zweck: sie relativiert das Produkt aus Likelihood und Prior so, dass wir am Ende auch wirklich eine Wahrscheinlichkeit (also einen Wert zwischen 0 und 1) erhalten. Deswegen wird die Grundformel Bayesianischer Statistik häufig von dieser Komponente befreit und so notiert:

Der Posterior ist also propotional zu der Mischung aus Prior (unseren Vorannahmen) und den, in dieser Studie neu gewonnenen Daten. Wir “updaten” unsere Annahmen bzw. Theorien also anhand der Daten (die wir in Form der Likelihood berücksichtigen).
Uninformative Prior
Wenn das Vorwissen, das wir über den Gegenstand unserer Untersuchung haben quasi Null ist, können wir Prior setzen, die keine Information enthalten. In solchen Fällen sollen alle Möglichkeiten (also in unserem Fall alle Werte der Grundrate

Sie fragen Sich vielleicht, warum Sie nur zwei Linien sehen, wenn wir doch drei Komponenten (Prior, Likelihood und Posterior) haben. Das liegt daran, dass unser Prior keinerlei Information beinhält - jedes
Schwache Prior
Jetzt haben wir also einen sehr umständlichen Weg besprochen, exakt das Gleiche zu bekommen, wie vorher auch. Interessant wird das Ganze erst, wenn man über Prior Informationen in das System hineingibt, die Vorinformationen darstellen. Zum Beispiel könnten wir davon ausgehen, dass die Extreme unwahrscheinlicher Sind, als Werte in der Mitte - z.B. weil wir von unseren Kolleg:innen wissen, dass es keine Ausgangskonzepte gibt, die bewirken, dass niemand rückfällig wird oder alle rückfällig werden.

Wenn wir dermaßen schwache Annahmen in unsere Analysen einbauen, weicht die Posterior Verteilung nur leicht von unserer Likelihood Verteilung ab. Weil wir als Vorannahme hatten, dass
Starke Prior
Noch deutlicher wird dieser Effekt, wenn wir z.B. Informationen aus vorherigen Untersuchungen zum gleichen System einspeisen, dass Sie jetzt untersuchen wollen. Vielleicht stehen Sie im Kontakt zu anderen Kliniken, an denen schon mal ähnliche System erprobt wurden - immer wieder mit sehr kleinen Stichproben. All diese Informationen wollen Sie aber berücksichtigen, weil Ihre Studie mit

In weiteren Studien - z.B. wenn Sie den Standort wechseln oder einer Freundin in einer anderen Klinik empfehlen, das gleiche System mal auszuprobieren - können Sie diesen Posterior wiederum als Prior nutzen. So entsteht auch in der statistischen Auswertung kumulativer Erkenntnisgewinn.
Wie genau diese Posterior-Verteilungen zustandekommen werden wir uns im nächsten Bayes-Beitrag noch genauer angucken. Das wird dann ein Beitrag mit ein paar mehr tatsächlien Umsetzungen in R
… versprochen.
Inferenzstatistische Schlüsse mit Bayes
Im letzten Abschnitt hat in allen drei Varianten eins gefehlt: eine eindeutige Enstscheidung, ob Ihr Ausgangssystem jetzt besser ist, als das Ihrer Kolleg:innen. Was Ihnen in solchen Analysen eher sehr selten begegnen wird sind
Credible Interval
In frequentistischer Statistik können wir Konfidenzintervalle um unsere Punktschätzer generieren, die von Parameter, Standardfehler und der angestrebten Sicherheit abhängen. Z.B. hatten wir oben im Binomialtest von R
folgendes Konfidenzintervall ausgegeben bekommen:
binom.test(7, 10, 0.5)
##
## Exact binomial test
##
## data: 7 and 10
## number of successes = 7, number of trials = 10, p-value = 0.3438
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
## 0.3475471 0.9332605
## sample estimates:
## probability of success
## 0.7
Wenn wir unsere Studie unendlich häufig unter diesen Bedingungen durchführen würden, würde dieses Intervall in 95% aller Fälle den “wahren Wert” Ihres Ausgangssystems enthalten. Wenn wir uns nochmal die Likelihoodverteilung vor Augen führen, können wir an dieser erkennen, dass wir dabei einfach die extremen 5% der Verteilung abtrennen und die mittleren 95% betrachten:
ki <- binom.test(7, 10, 0.5)$conf.int
likeli_plot + geom_vline(xintercept = ki[1], lty = 3) + geom_vline(xintercept = ki[2],
lty = 3)

Mit unserer Bayes-Analyse können wir etwas Ahnliches bestimmen, das Credible Interval. Dieses Intervall entspricht dem Intervall in das der unbeobachtete Wert in der Population mit z.B. 95%iger Wahrscheinlichkeit fällt. Dieses Intervall bestimmen wir naheliegenderweise nicht aus der Likelihood-Verteilung, sondern aus unserer Posterior-Verteilung. Für diese interessieren uns dann ebenfalls die mittleren 95%. Für den Fall mit uninformativen Priors, ist das Credible Interval numerisch identisch zum Konfidenzintervall, das wir anhand des Binomial-Tests erzeugt haben. Am Beispiel mit starken Priors sieht das Intervall hingegen so aus:

Das 95%-Credible Interval ist in diesem Fall R
ermitteln können besprechen wir im zweiten Bayes-Beitrag, hier geht es erst einmal um das Prinzip: Credible Intervals sind die mittleren z.B. 95% der Posterior Verteilung.
Bayes-Factor
Der Bayes-Factor ist eine Kennzahl, die uns einen etwas direkteren Einblick in das Verhältnis zweier konkurrierender Theorien bzw. Hypothesen gibt. Dabei ist sie - anders als klassische
Der erste Weg ist es, zu vergleichen wie wahrscheinlich die Daten sind, wenn man zwei unterschiedliche Theorien annimmt. Letztlich nutzen wir also die Likelihood-Ratio:
Der zweite Weg ist der Vergleich der beiden anderen Terme unserer generellen Gleichung. Dabei können wir die Prior Odds
Falls Sie sich wundern: beide Wege sind komplett identisch - der erste Weg bietet sich lediglich als einfachere Konzeptualisierung an, wenn wir ganze Modelle vergleichen, der zweite Weg dann, wenn wir spezifische Punkt- (ungerichtete) oder Flächenhypothesen (gerichtete) vergleichen.
In unserem einfachen Beispiel gab es zunächst nicht direkt zwei “konkurrierende Modelle” - diesen Fall des Bayes-Factors werden wir im Beitrag zur Regression mit Bayes genauer beleuchten. Wir gucken uns hier also erst einmal nur den Vergleich einer Punkt-Hypothese an. Nehmen wir den Fall mit starkem Prior. Dort hatten wir angenommen, dass der Wert von
Dieser Vergleich lässt sich für jeden beliebigen Wert von

Der Bayes-Factor ist eine Aussage über die relative Evidenz für eine Hypothese gegenüber einer anderen. Weil viele Menschen etwas dagegen haben, Werte auch interpretieren zu müssen, hat sich für den Bayes-Factor die Daumenregel eingebürgert, dass ein Wert
Hier beenden wir erst einmal die generelle Einführung in Bayes. In den kommenden Abschnitten werden wir an diesem gleichen Beispiel noch zeigen, wie man mit R
händisch Bayesianische Analysen rechnen kann, wenn man Verteilungen kennt oder sich selbst eine Verteilung sampeln muss, weil man Verteilungen nicht kennt. Für die praktische Umsetzung mit echten Daten, gucken wir uns auch noch an, wie man mit dem R
-Paket brms
Bayesianisch Regressionen rechnen kann.
Literatur
Dienes, Z. (2008). Understanding psychology as a science: an introduction to scientific and statistical inference. Palgrave Macmillan.