9  Gauss-Modelle

Schlüsselwörter

Statistik, Bayes, Wahrscheinlichkeit, Inferenz, R, Kausalität

Bayes:Start!

Bayes:Start!

9.1 Lernsteuerung

Nach Absolvieren des jeweiligen Kapitels sollen folgende Lernziele erreicht sein.

Sie können …

  • ein Gaußmodell spezifizieren und in R berechnen
  • an Beispielen verdeutlichen, wie sich eine vage bzw. eine informationsreiche Priori-Verteilung auf die Posteriori-Verteilung auswirkt

Der Stoff dieses Kapitels orientiert sich an McElreath (2020), Kap. 4.1 bis 4.3.

Im YouTube-Kanal des Autors finden sich passende Videos wie 📺 Teil 1 und 📺 Teil 2.

Lesen Sie zur Vorbereitung folgende Kapitel im Eigenstudium:

In diesem Kapitel werden die folgenden R-Pakete benötigt.

Hinweis

Software, und das sind R-Pakete, müssen Sie nur einmalig installieren. Aber bei jedem Start von R bzw. Ihrer GUI wie Positron oder RStudio müssen Sie die (benötigten!) Pakete starten.

library(tidyverse)  # Datenjudo
library(rstanarm)  # Bayes-Modelle berechnen
library(easystats)  # Statistik-Komfort
library(DataExplorer)  # Daten verbildlichen
library(ggpubr)  # Daten verbildlichen
library(hexbin)  # stat_bin_hex ggplot2
Wichtig

Ab diesem Kapitel benötigen Sie Stan, das ist das R-Paket rstanarm. \(\square\)

Hallo, Leute! Ich bin Stan! Ich mache hier die Schwerarbeit.

Hallo, Leute! Ich bin Stan! Ich mache hier die Schwerarbeit.

Wir benötigen den Datensatz !Kung aus der Datei Howell1a.csv. Quelle der Daten ist McElreath (2020) mit Bezug auf Howell.

Kung_path <-  
  "https://raw.githubusercontent.com/sebastiansauer/Lehre/main/data/Howell1a.csv"  

kung <- read.csv(Kung_path) 

head(kung, n = 5)

Datenquelle4

Hinweis

Die Folien zu diesem Kapitel finden Sie hier.

9.2 Einstieg

Beispiel 9.1 (Was war noch mal eine Normalverteilung?) In diesem Kapitel benötigen Sie ein gutes Verständnis der Normalverteilung (die auch als Gauss-Verteilung bezeichnet wird). Fassen Sie daher die wesentlichen Aspekte der Normalverteilung (soweit im Unterricht behandelt) zusammen! \(\square\)

Beispiel 9.2 (Was war noch mal eine Posteriori-Verteilung?) In diesem Kapitel befragen wir die Post-Verteilung für eine normalverteilte Zufallsvariable, nämlich die Körpergröße der !Kung San. Was war noch mal eine Post-Verteilung und wozu ist sie gut? \(\square\)

9.3 Wie groß sind die !Kung San?

Dieser Abschnitt basiert auf McElreath (2020), Kap. 4.3.

9.3.1 !Kung San

In diesem Abschnitt untersuchen wir eine Forschungsfrage in Zusammenhang mit dem Volk der !Kung.

The ǃKung are one of the San peoples who live mostly on the western edge of the Kalahari desert, Ovamboland (northern Namibia and southern Angola), and Botswana.The names ǃKung (ǃXun) and Ju are variant words for ‘people’, preferred by different ǃKung groups. This band level society used traditional methods of hunting and gathering for subsistence up until the 1970s. Today, the great majority of ǃKung people live in the villages of Bantu pastoralists and European ranchers.

Quelle5

Wir interessieren uns für die Größe der erwachsenen !Kung, also filtern wir die Daten entsprechend und speichern die neue Tabelle als kung_erwachsen.

kung_erwachsen <- kung |> 
  filter(age >= 18)

nrow(kung_erwachsen)
## [1] 352

\(N=352\).

Lassen wir uns einige typische deskriptive Statistiken zum Datensatz ausgeben. {easystats} macht das tatsächlich recht easy, s. Tabelle 9.1.

describe_distribution(kung_erwachsen)
Tabelle 9.1: Statistiken der metrischen Variablen im Kung-Datensatz
Variable Mean SD Skewness Kurtosis n n_Missing
height 154.60 7.74 0.15 −0.48 352.00 0
weight 44.99 6.46 0.13 −0.51 352.00 0
age 41.14 15.97 0.67 −0.21 352.00 0
male 0.47 0.50 0.13 −2.00 352.00 0

Die Verteilungen lassen sich mit plot_density (aus dem R-Paket {DataExplorer}) erstellen, s. Abbildung 9.1.

plot_density(kung_erwachsen)
Abbildung 9.1: Verteilungen der Variablen im Kung-Datensatz. Größe und Gewicht sind recht symmetrisch bzw. normalverteilt; Alter ist rechtsschief.

9.3.2 Wir gehen apriori von normalverteilter Größe der !Kung aus

Forschungsfrage: Wie groß sind die erwachsenen !Kung im Durchschnitt?

Wir interessieren uns also für den Mittelwert der Körpergröße einer erwachsenen !Kung-Person, \(\mu\). Der Einfachheit halber gehen wir davon aus, dass Frauen und Männer im Schnitt gleich groß sind.

Mensch6

9.4 Unser Gauss-Modell der !Kung

9.4.1 Normalverteilung als Grundlage des Modells

Hier gehen wir von einer Normalverteilung (synonym: “Gauss-Verteilung”) des Populationsmittelwert, \(\mu\), sowie der tatsächlichen Körpergrößen der einzelnen Personen, \(h_i\) (h wie height) aus.

Zur Erinnerung: Die (unstandardisierte) Post-Verteilung ist das Produkt von Apriori und Likelihood, s. Abbildung 9.2. Im Folgenden gehen wir diese Bestimmungsstücke der Reihe nach durch, in gewohnter Manier.

Abbildung 9.2: Apriori mal Likelihood ist gleich der unstandardisierten Post-Verteilung

Nur dass wir dieses Mal die Bayesbox nicht von Hand berechnen, sondern Stan die Arbeit überlassen. Stan liefert uns brav eine Stichproben-Post-Verteilung zurück.

🤖 Ich berechne dir die Stichproben-Postverteilung, ganz ohne Bayesbox!

🧑🏫 Toll, dann hab ich ja nix zu tun!

9.4.2 Apriori-Verteilungen

Wir haben zwei Apriori-Größen (Parameter):

  1. Den Mittelwert der Körpergrößen in der Population, \(\mu\). Dieser Parameter beantwortet die Frage: “Wie groß sind die erwachsenen !Kung im Durchschnitt?”
  2. Die Streuung der tatsächlichen Körpergrößen um den Mittelwert der Population herum, \(\sigma\). Dieser Parameter beantwortet die Frage: “Wie unterschiedlich groß sind die erwachsenen !Kung?”

Apriori-Verteilung für \(\mu\): Der Mittelwert der Körpergröße, \(\mu\), sei normalverteilt mit \(\mu=178\) und \(\sigma=20\):

