stan_glm_prioriwerte

bayes
regression
qm2
qm2-pruefung
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 |              95% CI |     pd |  Rhat |     ESS |                       Prior
-----------------------------------------------------------------------------------------------------
(Intercept)  | 4360.63 | [ 4158.15, 4552.45] |   100% | 1.006 | 1074.00 | Normal (3932.80 +- 9973.60)
cutGood      | -433.15 | [ -657.78, -200.59] | 99.98% | 1.005 | 1261.00 |   Normal (0.00 +- 34685.38)
cutIdeal     | -902.84 | [-1103.86, -692.43] |   100% | 1.006 | 1118.00 |   Normal (0.00 +- 20362.28)
cutPremium   |  223.17 | [   17.57,  434.14] | 98.15% | 1.005 | 1145.00 |   Normal (0.00 +- 22862.49)
cutVery Good | -378.54 | [ -586.46, -165.75] |   100% | 1.006 | 1128.00 |   Normal (0.00 +- 23922.15)

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