Cómo visualizar la bondad de ajuste bayesiano para la regresión logística

10

Para un problema de regresión logística bayesiana, he creado una distribución predictiva posterior. Tomo muestras de la distribución predictiva y recibo miles de muestras de (0,1) por cada observación que tengo. Visualizar la bondad de ajuste es menos que interesante, por ejemplo:

ingrese la descripción de la imagen aquí

Este gráfico muestra las 10 000 muestras + el punto de referencia observado (en el lado izquierdo se puede distinguir una línea roja: sí, esa es la observación). El problema es que esta trama es apenas informativa, y tendré 23 de ellos, uno para cada punto de datos.

¿Hay una mejor manera de visualizar los 23 puntos de datos más las muestras posteriores?


Otro intento:

ingrese la descripción de la imagen aquí


Otro intento basado en el documento aquí

ingrese la descripción de la imagen aquí

Cam.Davidson.Pilon
fuente
1
Vea aquí un ejemplo donde funciona la técnica anterior de datos vis.
Cam.Davidson.Pilon
Eso es mucho espacio desperdiciado IMO! ¿Realmente solo tiene 3 valores (por debajo de 0.5, por encima de 0.5 y la observación) o es solo un artefacto del ejemplo que dio?
Andy W
De hecho, es peor: tengo 8500 0s y 1500 1s. El gráfico simplemente empuja estos valores para hacer un histograma conectado. Pero estoy de acuerdo: mucho espacio desperdiciado. Realmente, para cada punto de datos puedo reducirlo a una proporción (ex 8500/10000) y una observación (0 o 1)
Cam.Davidson.Pilon
¿Entonces tiene 23 puntos de datos y cuántos predictores? ¿Y es su distribución predictiva posterior para nuevos puntos de datos o para los 23 que utilizó para ajustar el modelo?
probabilidadislogica
Su parcela actualizada está cerca de lo que iba a sugerir. ¿Qué representa el eje x? Parece que tienes algunos puntos superpuestos, que con solo 23 parece innecesario.
Andy W

Respuestas:

5

Tengo la sensación de que no estás entregando todos los bienes a tu situación, pero dado lo que tenemos frente a nosotros, consideremos la utilidad de un simple diagrama de puntos para mostrar la información.

Gráfica de puntos

Lo único real que no está aquí (que quizás no sean comportamientos predeterminados) son:

  • Utilicé codificaciones redundantes, forma y color, para discriminar entre los valores observados de ausencia de defectos y defectos. Con una información tan simple, no es necesario colocar un punto en el gráfico. También tiene un problema cuando el punto está cerca de los valores medios, se necesita más búsqueda para ver si el valor observado es cero o uno.
  • Ordene el gráfico según la proporción observada.

La clasificación es la verdadera patada para diagramas de puntos como estos. Ordenar por valores de proporción aquí ayuda a descubrir fácilmente observaciones residuales elevadas. Tener un sistema en el que pueda ordenar fácilmente por valores contenidos en la trama o en las características externas de los casos es la mejor manera de obtener el beneficio de su inversión.

Este consejo se extiende también a las observaciones continuas. Puede colorear / dar forma a los puntos según si el residuo es negativo o positivo, y luego dimensionar el punto según el residuo absoluto (o al cuadrado). Esto es IMO no necesario aquí, aunque debido a la simplicidad de los valores observados.

Andy W
fuente
1
Me gusta esta solución y este contenido, solo estoy esperando otras presentaciones. Gracias Andy
Cam.Davidson.Pilon 01 de
1
@ Cam.Davidson.Pilon - ¡Estoy esperando otras presentaciones también! Debido a que su modelo solo tiene un predictor, ordenar por la proporción pronosticada de defectos sería sinónimo de temperatura (suponiendo un efecto monótono, como aparece en su gráfico). Quizás alguien vendrá con otra solución que efectivamente le permite a uno ver tanto la proporción predicha como la temperatura original (o algo completamente diferente). Esta pantalla es buena para ver malas predicciones, pero no es muy buena para cosas como ver efectos no lineales.
Andy W
1
Estoy feliz de otorgarle la recompensa. Ordenar es la clave para presentarlo, y el papel vinculado a tu publicación anterior es lo que usaré. ¡Gracias!
Cam.Davidson.Pilon
4

La forma habitual de visualizar el ajuste de un modelo de regresión logística bayesiana con un predictor es trazar la distribución predictiva junto con las proporciones correspondientes. (Por favor, avíseme si entendí su pregunta)

Un ejemplo usando el popular conjunto de datos de Bliss.

ingrese la descripción de la imagen aquí

Código abajo en 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
fuente
No soy un chico R, ¿puedes proporcionar la trama / salida?
Cam.Davidson.Pilon
@ Cam.Davidson.Pilon Lo siento, mi reputación no me permite incluir tramas. Pero la idea es trazar la curva dosis-respuesta completa junto con las proporciones observadas.
Cerberis
He añadido la foto. Asume una estructura diferente para los datos en los que los OP no se extienden directamente a su ejemplo. Los datos del OP sería como si su ni = 23e no = 7y cada uno de los 23 individuos tiene una diferente dose. Sin embargo, podría hacer una gráfica similar para los datos del OP (los puntos se colocan en 0 o 1 en el eje Y, y usted traza la función). Vea algunos ejemplos de parcelas similares para la regresión logística en las referencias que doy en esta respuesta .
Andy W
@AndyW Gracias por esto y por la aclaración también.
Cerberis
@AndyW ah, los documentos que enlazas son bastante útiles. Tendré que echar un vistazo más de cerca para ver si puedo aplicarlos.
Cam.Davidson.Pilon
3

Estoy respondiendo a una solicitud de técnicas gráficas alternativas que muestran qué tan bien los eventos de falla simulados coinciden con los eventos de falla observados. La pregunta surgió en "Programación probabilística y métodos bayesianos para hackers" que se encuentra aquí . Aquí está mi enfoque gráfico:

Fallas simuladas o observadas de juntas tórica

Código encontrado aquí .

usuario35216
fuente
Interesante: ¿puede ofrecer algún argumento sobre por qué usar esta técnica? ¡Gracias por compartir!
Cam.Davidson.Pilon
Este es un resultado probabilístico, no determinista. Por lo tanto, busqué una representación que transmitiera varias cosas: 1) el rango de eventos observados y pronosticados; 2: la distribución de probabilidad de las fallas predichas; 3) la distribución de probabilidad de no fallas previstas; y 4) rangos donde la probabilidad de falla es más probable, la falta de falla es más probable y rangos donde las probabilidades de falla y falta de falla se superponen. Este gráfico muestra hace todo eso a mis ojos.
user35216
Algunas adiciones / aclaraciones más: 1) el rango de temperatura de los eventos observados y pronosticados; 5) fallas y fallas reales observadas
usuario35216