\[\color{blue}{\mu \sim \mathcal{N}(178, 20)} \qquad{\text{Prior}}\]

Apriori-Verteilung für \(\sigma\): Die Streuung der Größen, \(\sigma\), sei exponentialverteilt (da notwendig positiv) mit \(\lambda = 1/8\).

\[\color[RGB]{0,158,115}{\sigma \sim \mathcal{E}(1/8)} \qquad{\text{Prior}}\] Warum gerade \(\lambda=1/8\)? Das ist einfach ein grobes Abschätzen mit Blick auf Abbildung 6.9: Bei \(\lambda=1/8\) liegt der Median bei ca. 5 cm. Eine Streuung von ca. 5 cm um den Mittelwert herum erscheint nicht ganz falsch. Dann kann man folgern: \(95\%KI(\mu): 178 \pm 40\). In Worten: 95% der erwachsenen !Kung sind zwischen 138 cm und 218 cm groß – laut unserem Modell (unserer Apriori-Verteilung). Das ist ein ausreichend großer Bereich, um Überraschungen zuzulassen, aber eng genug, um biologisch unmögliche Werte auszuschließen.

In Abbildung 9.3 sind unsere Priori-Verteilungen visualisiert.

(a) Priori der mittleren Körpergröße
(b) Priori der Schätzungenauigkeit
Abbildung 9.3: Prioris unseres (ersten) Kung-Modells (m_kung)
Hinweis

Dieses Modell hat zwei Parameter, \(\mu\) und \(\sigma\). \(\square\)

Warum 178 cm? Kein besonderer Grund. Hier wollen wir den Effekt verschiedener Priori-Werte untersuchen.7 In einer echten Untersuchung sollte man einen inhaltlichen Grund für einen Priori-Wert haben. Oder man wählt “schwach informative” Prioris, wie das {rstanarm} im Standard tut: Damit lässt man kaum Vorab-Information in das Modell einfließen, aber man verhindert extreme Prioris, die meistens unsinnig sind (so wie eine SD von 100 Metern bei der Körpergröße).

Hinweis

Wir haben zwar vorab nicht viel Wissen, aber auch nicht gar keines: Eine Gleichverteilung der Körpergrößen kommt nicht in Frage und ein vages Wissen zum Mittelwert haben wir auch. Darüber hinaus ist eine Normalverteilung für Körpergröße biologisch nicht unplausibel und spiegelt sich in den Daten wider, s. Abbildung 9.1.

9.4.3 Likelihood

Für viele Ausprägungen von \(\mu\) und \(\sigma\) müssen wir (bzw. Stan) die jeweilige Likelihood berechnen. Z.B. ist zu fragen, wie groß die Wahrscheinlichkeit ist, dass wir einen !Kung finden mit Körpergröße 190 bis 191 cm (\(h_i = [190,191]\)), gegeben der Hypothesen (Parameterwerte), dass der Populationsmittelwert \(\mu=170\) cm und der Streuung der Körpergrößen \(\sigma = 10\) cm beträgt. Nehmen wir an, dass die Körpergrößen, \(h_i\) normalverteilt sind, dann können wir die Likelihood anhand der Quantile der Normalverteilung berechnen. Etwa so:

\[L = Pr(h_i = [190;191]\quad |\mu=180, \sigma=10)\]

Aber da wir das Rechnen an Stan geben, begnügen wir uns mit einer Kurz-Schreibweise

\[\textcolor{orange}{h_i} \sim \mathcal{\textcolor{orange}{N}}(\textcolor{blue}{\mu}, \textcolor{green}{\sigma}) \qquad \textcolor{black}{\textcolor{orange}{Likelihood}}\]

Lies: “Die Körpergröße ist normalverteilt mit Mittelwert \(\mu\) und Streuung \(\sigma\).” Stan weiß dann, was er zu tun hat. Für die Post-Verteilung muss Stan für alle plausiblen Kombinationen von \(\mu\) und \(\sigma\) die Likelihoods berechnen, s. Abbildung 9.4.

Abbildung 9.4: Die Verteilung der der Körpergrößen, \(h_i\) setzt sich aus zwei Verteilungen zusammen: Dem Mittelwert \(\mu\) und der exponentialverteilten Streuung \(\sigma\)

Jetzt haben wir unser Modell (m_kung) definiert!

Weil es so schön ist, schreiben/zeichnen wir es hier noch einmal auf, Gleichung 9.1.

\[ \begin{aligned} \mu &\sim \mathcal{N}(M=178, S=20) & \text{Prior} \\ \sigma &\sim \mathcal{E}(1/8) & \text{Prior} \\ h_i &\sim \mathcal{N}(\mu, \sigma) & \text{Likelihood} \\ \end{aligned} \tag{9.1}\]

9.4.4 Post-Verteilung berechnen mit Stan

Zur Berechnung von m_kung nutzen wir jetzt dieses Mal aber nicht die Bayesbox, sondern lassen Stan (in R) die Arbeit verrichten.

Okay, Stan, du Golem unseres Vertrauens! An die Arbeit! Berechne uns das Kung-Modell!

# library(rstanarm)  # nicht vergessen, das Paket zu starten
m_kung <- 
  stan_glm(height ~ 1,
  prior_intercept = normal(178, 20),
  prior_aux = exponential(1/8),
  refresh = 0,
  data = kung_erwachsen)  

m_kung_post <- as_tibble(m_kung)
names(m_kung_post) <- c("mu", "sigma")
1
Stan berechnet die Post-Verteilung für die Körpergrößen, \(h_i\), hier height genannt
2
Apriori für \(\mu\)
3
Apriori für \(\sigma\)
4
Stan soll nicht so geschwätzig sein und alle seine Stichproben am Bildschirm zeigen, sondern nur das Wichtigste zurückmelden.
5
Modellergebnis in Tabelle umwandeln
6
Schönere Namen für die Spalten geben

Mit stan_glm rufen wir Stan zur Arbeit. stan_glm8 ist eine Funktion, mit der man Regressionsmodelle berechnen kann. Nun haben wir in diesem Fall kein “richtiges” Regressionsmodell. Man könnte sagen, wir haben eine AV (Körpergröße), aber keine UV (keine Prädiktoren). Glücklicherweise können wir auch solche “armen” Regressionsmodelle formulieren: av ~ 1 bzw. in unserem Beispiel height ~ 1 bedeutet, dass man nur die Verteilung der AV berechnen möchte, aber keine Prädiktoren hat (das soll die 1 symbolisieren).

Betrachten wir die Post-Verteilungen von \(\mu\) und von \(\sigma\), s. Abbildung 9.5.

Abbildung 9.5: Die beiden Randverteilungen der Post-Verteilungen, d.h. die Verteilungen für mu und für sigma

Plotten wir mal die gemeinsame Post-Verteilung von m_kung, s. Abbildung 9.6, also die Kombinationen, die “Pärchen” der Werte von Mittelwert und Streuung.

Gemeinsame Post-Verteilung von Mittelwert, \(\mu\) und Streuung, \(\sigma\)

