¿Cómo utiliza la regresión logística la distribución binomial?

19

Estoy tratando de entender cómo la regresión logística utiliza la distribución binomial.

Digamos que estoy estudiando el éxito del nido en las aves. La probabilidad de que un nido sea exitoso es 0.6. Usando la distribución binomial, puedo calcular la probabilidad de r éxitos dados n ensayos (número de nidos estudiados).

Pero, ¿cómo se usa la distribución binomial en un contexto de modelado? Digamos que quiero saber cómo la temperatura diaria promedio afecta el éxito del nido y uso la regresión logística para explorar esta pregunta.

Dentro del contexto que describí, ¿cómo usa la regresión logística la distribución binomial?

Estoy buscando una respuesta intuitiva, ¡por lo tanto, una respuesta sin ecuaciones! Creo que las ecuaciones solo son útiles una vez que se ha logrado la comprensión a un nivel intuitivo.

luciano
fuente
posible duplicado de Ayuda para traducir el comando R GLM a la notación matemática
Sycorax dice Reinstate Monica
2
Es un buen hilo de referencia, @ user777, pero creo que puede no funcionar como un duplicado si el OP solicita específicamente una explicación sin ecuaciones. Sin embargo, una buena pregunta es si el papel de la distribución binomial puede explicarse bien sin ecuaciones. Ciertamente, LR puede recibir una explicación intuitiva, pero el papel del binomio w / i LR es inherentemente algo matemático.
gung - Restablece a Monica
@gung Disculpas a luciano. Ver "distribución binomial" sobrescribió "sin ecuaciones" cuando consideré posibles respuestas. Claramente eso fue inconsistente con la solicitud de OP.
Sycorax dice Reinstate Monica
Siento que he entendido la idea de usar la escala de probabilidades de registro para la regresión y luego convertir de la escala de logit a la escala de 0-1. Pero sigo leyendo cosas como 'los errores están distribuidos binomialmente'. ¿Cómo se pueden distribuir los errores binomialmente?
luciano
55
Cualquier libro en el que lo leas, tíralo a la basura.
Scortchi - Restablece a Monica

Respuestas:

7

Suponga que observa varios nidos a diferentes temperaturas medias diarias . ¿Cómo depende la probabilidad π ( t ) del éxito del nido de la temperatura t ? (Si los nidos son independientes, el número de nidos con éxito a la temperatura t se distribuye binomialmente con n igual al número de nidos observados y la probabilidad de éxito π ( t )) .tπ(t)ttnπ(t)

La regresión logística es un enfoque (usando la función logística) de especificar la probabilidad de éxito como una función de la temperatura a través del estiramiento y el desplazamiento de la curva logística, con la cantidad de estiramiento y desplazamiento necesarios para estimarse a partir de los datos.

binkyhorse
fuente
15

Sin ecuaciones? Yikes Veamos:

El modelo de regresión logística es literalmente un modelo para el parámetro p de una distribución binomial; Con un predictor continuo, cada punto puede tener su propia distribución. (En los casos en que las observaciones son 0-1, tratamos el caso especial de Bernoulli; esta es una situación común).

El n es dado, no modelado. Entonces, el resultado es que, con un modelo que relaciona los pi 's y un ni conocido , podemos modelar datos binomiales en términos de un predictor que describa la media (y la varianza) a través de su modelo para p . El modelo puede ajustarse mediante la estimación de máxima verosimilitud, pero debido a su forma especial (familia exponencial), ML es relativamente "agradable".

Debido a que el enlace logístico es canónico para la familia binomial, es aún más agradable, ya que las estadísticas suficientes son de forma muy simple; esto lo hace conveniente para tratar con grandes muestras, o incluso para desarrollar algoritmos 'en línea'.

p

Con la regresión logística, esa curva (la función de enlace) es una función logística. Son posibles otras funciones, y muchos paquetes implementan varios (R tiene tres adecuados incorporados en su glmfuncionalidad si no recuerdo mal).


