Como visualizar a qualidade bayesiana do ajuste para regressão logística

10

Para um problema de regressão logística bayesiana, criei uma distribuição preditiva posterior. Eu coleciono amostras da distribuição preditiva e recebo milhares de amostras de (0,1) para cada observação que tenho. Visualizar a qualidade do ajuste é menos do que interessante, por exemplo:

insira a descrição da imagem aqui

Este gráfico mostra as 10.000 amostras + o ponto de referência observado (na esquerda, é possível distinguir uma linha vermelha: sim, essa é a observação). O problema é que esse gráfico é pouco informativo e terei 23 deles, um para cada ponto de dados.

Existe uma maneira melhor de visualizar os 23 pontos de dados e amostras posteriores?


Outra tentativa:

insira a descrição da imagem aqui


Outra tentativa baseada no artigo aqui

insira a descrição da imagem aqui

Cam.Davidson.Pilon
fonte
11
Veja aqui um exemplo em que a técnica de visualização de dados acima funciona.
Cam.Davidson.Pilon
Isso é muito espaço desperdiçado IMO! Você realmente tem apenas 3 valores (abaixo de 0,5, acima de 0,5 e a observação) ou isso é apenas um artefato do exemplo que você deu?
Andy W
Na verdade, é pior: eu tenho 8500 0s e 1500 1s. O gráfico apenas pressiona esses valores para criar um histograma conectado. Mas eu concordo: muito espaço desperdiçado. Realmente, para cada ponto de dados que pode reduzi-la a uma proporção (ex 8500/10000) e uma observação (0 ou 1)
Cam.Davidson.Pilon
Então você tem 23 pontos de dados e quantos preditores? E a sua distração preditiva posterior para novos pontos de dados ou para os 23 que você usou para se ajustar ao modelo?
probabilityislogic
Seu gráfico atualizado está próximo do que eu ia sugerir. Mas o que o eixo x representa? Parece que você tem alguns pontos sobrepostos - o que com apenas 23 parece desnecessário.
Andy W

Respostas:

5

Sinto que você não está desistindo de todos os bens da sua situação, mas, considerando o que temos diante de nós, vamos considerar a utilidade de um simples gráfico de pontos para exibir as informações.

Gráfico de pontos

A única coisa real que não está aqui (que talvez não seja o comportamento padrão) é:

  • Utilizei codificações redundantes, forma e cor, para discriminar os valores observados de ausência de defeitos. Com informações tão simples, não é necessário colocar um ponto no gráfico. Além disso, você tem um problema quando o ponto está próximo dos valores médios, é preciso mais pesquisa para ver se o valor observado é zero ou um.
  • Classifiquei o gráfico de acordo com a proporção observada.

A classificação é o verdadeiro incentivo para gráficos de pontos como esses. A classificação por valores de proporção aqui ajuda a descobrir facilmente observações residuais altas. Ter um sistema em que você possa classificar facilmente por valores contidos na plotagem ou em características externas dos casos é a melhor maneira de obter o retorno do investimento.

Este conselho também se estende a observações contínuas. Você pode colorir / modelar os pontos de acordo com o resíduo negativo ou positivo e, em seguida, dimensionar o ponto de acordo com o resíduo absoluto (ou quadrado). Aqui, o IMO não é necessário devido à simplicidade dos valores observados.

Andy W
fonte
11
Eu gosto dessa solução e conteúdo, estou apenas aguardando outros envios. Obrigado Andy.
precisa saber é o seguinte
11
@ Cam.Davidson.Pilon - Também estou aguardando outras submissões! Como seu modelo possui apenas um preditor - a classificação pela proporção prevista de defeitos seria sinônimo de classificação por temperatura (assumindo um efeito monotônico - como aparece no gráfico). Talvez alguém venha com outra solução que efetivamente permita ver a proporção prevista e a temperatura original (ou algo completamente diferente). Essa exibição é boa para ver previsões ruins, mas não é muito boa para coisas como efeitos não lineares.
Andy W
11
Estou feliz em conceder a recompensa a você. A classificação é a chave para apresentá-lo, e o artigo vinculado do seu post anterior é o que eu vou usar. Obrigado!
precisa saber é o seguinte
4