m_kung_post |> 
  ggplot() +
  aes(x = mu, y = sigma) |> 
  geom_hex() +
  scale_fill_viridis_c() 
Abbildung 9.6: Die gemeinsame Post-Verteilung von Mittelwert und Streuung von m_kung_neue_prioris
Abbildung 9.7: Die Postverteilung in unterschiedlicher Darstellung

Und hier kommt die Post-Verteilung nur des Mittelwerts.

Natürlich können wir auch nur von einem einzelnen Parameter (z.B. Mittelwert) die Verteilung untersuchen, s. Abbildung 9.8.

Abbildung 9.8: Die Post-Verteilung von mu in m_kung_neue_prioris; ein Balkendiagramm bietet sich an.

Da das Modell zwei Parameter hat, können wir auch beide gleichzeitig plotten. Wie man sieht, sind die beiden Parameter unkorreliert. In anderen Modellen können die Parameter korreliert sein. Abbildung 9.6 erlaubt uns, für jede Kombination von Mittelwert und Streuung zu fragen, wie wahrscheinlich diese bestimmte Kombination ist.

Fassen wir die Ergebnisse dieses Modells zusammen:

  • Wir bekommen eine Wahrscheinlichkeitsverteilung für \(\mu\) und eine für \(\sigma\) (bzw. eine zweidimensionale Verteilung, für die \(\mu,\sigma\)-Paare).

  • Trotz des eher vagen Priors ist die Streuung der Posteriori-Werte für \(\mu\) und \(\sigma\) klein: Die große Stichprobe hat die Priori-Werte überstimmt.

  • Ziehen wir Stichproben aus der Posteriori-Verteilung, so können wir interessante Fragen stellen.

9.5 Hallo, Posteriori-Verteilung

… wir hätten da mal ein paar Fragen an Sie. 🕵

  1. Mit welcher Wahrscheinlichkeit ist die mittlere !Kung-Person größer als 1,55m?
  2. Welche mittlere Körpergröße wird mit 95% Wahrscheinlichkeit nicht überschritten, laut dem Modell?
  3. In welchem 90%-PI liegt \(\mu\) vermutlich?
  4. Mit welcher Unsicherheit ist die Schätzung der mittleren Körpergröße behaftet?
  5. Was ist der mediane Schätzwert der mittleren Körpergröße, sozusagen der “Best Guess”?

Antworten folgen etwas weiter unten.

9.5.1 Posteriori-Stichproben von stan_glm() berechnen lassen

Mit stan_glm() können wir komfortabel die Posteriori-Verteilung berechnen. Die Gittermethode wird nicht verwendet, aber die Ergebnisse sind – für unsere Fälle – ähnlich. Es werden aber auch viele Stichproben simuliert (sog. MCMC-Methode).

Grob gesagt berechnen wir die Post-Verteilung mit stan_glm so: stan_glm(AV ~ UV, data = meine_daten).

Wir können, wie wir es oben getan haben, uns die Stichproben der Post-Verteilung ausgeben lassen, und diese z.B. plotten.

Wir können es aber auch komfortabler haben … Mit dem Befehl parameters kann man sich die geschätzten Parameterwerte einfach ausgeben lassen (s. Abbildung 9.6).

parameters(m_kung)  # aus Paket `easystats`
Parameter Median 95% CI pd Rhat ESS (tail) Prior
(Intercept) 154.61 (153.81, 155.43) 100% 1.000 2129 Normal (178 +- 20)

Das Wesentliche: Unser Golem schätzt den Größenmittelwert der Kung auf ca. 155cm bzw. auf einen Bereich von etwa 153.81 bis 155.43 (95%-ETI in der Voreinstellung9). Informativ ist vielleicht noch, dass wir den Prior erfahren, der im Modell verwendet wurde. Dazu später mehr.

Hinweis

In dieser Ausgabe sind ein paar Angaben, die wir nicht verstehen, wie pd, Rhat und ESS. Kein Problem: Einfach ignorieren 🤓 Wer Näheres wissen will, findet hier einen Anfang.10 Außerdem sei an McElreath (2020) und Gelman et al. (2021) verwiesen. \(\square\)

9.6 Wie tickt stan_glm()?

Hallo Leute, hier ist Stan!

Hallo Leute, hier ist Stan!

Hier ein paar Kerninfos zu stan_glm:

  • Stan)11 ist eine Software zur Berechnung von Bayesmodellen; das Paket rstanarm stellt Stan für uns bereit.
  • stan_glm() ist für die Berechnung von Regressionsmodellen ausgelegt.
  • Will man nur die Verteilung einer einzelnen Variablen (wie heights) schätzen, so hat man … eine Regression ohne Prädiktor.
  • Eine Regression ohne Prädiktor schreibt man auf Errisch so: y ~ 1. Die 1 steht also für die nicht vorhandene UV; y meint die AV (height).
  • (Intercept) (Achsenabschnitt) gibt den Mittelwert an.

Mehr findet sich in der Dokumentation von RstanArm12.

9.6.1 Schätzwerte zu den Modellparameter

Die Parameter eines Modells sind die Größen, für die wir eine Priori-Verteilung annehmen. Außerdem wählen wir die Normalverteilung als Likelihood-Verteilung, so dass wir die Likelihood berechnen können. Auf dieser Basis schätzen wir dann die Post-Verteilung. Ich sage schätzen, um hervorzuheben, dass wir die wahren Werte nicht kennen, sondern nur eine Vermutung haben, unsere Ungewissheit vorab also (wie immer) in der Priori-Verteilung festnageln und unsere Ungewissheit nach Kenntnis der Daten in der Posteriori-Verteilung quantifizieren. Wie gerade gesehen, lassen sich die Modellparameter (bzw. genauer gesagt deren Schätzungen) einfach mit parameters(modellname) auslesen.

9.6.2 Stichproben aus der Posteriori-Verteilung ziehen

Wie wir es vom Globusversuch gewohnt sind, können wir aber auch Stichproben aus der Post-Verteilung ziehen.

Hier die ersten paar Zeilen von m_kung_post:

head(m_kung_post)

In einer Regression ohne Prädiktoren entspricht der Achsenabschnitt dem Mittelwert der AV, daher gibt uns die Spalte (Intercept) Aufschluss über unsere Schätzwerte zu \(\mu\) (der Körpergröße).

Übungsaufgabe 9.1 (Mit welcher Wahrscheinlichkeit ist \(\mu>155\)?)  


names(m_kung_post) <- 
  c("mu", "sigma")  # den Namen "(Intercept)" durch "mu" ersetzen, ist prägnanter

m_kung_post |> 
  count(mu > 155) |> 
  mutate(prop = n/sum(n))

Die Wahrscheinlichkeit ist nicht hoch, aber nicht auszuschließen, dass die Kung im Schnitt größer als 155 cm sind. Wahrscheinlicher ist jedoch, dass sie kleiner als 155 cm sind. \(\square\)

Übungsaufgabe 9.2 (Mit welcher Wahrscheinlichkeit ist \(\mu>165\)?)  

names(m_kung_post) <- 
  c("mu", "sigma")  # den Namen "(Intercept)" durch "mu" ersetzen, ist prägnanter