Ningún símbolo de igualdad fue dañado en la realización de esta publicación.

Glen_b -Reinstate a Monica
fuente
2

Su modelo asume que el éxito de un nido puede verse como una apuesta: Dios lanza una moneda cargada con lados etiquetados como "éxito" y "fracaso". El resultado del lanzamiento de un nido es independiente del resultado del lanzamiento de cualquier otro nido.

Sin embargo, las aves sí tienen algo que hacer: la moneda podría favorecer en gran medida el éxito a algunas temperaturas en comparación con otras. Por lo tanto, cuando tiene la oportunidad de observar nidos a una temperatura dada, el número de éxitos es igual al número de lanzamientos exitosos de la misma moneda, el de esa temperatura. La distribución binomial correspondiente describe las posibilidades de éxito. Es decir, establece la probabilidad de cero éxitos, de uno, de dos, ... y así sucesivamente a través del número de nidos.

Una estimación razonable de la relación entre la temperatura y cómo Dios carga las monedas está dada por la proporción de éxitos observados a esa temperatura. Esta es la estimación de máxima verosimilitud (MLE).

71033/7.3/73

5,10,15,200,3,2,32,7,5,3

La fila superior de la figura muestra los MLE en cada una de las cuatro temperaturas observadas. La curva roja en el panel "Ajustar" traza cómo se carga la moneda, dependiendo de la temperatura. Por construcción, esta traza pasa a través de cada uno de los puntos de datos. (Se desconoce qué hace a temperaturas intermedias; he conectado crudamente los valores para enfatizar este punto).

Este modelo "saturado" no es muy útil, precisamente porque no nos da una base para estimar cómo Dios cargará las monedas a temperaturas intermedias. Para hacer eso, debemos suponer que hay algún tipo de curva de "tendencia" que relaciona las cargas de monedas con la temperatura.

Figura

La fila inferior de la figura se ajusta a esa tendencia. La tendencia es limitada en lo que puede hacer: cuando se traza en coordenadas apropiadas ("probabilidades de registro"), como se muestra en los paneles de "Respuesta de Logit" a la izquierda, solo puede seguir una línea recta. Cualquiera de estas líneas rectas determina la carga de la moneda a todas las temperaturas, como se muestra en la línea curva correspondiente en los paneles "Ajustar". Esa carga, a su vez, determina las distribuciones binomiales a todas las temperaturas. La fila inferior traza esas distribuciones para las temperaturas donde se observaron los nidos. (Las líneas negras discontinuas marcan los valores esperados de las distribuciones, lo que ayuda a identificarlas con bastante precisión. No ve esas líneas en la fila superior de la figura porque coinciden con los segmentos rojos).

Ahora se debe hacer una compensación: la línea puede pasar de cerca a algunos de los puntos de datos, solo para alejarse de otros. Esto hace que la distribución binomial correspondiente asigne probabilidades más bajas a la mayoría de los valores observados que antes. Puede ver esto claramente a 10 grados y 15 grados: la probabilidad de los valores observados no es la probabilidad más alta posible, ni está cerca de los valores asignados en la fila superior.

La regresión logística desliza y mueve las posibles líneas (en el sistema de coordenadas utilizado por los paneles "Logit Response"), convierte sus alturas en probabilidades binomiales (los paneles "Fit"), evalúa las posibilidades asignadas a las observaciones (los cuatro paneles de la derecha) ), y elige la línea que ofrece la mejor combinación de esas posibilidades.

¿Qué es "mejor"? Simplemente que la probabilidad combinada de todos los datos es lo más grande posible. De esta manera, no se permite que ninguna probabilidad única (los segmentos rojos) sea realmente pequeña, pero generalmente la mayoría de las probabilidades no serán tan altas como en el modelo saturado.

Aquí hay una iteración de la búsqueda de regresión logística donde la línea se rotó hacia abajo:

Figura 2

