stan_glm_prioriwerte

bayes
regression
qm2
qm2-pruefung2023
Published

December 15, 2022

Exercise

Berechnet man eine Posteriori-Verteilung mit stan_glm(), so kann man entweder die schwach informativen Prioriwerte der Standardeinstellung verwenden, oder selber Prioriwerte definieren.

Betrachten Sie dazu dieses Modell:

stan_glm(price ~ cut, data = diamonds, 
                   prior = normal(location = c(100, 100, 100, 100),
                                  scale = c(10, 10, 10, 10)),
                   prior_intercept = normal(3000, 500))

Beziehen Sie sich auf den Datensatz diamonds.

Hinweise:

  • Gehen Sie davon aus, dass die Post-Verteilung von Intercept und Gruppeneffekte normalverteilt sind.

Welche Aussage dazu passt (am besten)?

Answerlist

  • Es wird für (genau) einen Parameter eine Priori-Verteilung definiert.
  • Für das Regressionsgewicht \(\beta_1\) sind negative Werte apriori plausibel.
  • Mit prior = normal() werden Gruppenmittelwerte definiert.
  • Alle Parameter des Modells sind normalverteilt.











Solution

Probieren geht über Studieren:

Die Prioris, die Stan gewählt hat, kann man sich so anschauen:

Priors for model 'm1' 
------
Intercept (after predictors centered)
  Specified prior:
    ~ normal(location = 3933, scale = 2.5)
  Adjusted prior:
    ~ normal(location = 3933, scale = 9974)

Coefficients
  Specified prior:
    ~ normal(location = [0,0,0,...], scale = [2.5,2.5,2.5,...])
  Adjusted prior:
    ~ normal(location = [0,0,0,...], scale = [34685.38,20362.28,22862.49,...])

Auxiliary (sigma)
  Specified prior:
    ~ exponential(rate = 1)
  Adjusted prior:
    ~ exponential(rate = 0.00025)
------
See help('prior_summary.stanreg') for more details

Da gilt: \(\forall i: \beta_i \sim \mathcal{N}(0, 2.5)\) (alle betas sind normalverteilt mit Mittelwert 0 und Streuung 2.5), liegt die Wahrscheinlichkeit (apriori) bei 50%, dass der Wert von _i$ negativ ist. Anders gesagt: Wir glauben zu 50%, dass der Parameter einen negativen Wert hat.

Hier sind die Modellparameter:

Parameter Median CI CI_low CI_high pd Rhat ESS Prior_Distribution Prior_Location Prior_Scale
(Intercept) 4354.8658 0.95 4169.07052 4547.0432 1.0000 1.001107 1217.127 normal 3932.8 9973.599
cutGood -426.0173 0.95 -648.67945 -208.6854 1.0000 1.000706 1425.390 normal 0.0 34685.376
cutIdeal -896.5401 0.95 -1099.02567 -704.1566 1.0000 1.000850 1238.594 normal 0.0 20362.277
cutPremium 231.1998 0.95 26.52966 435.0068 0.9875 1.001244 1291.555 normal 0.0 22862.493
cutVery Good -371.8452 0.95 -575.61301 -174.4921 1.0000 1.001360 1236.940 normal 0.0 23922.148

Wie man sieht, sind negative Werte auch aposteriori plausibel für \(\beta_1\), cutGood:

Answerlist

  • Falsch. Es gibt mehrere Parameter im Modell (Achsenabschnitt, 4 Prädiktoren, sigma)
  • Wahr. Für cutGood sind negative Werte plausibel.
  • Falsch. prior = normal() werden Regressionskoeffizienten in ihren Prioris definiert.
  • Falsch. sigma ist in Stans Voreinstellung exponentialverteilt.

Categories:

  • bayes
  • regression