m_kung_post |> 
  count(mu > 165) |> 
  mutate(prop = n/sum(n))

Oh, diese Hypothese können wir mit an Sicherheit grenzender Wahrscheinlichkeit ausschließen. Aber Achtung: Das war eine Kleine-Welt-Aussage! Die Wahrscheinlichkeit, die Hypothese \(\mu > 165\) auszuschließen, ist nur dann hoch, wenn das Modell gilt! Wenn also der Golem keinen Mist gebaut hat. Und sind wir mal ehrlich, der Golem tut, was sein:e Herr:in und Meister:in ihm befiehlt. Letztlich liegt es an uns, den Golem auf Spur zu kriegen.

Beispiel 9.3 (Welche mittlere Körpergröße wird mit 95% Wahrscheinlichkeit nicht überschritten, laut dem Modell m_kung?)  

m_kung_post |> 
  summarise(q95 = quantile(mu, .95))

Übungsaufgabe 9.3 (In welchem 90%-PI liegt \(\mu\) vermutlich?)  

m_kung_post |> 
  eti()

Ein ETI ist synonym zu PI.

Übungsaufgabe 9.4 (Mit welcher Unsicherheit ist die Schätzung der mittleren Körpergröße behaftet?)  

m_kung |> 
  parameters()
Parameter Median 95% CI pd Rhat ESS (tail) Prior
(Intercept) 154.61 (153.81, 155.43) 100% 1.000 2129 Normal (178 +- 20)

Seeing is believing, s. Abbildung 9.9.

m_kung |> 
  parameters() |> 
  plot(show_intercept = TRUE)
Abbildung 9.9: Parameter von m_kung, nur einer: der Intercept

Das Modell ist sich recht sicher: die Ungewissheit der mittleren Körpergröße liegt bei nicht viel mehr als einem Zentimeter (95%-CI).

Übungsaufgabe 9.5 (Was ist der mediane Schätzwert der mittleren Körpergröße, sozusagen der “Best Guess”?)  

parameters(m_kung) hat uns die Antwort schon gegeben: Ca. 155 cm.

🏋️ Ähnliche Fragen bleiben als Übung für die Lesis. 🤓

9.6.3 Standard-Prioriwerte bei stan_glm()

Man kann stan_glm() auch ohne Priori-Werte aufrufen. In dem Fall bestimmt Stan die Priori-Werte selber. Welche das sind, kann man sich so anzeigen lassen:

prior_summary(m_kung)
## Priors for model 'm_kung' 
## ------
## Intercept (after predictors centered)
##  ~ normal(location = 178, scale = 20)
## 
## Auxiliary (sigma)
##  ~ exponential(rate = 0.12)
## ------
## See help('prior_summary.stanreg') for more details

Aber welche Priori-Werte verwendet Stan? Ganz einfach: Stan zieht die Stichproben-Daten als Prioris heran. Strenggenommen ist das nicht “pures Bayes”, weil die Priori-Werte ja vorab, also vor Kenntnis der Daten bestimmt werden sollen.

Man sollte diese Standardwerte als (komfortablen) Minimalvorschlag sehen. Kennt man sich im Sachgebiet aus, kann man meist bessere Prioris finden. Die Voreinstellung ist nicht zwingend; andere Werte wären auch denkbar.

HinweisStandardwerte von stan_glm
  • Intercept: \(\mu\), der Mittelwert der Verteilung \(Y\)
    • \(\mu \sim \mathcal{N}(\bar{Y}, sd(Y)\cdot 2.5)\)
    • als Streuung von \(\mu\) wird die 2.5-fache Streuung der Stichprobe (für \(Y\)) angenommen.
  • Auxiliary (sigma): \(\sigma\), die Streuung der Verteilung \(Y\)
    • \(\sigma \sim \mathcal{E}(\lambda=1/sd(Y))\)
    • als “Streuung”, d.h. \(\lambda\) von \(h_i\) wird \(\frac{1}{sd(Y)}\) angenommen. \(\square\)

Eine sinnvolle Strategie ist, einen Prior so zu wählen, dass man nicht übergewiss ist, also nicht zu sicher Dinge behauptet, die dann vielleicht doch passieren (also die Ungewissheit zu gering spezifiziert), andererseits sollte man extreme, unplausible Werte ausschließen.

Wichtig

Bei der Wahl der Prioris gibt es nicht die eine, richtige Wahl. Die beste Entscheidung ist auf transparente Art den Stand der Forschung einfließen zu lassen und eigene Entscheidungen zu begründen. Häufig sind mehrere Entscheidungen möglich. Möchte man lieber vorsichtig sein, weil man wenig über den Gegenstand weiß, dann könnte man z.B. auf die Voreinstellung von rstanarm vertrauen, die “schwachinformativ” ist, also nur wenig Priori-Information in das Modell einfließen lässt.

9.6.4 Wenn es schnell gehen muss

stan_glm() ist deutlich langsamer als z.B. der befreundete Golem lm(). Der Grund für Stans Langsamkeit ist, dass er viele Stichproben zieht, also viel zu zählen hat. Außerdem wiederholt er das Stichprobenziehen (im Standard) 4 Mal, damit sein Meister prüfen kann, ob er (Stan) die Arbeit auch immer richtig gemacht hat. Die Idee dabei ist: Wenn alle vier Durchführungen (auch “Ketten”, engl. “chains”, genannt) zum etwa gleichen Ergebnis kommen, dann wird schon alles mit rechten Dingen zugegangen sein. Weichen die Ergebnisse der 4 Ketten voneinander ab, so ist Stan ein Fehler unterlaufen, oder irgendetwas ist “dumm gelaufen”. An dieser Stelle schauen wir uns die Ketten nicht näher an, aber es sei notiert, dass man die Anzahl der Ketten mit dem Argument chains steuern kann. Möchte man, dass Stan sich beeilt, so kann man chains = 1 setzen, das spart Zeit, s. m_kung_1kette.

m_kung_1kette <- stan_glm(height ~ 1, 
                 data = kung_erwachsen, 
                 chains = 1,  # nur 1 Kette, anstelle von 4, spart Zeit
                 refresh = 0) 

parameters(m_kung_1kette)  

9.7 Modell m_kung_neue_prioris: Standard-Priori-Werte

Im Modell m_kung haben wir unsere eigenen Priori-Werte einfließen lassen. Jetzt vertrauen wir die Wahl der Prioris Stan an. Betrachten Sie dazu unser zweites Kung-Modell, m_kung_neue_prioris.

m_kung_neue_prioris <- 
  stan_glm(height ~ 1,
           refresh = FALSE,  # bitte nicht so viel Ausgabe drucken
           data = kung_erwachsen)
parameters(m_kung_neue_prioris)
Tabelle 9.2: Parameter von m_kung_neue_prioris mit Standard-Prioriwerten
Parameter Median 95% CI pd Rhat ESS (tail) Prior
(Intercept) 154.60 (153.78, 155.42) 100% 1.001 2239 Normal (154.60 +- 19.36)

Wir haben noch nicht alle Informationen kennengelernt, die in Tabelle 9.2 ausgegeben werden. Im Zweifel: Einfach ignorieren. Wichtige Fähigkeit im Studium. 🤓

