Aiutami a capire i valori


13

Sto cercando di eseguire un log in bayesiano sui dati qui . Sto usando bayesglm()nel armpacchetto in R. La codifica è abbastanza semplice:

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) fornisce il seguente output:

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

Per favore guidami attraverso questo. Capisco che questo codice utilizza un precedente molto debole (poiché non sto specificando i mezzi precedenti), quindi l'output sarà praticamente lo stesso se lo usassi glm()invece di bayesglm(). Ma l'output dovrebbe essere ancora nello spirito bayesiano, giusto? Quali sono i valori e z qui? Questi strumenti di inferenza frequentista non sono? Sono interpretati diversamente qui?pz


Questo è un commento e non una risposta, ma questo è ciò che avrebbe un senso per me. Ottieni stime che sono probabilmente i valori per i quali è massimizzata la distribuzione posteriore. Potrebbe anche essere possibile che siano solo i mezzi del posteriore? Vale la pena dare un'occhiata se puoi. Ma non importa quali siano i dettagli esatti, una volta che hai delle stime puoi testarle con il solito Stima / Std. Errore -> procedura z-score che funziona se il posteriore è abbastanza vicino alla normalità (va a una normalità in alcune condizioni che di solito valgono).
Erik

Erik ... Hai ragione: i coefficienti sono davvero i mezzi delle densità posteriori. La mia domanda riguarda i valori p e z. Cosa rappresentano qui?
user3671

Ok. Se hai una densità approssimativamente distribuita normalmente, puoi verificare se la sua media è zero prendendo la deviazione z-score = media / standard della distribuzione e confrontandola con la distribuzione normale standard. Quindi vedi quanto è improbabile che il tuo valore o un valore più grande sia sotto la distribuzione normale standard -> valore p. Vedi z-score su Wikipedia per i dettagli.
Erik

Beh si. Ma perché preoccuparsi di farlo in un ambiente bayesiano? Nell'inferenza bayesiana, la stima puntuale è la mia migliore ipotesi sul parametro casuale, quindi non è necessario testarlo. Al massimo, posso includere un "intervallo credibile" che equivale a un "intervallo di confidenza" frequente ma la cui interpretazione statistica è molto diversa. Questa è la parte confusa sull'output di riepilogo (). Lo spirito è bayesiano, ma l'output è frequentista?
user3671

Un punto è che la stima che ottieni sarà diversa, dal momento che hai usato un precedente. E mentre la stima puntuale è la "migliore ipotesi" se vuoi mostrare in modo bayesiano che qualcosa ha un effetto, proveresti a mostrare che l'intervallo credibile non contiene lo zero. Quando approssimate il posteriore con una normale con la stessa media e sd (asintoticamente corretta), allora l'intervallo di credibilità (1-p / 2) è il più grande intervallo di credibilità simmetrica contenente lo zero, quindi la vostra risposta è sostanzialmente la stessa. Il p è il valore p sopra indicato.
Erik

Risposte:


16

Ottima domanda! Sebbene ci siano valori p bayesiani e uno degli autori del pacchetto arm sia un sostenitore, ciò che vedete nel vostro output non è un valore p bayesiano. Controlla la classe dimodel

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

e puoi vedere che la classe bayesglm eredita da glm. Inoltre, l'esame del pacchetto arm non mostra alcun metodo di riepilogo specifico per un oggetto bayesglm. Quindi quando lo fai

summary(model)

stai effettivamente facendo

summary.glm(model)

e ottenere l' interpretazione frequente dei risultati. Se vuoi una prospettiva più bayesiana la funzione in arm èdisplay()


+1 Risposta eccellente! Questo è il problema con R, ci sono così tanti statistici altamente intelligenti che scrivono codici orribili che lasciano in giro questo tipo di mine antiuomo.
Bogdanovist,

Sembra una scelta deliberata da parte dei progettisti, piuttosto che una svista.
atiretoo - reinstalla monica il

Dopo aver letto il link sono d'accordo con l'intento, ma in tal caso il sommario () avrebbe dovuto essere implementato nuovamente per chiamare semplicemente display () piuttosto che dare risultati senza senso senza preavviso. La persona che ha posto questa domanda è stata inciampata da un codice che ha rotto il modello utente per R che è stato stabilito da ogni altro oggetto che abbiano mai usato. È una pratica di programmazione terribile.
Bogdanovist,

2
Mille grazie, atiretoo. Ciò solleva un'altra domanda. Qual è la differenza tra display () e summary ()? Mi sembra che l'output del primo sia solo l'output del secondo, meno due colonne e arrotondato a 2 cifre. Sembrerebbe di sì, dal post di Gelman che hai collegato sopra.
user3671

Sì, e dalla discussione sul blog di Andrew Gelman sembra che lo risolveranno nelle versioni future del pacchetto arm.
atiretoo - reinstalla monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.