1015grados pero un trabajo terrible de ajustar los otros datos. (A 5 y 20 grados, las probabilidades binomiales asignadas a los datos son tan pequeñas que ni siquiera puede ver los segmentos rojos). En general, este ajuste es mucho peor que los que se muestran en la primera figura.


Espero que esta discusión le haya ayudado a desarrollar una imagen mental de las probabilidades binomiales que cambian a medida que la línea varía, todo mientras mantiene los datos iguales. El ajuste de línea por regresión logística intenta hacer que esas barras rojas en general sean lo más altas posible. Por lo tanto, la relación entre la regresión logística y la familia de distribuciones binomiales es profunda e íntima.


Apéndice: Rcódigo para producir las figuras

#
# Create example data.
#
X <- data.frame(temperature=c(5,10,15,20),
                nests=c(2,7,5,3),
                successes=c(0,3,2,3))
#
# A function to plot a Binomial(n,p) distribution and highlight the value `k0`.
#
plot.binom <- function(n, p, k0, highlight="#f02020", ...) {
  plot(0:n, dbinom(0:n, n, p), type="h", yaxt="n",
       xlab="Trials", ylab="Probability", ...)
  abline(v = p*n, lty=3, lwd=2)
  if(!missing(k0)) lines(rep(k0,2), c(0, dbinom(k0,n,p)), lwd=2, col=highlight)
}
#
# A function to convert from probability to log odds.
#
logit <- function(p) log(p) - log(1-p)
#
# Fit a saturated model, then the intended model.
#
# Ordinarily the formula for the saturated model would be in the form
# `... ~ factor(temperature)`, but the following method makes it possible to  
# plot the predicted values in a visually effective way.
#
fit.0 <- glm(cbind(successes, nests-successes) ~ factor(round(temperature/5)), 
             data=X, family=binomial)
summary(fit.0)

fit <- glm(cbind(successes, nests-successes) ~ temperature, 
           data=X, family=binomial)
summary(fit)
#
# Plot both fits, one per row.
#
lfits <- list(fit.0, fit)
par.old <- par(mfrow=c(length(lfits), nrow(X)+2))
for (fit in lfits) {
  #
  # Construct arrays of plotting points.
  #
  X$p.hat <- predict(fit, type="response")
  Y <- data.frame(temperature = seq(min(X$temperature), max(X$temperature), 
                                    length.out=101))
  Y$p.hat <- predict(fit, type="response", newdata=Y)  # Probability
  Y$lambda.hat <- predict(fit, type="link", newdata=Y) # Log odds
  #
  # Plot the fit in terms of log odds.
  #
  with(Y, plot(temperature, lambda.hat, type="n", 
               yaxt="n", bty="n", main="Logit Response",
               ylab=expression(hat(lambda))))
  if (isTRUE(diff(range(Y$lambda.hat)) < 6)) {
    # Draw gridlines and y-axis labels
    p <- c( .10, .25, .5, .75, .9)
    q <- logit(p)
    suppressWarnings(rug(q, side=2))
    abline(h=q, col="#d0d0d0")
    mtext(signif(p, 2), at=q, side=2, cex=0.6)
  }
  with(Y, lines(temperature, lambda.hat, lwd=2, col="#f02020"))
  #
  # Plot the data and the fit in terms of probability.
  #
  with(X, plot(temperature, successes/nests, ylim=0:1,
               cex=sqrt(nests), pch=21, bg="Gray",
               main="Fit"))
  with(Y, lines(temperature, p.hat, col="#f02020", lwd=2))
  #
  # Plot the Binomial distributions associated with each row of the data.
  #
  apply(X, 1, function(x) plot.binom(x[2], x[4], x[3], bty="n", lwd=2, col="Gray",
                                     main=paste(x[1], "Degrees")))
}
par(mfrow=par.old)
whuber
fuente
¿estaría allí el código r divulgado? muchas gracias.
Maximiliano
1
@Maximilian agregué el código.
whuber