Wichtig

Vergleichen Sie die Parameterwerte von m_kung und m_kung_neue_prioris! Was fällt Ihnen auf? Nichts? Gut! Tatsächlich liefern beide Modelle sehr ähnliche Parameterwerte. Die Prioriwerte waren nicht so wichtig, weil wir genug Daten haben. Hat man einigermaßen viele Daten, so fallen Prioriwerte nicht mehr ins Gewicht, zumindest wenn sie moderat gewählt waren.

9.7.1 Posteriori-Verteilung und Parameter plotten

Leider liefert der Stan-Golem keinen braven Tibble (Tabelle) zurück.

👨🏫 Mensch, Stan, streng dich mal ein bisschen an!

🤖 Mach’s halt selber, wenn du es besser kannst!

Daher müssen wir die Ausgabe des Stan-Golems erst in eine schöne Tabelle umwandeln:

m_kung_neue_prioris_tibble <-
  as_tibble(m_kung_neue_prioris)

head(m_kung_neue_prioris_tibble)

Außerdem ist der Name der ersten Spalte eigentlich unzulässig, da Spaltennamen in R nicht mit Sonderzeichen anfangen dürfen (sondern mit Buchstaben). Daher müssen wir den Namen mit “Samthandschuhen” anpacken. Auf Errisch sind das die Backticks, die wir um den Namen rumwickeln müssen, s. die folgende Syntax.

m_kung_neue_prioris_tibble |> 
  gghistogram(x = "`(Intercept)`")  # Aus dem Paket "ggpubr"

m_kung_neue_prioris_tibble |> 
  ggplot(aes(x = `(Intercept)`)) +  # Aus dem Paket `ggplot2`
  geom_histogram()

Als Ausblick: Ein Vergleich mehrerer Priori-Werte wäre auch nützlich, um ein skeptisches Publikum von der Wahl (bzw. der Indifferenz) der gewählten Priori-Werte zu überzeugen.

9.7.2 Welche Körpergrößen erwartet unser Modell

Bisher haben wir untersucht, wie die Verteilung der mittleren Körpergrößen, \(\mu\), laut unserem Modell aussehen könnte; wir haben uns also mit der Post-Verteilung von \(\mu\) beschäftigt. Wir könnten aber auch an der Frage der Verteilung der tatsächlichen Körpergrößen, \(h_i\), laut Modell, interessiert sein: Wie groß sind sie denn, die !Kung, laut unserem Modell?

Wie wir wissen, liefert unser Stan-Golem eine Stichproben-Postverteilung. Wenn wir das Ergebnisobjekt unserer Analyse, m_kung, in eine Tabelle (Tibble) umwandeln und (die ersten paar Zeilen) betrachten, sehen wir diese Stichproben:

m_kung |> as_tibble() |> head()

Laut unserem Modell sind die Körpergrößen, \(h_i\), normalverteilt mit \(\mu\) und \(\sigma\). \(\mu\) wird von Stan, der in Begriffen der Regressionsanalyse denkt, schnöde als (Intercept) bezeichnet. Wir könnten jetzt also für jede Zeile eine Normalverteilung berechnen. Und daraus zufällig eine Zahl ziehen. Damit hätten wir dann unsere Verteilung von Körpergrößen laut Modell. Diese Verteilung nennt man auch Posterior-Prädiktiv-Verteilung. Prädiktiv daher, weil sie die Werte der Körpergrößen “vorhersagt”.

Wir können uns diese Verteilung auch komfortabel von R ausgeben lassen, s. Abbildung 9.10.

pp_check(m_kung)
pp_check(m_kung, "stat")
(a) Die dunkle, dicke Dichtekurve zeigt die tatsächliche Verteilung der Körpergrößen im Datensatz. Die hellen, leichten Dichtekurven zeigen die Verteilungen laut der Post-Verteilung unseres Modells.
(b) Der wahre Wert einer Test-Statistik (T), hier der Mittelwert der Körpergrößen, wird mit der Verteilung der Körpergrößen in Bezug gesetzt.
Abbildung 9.10: Die Posterior-Prädiktiv-Verteilung: Die Verteilung der tatsächlichen Körpergrößen auf Basis der Post-Verteilung. Unser Modell stellt die tatsächliche Verteilung ganz gut nach.

9.8 Fazit

9.8.1 Zusammenfassung

Wir haben die Posteriori-Verteilung für ein Gauss-Modell berechnet. Dabei hatten wir ein einfaches Modell mit metrischer Zielvariablen, ohne Prädiktoren, betrachtet. Die Zielvariable, Körpergröße (height), haben wir als normalverteilt mit den Parametern \(\mu\) und \(\sigma\) angenommen. Für \(\mu\) und \(\sigma\) haben wir jeweils keinen einzelnen (fixen) Wert angenommen, sondern eine Wahrscheinlichkeitsverteilung, der mit der Priori-Verteilung für \(\mu\) bzw. \(\sigma\) festgelegt ist.

Wichtig

Kontinuierliches Lernen ist der Schlüssel zum Erfolg.

9.9 Aufgaben

9.9.1 Papier-und-Bleistift-Aufgaben

  1. exp-tab
  2. exp-tab2
  3. norms-sd
  4. small-wide-normal
  5. exp1
  6. distros
  7. mtcars-post_paper
  8. groesse03
  9. pupil-size2
  10. groesse04
  11. Priorwahl1

9.9.2 Aufgaben, für die man einen Computer benötigt

  1. stan_glm01
  2. ReThink4e1
  3. ReThink4e3
  4. Kung-height
  5. Pupil-size
  6. IQ-Studentis
  7. Priori-Streuung

9.9.3 Quiz-Aufgaben

Hier finden Sie Single-Choice-Aufgaben zu diesem Kapitel. Wählen Sie eine Antwort aus und klicken Sie auf das Häkchen, um sie zu überprüfen; über das Fragezeichen erhalten Sie die ausführliche Lösung.

Das Kung-Modell aus dem Kapitel ist wie folgt spezifiziert:

\[ \begin{aligned} \mu &\sim \mathcal{N}(178, 20) & \text{Prior} \\ \sigma &\sim \mathcal{E}(1/8) & \text{Prior} \\ h_i &\sim \mathcal{N}(\mu, \sigma) & \text{Likelihood} \end{aligned} \]

Welche Interpretation dieses Modells ist korrekt?

Das Modell hat zwei Parameter, \(\mu\) (Populationsmittelwert) und \(\sigma\) (Streuung um diesen Mittelwert), für die jeweils eine Apriori-Verteilung angenommen wird (\(\mu\) normalverteilt, \(\sigma\) exponentialverteilt, da diese Größe notwendigerweise positiv sein muss). Die dritte Zeile (Likelihood) besagt, dass jede einzelne beobachtete Körpergröße \(h_i\) als Realisation einer Normalverteilung mit den (unbekannten) Parametern \(\mu\) und \(\sigma\) verstanden wird. Die erste Option ist korrekt.

