Ajude-me a entender os valores de

13

Estou tentando executar um logit bayesiano nos dados aqui . Estou usando bayesglm()no armpacote em R. A codificação é direta o suficiente:

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) fornece a seguinte saída:

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

Por favor, acompanhe-me. Eu entendo que esse código usa um prior muito fraco (já que não estou especificando os meios anteriores), portanto a saída será praticamente a mesma se eu usar em glm()vez de bayesglm(). Mas a saída ainda deve estar no espírito bayesiano, certo? Quais são os valores e aqui? Essas ferramentas de inferência freqüentista não são? Eles são interpretados de maneira diferente aqui?pz

user3671
fonte
Este é um comentário e não uma resposta, mas é isso que faria algum sentido para mim. Você obtém estimativas que provavelmente são os valores para os quais a distribuição posterior é maximizada. Também pode ser possível que eles sejam apenas os meios do posterior? Vale a pena conferir se puder. Mas não importa quais sejam os detalhes exatos, uma vez que você tenha algumas estimativas, poderá testá-las usando a estimativa / padrão usual. Erro -> procedimento de escore z, que funciona se o posterior estiver próximo o suficiente do normal (vai para o normal em algumas condições que normalmente se mantêm).
Erik
Erik ... Você está correto: os coeficientes são realmente os meios das densidades posteriores. Minha pergunta é sobre os valores p e z. O que eles representam aqui?
precisa saber é o seguinte
Está bem. Se você tem uma densidade aproximadamente distribuída normalmente, pode testar se a média é zero, obtendo o escore z = média / desvio padrão da distribuição e comparando-a com a distribuição normal padrão. Então você vê quão improvável seu valor ou um valor maior estaria abaixo da distribuição normal padrão -> valor-p. Veja z-score na Wikipedia para detalhes.
Erik
Bem, sim. Mas por que se preocupar em fazer isso em um cenário bayesiano? Na inferência bayesiana, a estimativa pontual é o meu melhor palpite sobre o parâmetro aleatório, portanto não há necessidade de testá-lo. No máximo, posso incluir um "intervalo credível" que é equivalente a um "intervalo de confiança" freqüentista, mas cuja interpretação estatística é muito diferente. Essa é a parte confusa sobre a saída summary (). O espírito é bayesiano, mas a produção é freqüentista?
user3671
Um ponto é que a estimativa obtida será diferente, já que você usou uma prévia. E enquanto a estimativa pontual é o "melhor palpite", se você deseja mostrar de maneira bayesiana que algo tem um efeito, você tentaria mostrar que o intervalo confiável não contém o zero. Quando você aproxima o posterior por um normal com a mesma média e sd (assintoticamente correto), o intervalo de credibilidade (1-p / 2) é o maior intervalo de credibilidade simétrico que contém o zero, portanto sua resposta é basicamente a mesma. O valor de p é p indicado acima.
Erik

Respostas:

16

Ótima pergunta! Embora existam valores p bayesianos e um dos autores do pacote arm seja um defensor, o que você está vendo em sua saída não é um valor p bayesiano. Verifique a classe demodel

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

e você pode ver que a classe bayesglm herda da glm. Além disso, o exame da embalagem do braço não mostra um método de resumo específico para um objeto bayesglm. Então quando você faz

summary(model)

você está realmente fazendo

summary.glm(model)

e obter uma interpretação freqüente dos resultados. Se você quer uma perspectiva mais bayesiana, a função no braço édisplay()

atiretoo - restabelecer monica
fonte
+1 Excelente resposta! Esse é o problema com o R, há muitos estatísticos altamente inteligentes que escrevem códigos horríveis que deixam esses tipos de minas por aí.
Bogdanovist
Parece uma escolha deliberada por parte dos designers, em vez de uma supervisão.
atiretoo - restabelecer monica
Depois de ler o link, concordo com a intenção, mas nesse caso o resumo () deveria ter sido reimplementado para simplesmente chamar display () em vez de fornecer resultados sem sentido, sem aviso prévio. A pessoa que fez essa pergunta foi enganada por um código que quebrou o modelo de usuário para R que foi estabelecido por todos os outros objetos que eles já usaram. Essa é uma prática terrível de programação.
Bogdanovist
2
Muito obrigado, atiretoo. Isso levanta outra questão. Qual é a diferença entre display () e summary ()? Parece-me que a saída da primeira é apenas a saída da última, menos duas colunas, e arredondada para 2 dígitos. Parece que sim, no post de Gelman que você vinculou acima.
user3671
Sim, e a partir da discussão no blog de Andrew Gelman, parece que eles resolverão isso em versões futuras do pacote arm.
atiretoo - restabelecer monica