A maneira usual de visualizar o ajuste de um modelo de regressão logística bayesiano com um preditor é traçar a distribuição preditiva junto com as proporções correspondentes. (Por favor, deixe-me saber se eu entendi sua pergunta)

Um exemplo usando o popular conjunto de dados Bliss.

insira a descrição da imagem aqui

Código Abaixo em R:

library(mcmc)

# Beetle data

ni = c(59, 60, 62, 56, 63, 59, 62, 60) # Number of individuals
no = c(6, 13, 18, 28, 52, 53, 61, 60) # Observed successes
dose = c(1.6907, 1.7242, 1.7552, 1.7842, 1.8113, 1.8369, 1.8610, 1.8839) # dose

dat = cbind(dose,ni,no)

ns = length(dat[,1])

# Log-posterior using a uniform prior on the parameters

logpost = function(par){
var = dat[,3]*log(plogis(par[1]+par[2]*dat[,1])) + (dat[,2]-dat[,3])*log(1-plogis(par[1]+par[2]*dat[,1]))

if( par[1]>-100000 ) return( sum(var) )
else return(-Inf)
}

# Metropolis-Hastings
N = 60000

samp <- metrop(logpost, scale = .35, initial = c(-60,33), nbatch = N)

samp$accept

burnin = 10000
thinning = 50

ind = seq(burnin,N,thinning)

mu1p =   samp$batch[ , 1][ind]

mu2p =   samp$batch[ , 2][ind]


# Visual tool

points = no/ni
# Predictive dose-response curve
DRL <- function(d) return(mean(plogis(mu1p+mu2p*d)))
DRLV = Vectorize(DRL)

v <- seq(1.55,2,length.out=55)
FL = DRLV(v)

plot(v,FL,type="l",xlab="dose",ylab="response")
points(dose,points,lwd=2)
Cerberis
fonte
Eu não sou um cara R, você pode fornecer o enredo / saída?
precisa saber é o seguinte
@ Cam.Davidson.Pilon Sinto muito, minha reputação não me permite incluir parcelas. Mas a idéia é traçar toda a curva dose-resposta junto com as proporções observadas.
Cerberis
Eu adicionei a imagem. Você assume uma estrutura diferente para os dados nos quais os OPs não se estendem diretamente ao seu exemplo. Os dados do OP seria como se o seu ni = 23e no = 7e cada um dos 23 indivíduos tem um diferente dose. Porém, você pode fazer um gráfico semelhante para os dados do OP (os pontos são colocados em 0 ou 1 no eixo Y e você plota a função). Veja alguns exemplos de gráficos semelhantes para regressão logística nas referências que dou nesta resposta .
Andy W
@AndyW Obrigado por isso e pelo esclarecimento também.
Cerberis
@ AndyW ah, os papéis que você vincula são bastante úteis! Vou ter que olhar mais de perto para ver se posso aplicá-las.
amigos estão dizendo sobre camdavidson.Pilon
3

Estou respondendo a uma solicitação de técnicas gráficas alternativas que mostram como os eventos de falha simulados correspondem aos eventos de falha observados. A questão surgiu em "Programação Probabilística e Métodos Bayesianos para Hackers", encontrada aqui . Aqui está minha abordagem gráfica:

Falhas de O-Ring simuladas versus observadas

Código encontrado aqui .

user35216
fonte
Interessante - você pode oferecer algum argumento sobre por que usar essa técnica? Obrigado por compartilhar!
Cam.Davidson.Pilon
Este é um resultado probabilístico, não determinístico. Por isso, procurei uma representação que transmitisse várias coisas: 1) a gama de eventos observados e previstos; 2: a distribuição de probabilidade das falhas previstas; 3) a distribuição de probabilidade das não falhas previstas; e 4) faixas em que a falha é mais provável, a não falha é mais provável e faixas em que as probabilidades de falha e não falha se sobrepõem. Este gráfico mostra tudo isso aos meus olhos.
user35216
Mais algumas adições / esclarecimentos: 1) a faixa de temperatura dos eventos observados e previstos; 5) falhas reais observadas e não falhas
user35216