Warum die Distraktoren falsch sind:

  • Die zweite Option widerspricht dem Kern des Bayes-Ansatzes: Gerade weil wir \(\mu\) und \(\sigma\) nicht mit Sicherheit kennen, spezifizieren wir für beide eine Apriori-Verteilung (statt eines festen Werts) – die Ungewissheit über die Parameter ist ja gerade der Ausgangspunkt der Analyse.

  • Die dritte Option verwechselt den Populationsmittelwert \(\mu\) mit den individuellen Beobachtungen \(h_i\): Laut Likelihood streuen die einzelnen Körpergrößen um \(\mu\) herum (mit Streuung \(\sigma\)), sie sind also gerade nicht alle identisch zu \(\mu\).

  • Die vierte Option verwechselt Priori-Verteilung und Likelihood: Die erste Zeile beschreibt die Ungewissheit über den Parameter \(\mu\), nicht die Verteilung der beobachteten Einzeldaten – Letztere wird durch die dritte Zeile (Likelihood) beschrieben.

  • Die fünfte Option ist falsch: Die Exponentialverteilung ist per Definition nur für positive Werte definiert – genau deshalb wurde sie hier gewählt, um sicherzustellen, dass \(\sigma\) (eine Streuung, die niemals negativ sein kann) nur plausible, positive Werte annimmt.

  • Falsch

  • Falsch

  • Wahr

  • Falsch

  • Falsch

Im Kung-Modell wird für den Mittelwert \(\mu\) eine Normalverteilung, für die Streuung \(\sigma\) hingegen eine Exponentialverteilung als Apriori-Verteilung gewählt. Warum eignet sich die Normalverteilung nicht auch für \(\sigma\)?

Eine Streuung \(\sigma\) kann inhaltlich niemals negativ sein (die “Unterschiedlichkeit” von Werten kann nicht kleiner als Null sein). Eine Normalverteilung erlaubt aber grundsätzlich auch negative Werte, was für \(\sigma\) unplausible (unmögliche) Werte in der Apriori-Verteilung zulassen würde. Die Exponentialverteilung ist dagegen per Definition nur für \(x>0\) definiert und schließt negative Werte von vornherein aus – die erste Option ist korrekt.

Warum die Distraktoren falsch sind:

  • Die zweite Option ist inhaltlich unbegründet und irrelevant für die Frage, warum \(\sigma\) nicht normalverteilt angenommen wird – die Schiefe einer Verteilung ist hier nicht das entscheidende Kriterium, sondern der zulässige Wertebereich.

  • Die dritte Option ist falsch: Sowohl die Normal- als auch die Exponentialverteilung sind stetige Verteilungen, die beliebige reelle (nicht nur ganzzahlige) Werte im jeweils zulässigen Bereich annehmen können.

  • Die vierte Option ist falsch: \(\mu\) (Mittelwert der Körpergröße, kann im Prinzip jeden Wert annehmen, auch wenn unrealistisch) und \(\sigma\) (eine notwendigerweise positive Streuung) haben inhaltlich unterschiedliche Wertebereiche – genau deshalb werden unterschiedliche Verteilungstypen für die beiden Parameter gewählt.

  • Die fünfte Option beschreibt keinen sinnvollen Grund: Die Exponentialverteilung wird hier nicht für Körpergrößen selbst verwendet (dafür ist ja die Normalverteilung in der Likelihood zuständig), sondern speziell für das notwendigerweise positive Streuungsmaß \(\sigma\).

  • Falsch

  • Falsch

  • Falsch

  • Falsch

  • Wahr

Im Kapitel wird das Kung-Modell u.a. mit stan_glm(height ~ 1, ...) berechnet. Welche Aussage zur Bedeutung von height ~ 1 und dem resultierenden (Intercept) ist korrekt?

height ~ 1 beschreibt eine Regression, bei der nur die Verteilung der abhängigen Variable (height) geschätzt wird, ohne Prädiktoren (die 1 steht symbolisch für die “fehlende” UV) – man könnte auch sagen: eine “Regression ohne Regressoren”. In diesem Sonderfall entspricht der geschätzte Achsenabschnitt ((Intercept)) direkt dem Populationsmittelwert \(\mu\) der Zielvariablen. Die erste Option ist korrekt.

Warum die Distraktoren falsch sind:

  • Die zweite Option verwechselt die Notation ~ 1 (Symbol für “kein Prädiktor” in der Formelsprache von R) mit einer tatsächlichen Zuweisung des Zahlenwerts 1 an die Variable height – die tatsächlichen Körpergrößenwerte aus dem Datensatz bleiben unverändert.

  • Die dritte Option verwechselt (Intercept) (Schätzung für \(\mu\)) mit dem separaten Parameter sigma (bzw. Auxiliary), der im Modell zusätzlich und getrennt ausgegeben wird.

  • Die vierte Option ist falsch: Der Text zeigt explizit, dass stan_glm() auch für Modelle ganz ohne Prädiktor (nur Achsenabschnitt) verwendet werden kann – genau das ist im Kung-Beispiel der Fall.

  • Die fünfte Option verwechselt die Modellformel-Syntax mit einem Argument zur Steuerung der Stichprobenanzahl (dafür gibt es bei stan_glm() andere Argumente, nicht die Formel selbst).

  • Wahr

  • Falsch

  • Falsch

  • Falsch

  • Falsch

Im Kapitel werden zwei Kung-Modelle verglichen: m_kung (mit selbst gewählten, informativen Priori-Werten \(\mu\sim\mathcal{N}(178,20)\)) und m_kung_neue_prioris (mit den schwach-informativen Standard-Priori-Werten von rstanarm). Beide liefern nahezu identische Ergebnisse für \(\mu\) und \(\sigma\). Welche Erklärung dafür ist im Kapitel korrekt?

Wie im Kapitel festgehalten: “Trotz des eher vagen Priors ist die Streuung Posteriori-Werte für \(\mu\) und \(\sigma\) klein: Die große Stichprobe hat die Priori-Werte überstimmt.” Bei ausreichend vielen Datenpunkten dominiert die Likelihood die (unstandardisierte) Post-Verteilung, sodass moderat unterschiedliche Priori-Annahmen kaum noch einen merklichen Unterschied im Ergebnis machen. Die erste Option ist korrekt.

Warum die Distraktoren falsch sind:

  • Die zweite Option ist falsch: m_kung verwendet explizit die selbst gewählten Werte \(\mu\sim\mathcal{N}(178,20)\) und \(\sigma\sim\mathcal{E}(1/8)\), während m_kung_neue_prioris die datenbasierten Standardwerte von rstanarm verwendet – das sind unterschiedliche Priori-Spezifikationen, auch wenn die Endergebnisse ähnlich ausfallen.

  • Die dritte Option widerspricht der zentralen Aussage des Kapitels: Priori-Werte können die Post-Verteilung durchaus beeinflussen, insbesondere bei kleinen Stichproben oder bei sehr extremen (stark informativen) Priori-Annahmen.

  • Die vierte Option ignoriert die im Kapitel gegebene systematische Erklärung (großer Stichprobenumfang überstimmt moderate Priori-Unterschiede) und tut die Beobachtung fälschlich als bloßen Zufall ab.

  • Die fünfte Option ist falsch: stan_glm() verwendet sehr wohl die vom Nutzer über prior_intercept und prior_aux angegebenen Werte, wenn diese explizit gesetzt werden – nur wenn keine Priori-Werte angegeben werden, greifen die Standardwerte.

  • Falsch

  • Falsch

  • Wahr

  • Falsch

  • Falsch

