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