Helfen Sie mir, die

13

Ich versuche hier ein Bayesianisches Logit der Daten durchzuführen . Ich verwende bayesglm()in dem armPaket in R. Die Codierung ist einfach genug:

df = read.csv("http://dl.dropbox.com/u/1791181/bayesglm.csv", header=T)
library(arm)
model = bayesglm(PASS ~ SEX + HIGH, family=binomial(link="logit"), data=df)

summary(model) gibt die folgende Ausgabe aus:

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  0.10381    0.10240   1.014    0.311    
SEXMale      0.02408    0.09363   0.257    0.797    
HIGH        -0.27503    0.03562  -7.721 1.15e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2658.2  on 1999  degrees of freedom
Residual deviance: 2594.3  on 2000  degrees of freedom
AIC: 2600.3

Bitte führen Sie mich durch diese. Ich verstehe, dass dieser Code ein sehr schwaches Prior verwendet (da ich das vorherige Mittel nicht spezifiziere), so dass die Ausgabe praktisch gleich sein wird, wenn ich es glm()anstelle von verwende bayesglm(). Aber die Ausgabe sollte immer noch im Bayes'schen Geist sein, oder? Was sind hier die Werte und z- Werte? Sind das nicht häufig verwendete Inferenzinstrumente? Werden sie hier unterschiedlich interpretiert?pz

user3671
quelle
Dies ist ein Kommentar und keine Antwort, aber das würde für mich einen Sinn ergeben. Sie erhalten Schätzungen, bei denen es sich wahrscheinlich um die Werte handelt, für die die hintere Verteilung maximiert ist. Ist es auch möglich, dass sie nur das Mittel des Seitenzahns sind? Es lohnt sich herauszufinden, ob Sie können. Unabhängig von den genauen Angaben können Sie Schätzungen anhand der üblichen Schätzung / Standard testen. Fehler -> Z-Score-Prozedur, die funktioniert, wenn der hintere Teil nahe genug an einer Normalen liegt (unter bestimmten Bedingungen, die normalerweise gelten, normal).
Erik
Erik ... Sie haben Recht: Die Koeffizienten sind in der Tat das Mittel der hinteren Dichten. Meine Frage betrifft die p- und z-Werte. Was repräsentieren sie hier?
User3671
In Ordnung. Wenn Sie eine Dichte haben, die ungefähr normalverteilt ist, können Sie testen, ob der Mittelwert Null ist, indem Sie den z-Score = Mittelwert / Standardabweichung der Verteilung nehmen und mit der Standardnormalverteilung vergleichen. Dann schauen Sie, wie unwahrscheinlich Ihr Wert oder ein größerer Wert unter der Standardnormalverteilung wäre -> p-Wert. Siehe z-score auf Wikipedia für Details.
Erik
Nun ja. Aber warum sollte man das in einer bayesianischen Umgebung tun? In der Bayes'schen Folgerung ist die Punktschätzung meine beste Schätzung für den Zufallsparameter, so dass es nicht erforderlich ist, ihn zu testen. Ich kann höchstens ein "glaubwürdiges Intervall" angeben, das einem häufigen "Konfidenzintervall" entspricht, dessen statistische Interpretation sich jedoch erheblich unterscheidet. Dies ist der verwirrende Teil der Ausgabe von summary (). Der Geist ist Bayesianisch, aber die Ausgabe ist frequentistisch?
User3671
Ein Punkt ist, dass die Schätzung, die Sie erhalten, anders sein wird, da Sie einen Prior verwendet haben. Und während die Punktschätzung die "beste Vermutung" ist, wenn Sie auf bayesianische Weise zeigen möchten, dass etwas einen Effekt hat, würden Sie versuchen zu zeigen, dass das glaubwürdige Intervall nicht die Null enthält. Wenn Sie den posterioren durch eine Norm mit dem gleichen Mittelwert und sd (asymptotisch korrekt) approximieren, ist das (1-p / 2) Glaubwürdigkeitsintervall das größte symmetrische Glaubwürdigkeitsintervall mit der Null, sodass Ihre Antwort im Grunde dieselbe ist. Das p ist der oben angegebene p-Wert.
Erik

Antworten:

16

Gute Frage! Obwohl es bayesianische p-Werte gibt und einer der Autoren des Arm-Pakets ein Befürworter ist, ist das, was Sie in Ihrer Ausgabe sehen, kein bayesianischer p-Wert. Überprüfen Sie die Klasse vonmodel

class(model)
"bayesglm" "glm"      "lm" 

und Sie können sehen, dass Klasse Bayesglm von Glm erbt. Darüber hinaus zeigt die Untersuchung des Armpakets keine spezifische Zusammenfassungsmethode für ein Bayesglm-Objekt. Also, wenn du es tust

summary(model)

du machst es tatsächlich

summary.glm(model)

und häufige Interpretation der Ergebnisse. Wenn Sie eine Bayes-Perspektive wünschen, ist die Funktion im Armdisplay()

atiretoo - monica wieder einsetzen
quelle
+1 Hervorragende Antwort! Das ist das Problem mit R, es gibt so viele hochintelligente Statistiker, die schrecklichen Code schreiben, der diese Art von Landminen herumliegen lässt.
Bogdanovist
Es scheint eher eine bewusste Entscheidung der Designer zu sein, als ein Versehen.
atiretoo - wieder Monica
Nach dem Lesen des Links stimme ich der Absicht zu, aber in diesem Fall hätte Summary () neu implementiert werden müssen, um Display () aufzurufen, anstatt unsinnige Ergebnisse ohne Vorwarnung zu liefern. Die Person, die diese Frage gestellt hat, wurde durch einen Code ausgelöst, der das Benutzermodell für R gebrochen hat, das von jedem anderen Objekt, das sie jemals verwendet haben, erstellt wurde. Das ist eine schreckliche Programmierpraxis.
Bogdanovist
2
Vielen Dank, atiretoo. Dies wirft eine andere Frage auf. Was ist der Unterschied zwischen display () und summary ()? Es scheint mir, dass die Ausgabe des ersteren nur die Ausgabe des letzteren ist, abzüglich zwei Spalten, und auf zwei Stellen gerundet. Es scheint so, aus Gelmans Beitrag, den Sie oben verlinkt haben.
User3671
Ja, und aus der Diskussion in Andrew Gelmans Blog geht hervor, dass sie dies in zukünftigen Versionen des Arm-Pakets beheben werden.
atiretoo - wieder monica