Ruft man stan_glm() ohne eigene Priori-Angaben auf, verwendet rstanarm als Standard-Priori für die Streuung \(\sigma\) eine Exponentialverteilung mit Rate \(\lambda = 1/sd(Y)\). Angenommen, die Standardabweichung der Körpergrößen in der Stichprobe beträgt \(sd(Y)=6{,}25\) cm. Welchen Ratenparameter \(\lambda\) und welchen Erwartungswert hat die resultierende Standard-Priori für \(\sigma\)?

Laut Definition gilt für die Standard-Priori von \(\sigma\): \(\lambda = 1/sd(Y) = 1/6{,}25 = 0{,}16\). Für eine Exponentialverteilung ist der Erwartungswert gleich dem Kehrwert der Rate: \(E(\sigma) = 1/\lambda = 1/0{,}16 = 6{,}25\) – also genau wieder \(sd(Y)\). Die erste Option ist korrekt.

Warum die Distraktoren falsch sind:

  • Die zweite Option vertauscht \(\lambda\) und \(sd(Y)\): Laut Definition ist \(\lambda\) der Kehrwert von \(sd(Y)\), nicht \(sd(Y)\) selbst.

  • Die dritte Option berechnet zwar \(\lambda\) korrekt, verwechselt aber den Erwartungswert der Exponentialverteilung mit \(\lambda\) selbst – der Erwartungswert einer Exponentialverteilung ist jedoch \(1/\lambda\), nicht \(\lambda\).

  • Die vierte Option verwendet fälschlich die Formel für die Standard-Priori von \(\mu\) (die den Faktor \(2{,}5\cdot sd(Y)\) enthält), obwohl hier nach der Priori für \(\sigma\) gefragt ist, die einer anderen Formel folgt.

  • Die fünfte Option verwechselt den Erwartungswert der Exponentialverteilung mit der Varianz von \(Y\) (\(sd(Y)^2\)) – das ist eine andere Größe, die mit der Formel für die Priori von \(\sigma\) nichts zu tun hat.

  • Falsch

  • Falsch

  • Wahr

  • Falsch

  • Falsch

Im Kapitel werden sowohl eine Priori-Prädiktiv-Verteilung als auch eine Posterior-Prädiktiv-Verteilung (PPV, mit pp_check()) verwendet. Worin unterscheiden sich beide?

Die Priori-Prädiktiv-Verteilung simuliert Beobachtungen (z.B. Körpergrößen) allein auf Basis der Priori-Annahmen zu \(\mu\) und \(\sigma\) – noch bevor überhaupt Daten einbezogen wurden. Damit lässt sich prüfen, ob die gewählten Priori-Werte plausible Beobachtungen implizieren (oder z.B. unplausible negative Körpergrößen zulassen). Die Posterior-Prädiktiv-Verteilung (PPV) hingegen simuliert Beobachtungen auf Basis der Post-Verteilung, also nach Einbeziehung der tatsächlichen Daten. Die erste Option ist korrekt.

Warum die Distraktoren falsch sind:

  • Die zweite Option ist falsch: Beide Verteilungen unterscheiden sich inhaltlich fundamental darin, ob die beobachteten Daten bereits eingeflossen sind (Posterior-Prädiktiv) oder nicht (Priori-Prädiktiv).

  • Die dritte Option kehrt die Zuordnung genau um: Die Priori-Prädiktiv-Verteilung basiert gerade nicht auf den Daten (nur auf den Priori-Annahmen), während die Posterior-Prädiktiv-Verteilung die Daten über die Post-Verteilung sehr wohl einbezieht.

  • Die vierte Option ist zu grob vereinfacht bzw. verdreht: Die Priori-Prädiktiv-Verteilung dient zur Prüfung, ob die Priori-Werte selbst plausibel sind (z.B. ob sie unrealistische negative Körpergrößen implizieren) – nicht zur Prüfung der Post-Verteilung.

  • Die fünfte Option ist falsch: Der Text zeigt explizit R-Code (rnorm, rexp), mit dem die Priori-Prädiktiv-Verteilung (sim) simuliert wird – sie ist also sehr wohl praktisch berechenbar, nicht rein theoretisch.

  • Falsch

  • Wahr

  • Falsch

  • Falsch

  • Falsch

Im Vertiefungsabschnitt wird eine besonders vage Priori für die Streuung getestet, \(\sigma\sim\mathcal{E}(\lambda=0{,}01)\), kombiniert mit \(\mu\sim\mathcal{N}(178,100)\). Die resultierende Priori-Prädiktiv-Verteilung zeigt, dass ein spürbarer Anteil simulierter Körpergrößen negativ ist und auch unrealistisch riesige Werte vorkommen. Welche Schlussfolgerung zieht das Kapitel daraus?

Das Kapitel zieht explizit die Lehre: “Vage (flache, informationslose, ‘neutrale’, ‘objektive’) Priori-Werte machen oft keinen Sinn, weil sie extreme, unplausible Werte zulassen.” Im Beispiel führt die extrem vage Priori sogar dazu, dass ein Teil der simulierten Körpergrößen negativ ist – biologisch unmöglich. Die erste Option ist korrekt.

Warum die Distraktoren falsch sind:

  • Die zweite Option widerspricht der zentralen Lehre des Abschnitts direkt: Gerade nicht jede vage Priori ist automatisch die beste Wahl – eine gewisse, inhaltlich sinnvolle Einschränkung (wie im ursprünglichen Modell m_kung mit \(\sigma\sim\mathcal{E}(1/8)\)) ist oft vorzuziehen.

  • Die dritte Option ist falsch: Die Priori-Prädiktiv-Verteilung dient ja gerade dazu, vorab zu prüfen, ob das Modell (Priori plus Likelihood) plausible Werte zulässt – tauchen dort unplausible Werte auf, deutet das auf ein Problem mit der Priori-Wahl hin, das sich auch auf nachfolgende Analysen auswirken kann.

  • Die vierte Option ist falsch: Eine vagere Priori führt nicht automatisch zu einer genaueren Post-Verteilung – im Gegenteil, sie lässt tendenziell mehr (auch unplausible) Werte zu und kann die Schätzung dadurch weniger informativ bzw. weniger realistisch machen.

  • Die fünfte Option zieht eine falsche Schlussfolgerung: Das Problem liegt hier an der Kombination aus sehr breiter Priori für \(\mu\) und \(\sigma\), nicht an der grundsätzlichen Eignung der Normalverteilung als Likelihood-Modell für (annähernd normalverteilte) Körpergrößen.

  • Wahr

  • Falsch

  • Falsch

  • Falsch

  • Falsch

