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
stan_glm_prioriwerte
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:
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