Im Modell m_kung wird für \(\sigma\) die Priori-Verteilung \(\sigma\sim\mathcal{E}(\lambda=1/8)\) angenommen. Welchen Wert hat das 95%-Quantil dieser Priori-Verteilung, also qexp(p = .95, rate = 1/8)?

Für die Exponentialverteilung gilt allgemein \(\text{Q}_p = \dfrac{-\ln(1-p)}{\lambda}\). Für \(p=0{,}95\) und \(\lambda=1/8\) folgt \(\text{Q}_{95} = \dfrac{-\ln(0{,}05)}{1/8} = 8\cdot(-\ln(0{,}05)) \approx 23{,}97\). Das bedeutet: Laut unserer Priori-Verteilung halten wir Werte von \(\sigma\) bis knapp 24 cm für plausibel (95%-Grenze), deutlich größere Werte hingegen für unwahrscheinlich.

Warum die Distraktoren falsch sind:

  • Die zweite Option berechnet stattdessen den Median (50%-Quantil) der Exponentialverteilung (\(\ln(2)/\lambda\)), nicht das gefragte 95%-Quantil.

  • Die dritte Option gibt den Erwartungswert der Exponentialverteilung zurück (\(1/\lambda=8\)), verwechselt diesen also mit einem Quantil – Erwartungswert und 95%-Quantil sind bei einer schiefen Verteilung wie der Exponentialverteilung deutlich unterschiedliche Kennwerte.

  • Die vierte Option verwendet fälschlich den dekadischen Logarithmus \(\log_{10}\) statt des natürlichen Logarithmus \(\ln\) in der Quantilsformel.

  • Die fünfte Option vertauscht Zähler und Nenner der Formel (multipliziert mit \(\lambda\) statt zu dividieren) – ein klassischer Kehrwertfehler, der zudem einen unplausibel kleinen Wert liefert.

  • Falsch

  • Falsch

  • Falsch

  • Falsch

  • Wahr

stan_glm() zieht standardmäßig die Post-Stichproben in 4 unabhängigen “Ketten” (chains). Welche Aussage zum Zweck dieser mehrfachen Ketten ist korrekt?

Mehrere unabhängige Ketten liefern jeweils eine eigene Stichproben-Post-Verteilung für dasselbe Modell. Kommen alle Ketten zu einem sehr ähnlichen Ergebnis, ist das ein gutes Zeichen dafür, dass die Berechnung (der MCMC-Algorithmus) korrekt konvergiert ist. Weichen die Ketten deutlich voneinander ab, deutet das auf ein Problem hin (“irgendetwas ist dumm gelaufen”). Die erste Option ist korrekt.

Warum die Distraktoren falsch sind:

  • Die zweite Option ist falsch: Alle Ketten berechnen dasselbe Modell mit denselben Priori-Werten und denselben Daten – sie unterscheiden sich lediglich in ihren (zufälligen) Startpunkten und Zufallszahlenfolgen, nicht in den Modellannahmen.

  • Die dritte Option verwechselt die Anzahl der MCMC-Ketten mit dem Stichprobenumfang des Datensatzes – beide Größen sind vollkommen unabhängig voneinander.

  • Die vierte Option ist falsch: Bei korrekt konvergierender Berechnung liefern mehrere Ketten im Wesentlichen dieselbe (nicht eine systematisch andere) Post-Verteilung wie eine einzelne Kette – der Vorteil mehrerer Ketten liegt in der Prüfbarkeit der Konvergenz, nicht in einem anderen Ergebnis.

  • Die fünfte Option ist falsch: Das Konzept der “Ketten” ist spezifisch für MCMC-Verfahren (wie Stan sie verwendet) relevant – die (hier nicht mehr verwendete) Bayesbox-Methode kennt dieses Konzept gar nicht, da sie nicht auf zufälligem Stichprobenziehen mittels Markov-Ketten beruht.

  • Falsch

  • Falsch

  • Falsch

  • Wahr

  • Falsch

Das Kung-Modell hat zwei Parameter, \(\mu\) und \(\sigma\). Neben den beiden einzelnen (Rand-)Verteilungen für \(\mu\) und \(\sigma\) zeigt das Kapitel auch die gemeinsame Post-Verteilung beider Parameter (z.B. als Streudiagramm oder Fliesendiagramm von \(\mu\) gegen \(\sigma\)). Welche Aussage dazu ist korrekt?

Die gemeinsame (zweidimensionale) Post-Verteilung zeigt für jede mögliche Kombination von \(\mu\)- und \(\sigma\)-Werten deren gemeinsame Wahrscheinlichkeit (bzw. Häufigkeit in den Stichproben). Im Kapitel wird explizit festgestellt: “Wie man sieht, sind die beiden Parameter unkorreliert.” Die erste Option ist korrekt.

Warum die Distraktoren falsch sind:

  • Die zweite Option widerspricht dem Kapitel direkt: Die gemeinsame Post-Verteilung wird dort explizit visualisiert, z.B. als Fliesendiagramm (geom_hex()) oder Streudiagramm von \(\mu\) gegen \(\sigma\).

  • Die dritte Option ist eine unzulässige Verallgemeinerung: Das Kapitel merkt explizit an, dass “in anderen Modellen […] die Parameter korreliert sein” können – die Unkorreliertheit ist eine Eigenschaft dieses spezifischen Beispiels, keine allgemeine Eigenschaft aller Bayes-Modelle.

  • Die vierte Option ist falsch: Die gemeinsame Post-Verteilung bezieht sich exakt auf die im Modell spezifizierten zwei Parameter \(\mu\) und \(\sigma\), keinen zusätzlichen dritten Parameter.

  • Die fünfte Option ist falsch: Wären \(\mu\) und \(\sigma\) korreliert, würden die beiden getrennten Randverteilungen diese Korrelation gerade nicht zeigen – nur die gemeinsame (zweidimensionale) Verteilung macht Aussagen über den Zusammenhang zwischen beiden Parametern sichtbar. Beide Darstellungen sind also inhaltlich nicht informationsgleich.

  • Wahr

  • Falsch

  • Falsch

  • Falsch

  • Falsch

9.10


  1. https://statistik1.netlify.app/060-modellguete↩︎

  2. https://statistik1.netlify.app/070-zusammenhaenge↩︎

  3. https://statistik1.netlify.app/040-verbildlichen#normalverteilung↩︎

  4. https://raw.githubusercontent.com/sebastiansauer/2021-wise/main/Data/Howell1a.csv↩︎

  5. https://en.wikipedia.org/wiki/%C7%83Kung_people↩︎

  6. Bildquelle: Wikimedia, Own alterations and File:SVG_Human_With_All_Organs.svg by Madhero88, CC BY-SA, 3.0↩︎

  7. Der Autor des zugrundeliegenden Lehrbuchs, Richard McElreath, gibt 178cm als seine Körpergröße an.↩︎

  8. aus dem R-Paket rstanarm, das zuvor installiert und gestartet sein muss, bevor Sie den Befehl nutzen können.↩︎

  9. https://easystats.github.io/parameters/reference/model_parameters.brmsfit.html↩︎

  10. https://easystats.github.io/easystats/↩︎

  11. https://mc-stan.org/↩︎

  12. https://mc-stan.org/rstanarm/↩︎