6 votos

FCD y regresión logística

¿La probabilidad calculada por un modelo de regresión logística (la que se transforma en logit) es el ajuste de la función de distribución acumulativa de éxitos de los datos originales (ordenados por la variable X)?

EDITAR: En otras palabras, ¿cómo trazar la distribución de probabilidad de los datos originales que se obtienen al ajustar un modelo de regresión logística?

La motivación de la pregunta fue el ejemplo de Jeff Leak sobre la regresión en la puntuación de los Cuervos en un partido y si ganaron o no (del curso de Análisis de Datos de Coursera). Es cierto que el problema es artificial (véase el comentario de @FrankHarrell más abajo). Aquí están sus datos con una mezcla de su y mi código:

download.file("http://dl.dropbox.com/u/7710864/data/ravensData.rda", 
              destfile="ravensData.rda", method="internal")
load("ravensData.rda")

plot(ravenWinNum~ravenScore, data=ravensData)

enter image description here

No parece un buen material para la regresión logística, pero intentémoslo de todos modos:

logRegRavens <- glm(ravenWinNum ~ ravenScore, data=ravensData, family=binomial)
summary(logRegRavens)
# the beta is not significant

# sort table by ravenScore (X)
rav2 = ravensData[order(ravensData$ravenScore), ]

# plot CDF
plot(sort(ravensData$ravenScore), cumsum(rav2$ravenWinNum)/sum(rav2$ravenWinNum), 
     pch=19, col="blue", xlab="Score", ylab="Prob Ravens Win", ylim=c(0,1), 
     xlim=c(-10,50))
# overplot fitted values (Jeff's)
points(ravensData$ravenScore, logRegRavens$fitted, pch=19, col="red")
# overplot regression curve
curve(1/(1+exp(-(logRegRavens$coef[1]+logRegRavens$coef[2]*x))), -10, 50, add=T)

Si entiendo correctamente la regresión logística, R hace un trabajo bastante malo a la hora de encontrar los coeficientes correctos en este caso.

enter image description here

  • azul = datos originales a ajustar, creo (CDF)
  • rojo = predicción del modelo (datos ajustados = proyección de los datos originales sobre la curva de regresión)

SOLUCIONADO
- lowess parece ser un buen estimador no paramétrico de los datos originales = lo que se está ajustando (gracias @gung). Verlo nos permite elegir el modelo adecuado, que en este caso sería añadir el término cuadrado al modelo anterior (@gung)
- Por supuesto, el problema es bastante artificial y modelarlo bastante inútil en general (@FrankHarrell)
- en regresión logística regular no es CDF, sino probabilidades puntuales - señalado por primera vez por @FrankHarrell; también mi vergonzosa incapacidad para calcular CDF señalada por @gung.

2voto

dan90266 Puntos 609

Sería bueno estudiar un texto estándar sobre regresión logística. Entre otras cosas, está usted confundiendo el condicionamiento completo ( $Pr[Y=1 | X=x]$ como las estimaciones del modelo logístico) con condicionamiento parcial ( $Pr[Y=1 | X \leq x]$ ). Pero lo más importante es que el modelo que ha ajustado no es estocástico, es decir, el ganador se determina con certeza a partir de las dos puntuaciones.

2voto

AdamSane Puntos 1825

Lo que el modelo proporciona es una estimación de la proporción condicional (población) de veces $Y=1$ en cada $x$ .

Si comparas el modelo ajustado con los datos a los que se ajustó..:

plot(ravenWinNum~ravenScore, data=ravensData)
points(logRegRavens$fitted~ravenScore,ravensData,col=4,pch=16,cex=.8)

enter image description here

... no parece un mal ajuste en absoluto.

Las dos cosas que pareces estar comparando no parecen ser comparables, pero quizás podrías explicar más claramente por qué deberían serlo.

2voto

Sean Hanley Puntos 2428

Aquí hay varios problemas. El principal es que el código que genera los puntos azules en el segundo gráfico es confuso. No consigo entender cuál es la lógica. El $x$ son los mismos que sus datos, pero los valores $y$ son el número de victorias obtenidas hasta ese momento en el $x$ dividido por el número total de victorias. Esto realmente no tiene sentido. Ni siquiera estás dividiendo por el número total de partidos lo que significa que no tienes la probabilidad acumulada en ese punto (aunque seguiría sin tener sentido). Esto también hace que te preguntes por qué el último punto azul no está en $1.0$ . En realidad lo es, pero el último punto está en $x=55$ lo que queda excluido por su argumento xlim=c(-10,50) .

En cualquier caso, si desea obtener una estimación no paramétrica de lo que podría ser la función subyacente, podría trazar una línea de lowess:

plot(ravenWinNum~ravenScore, data=ravensData)
lines(with(ravensData, lowess(ravenWinNum~ravenScore)))

enter image description here

Lo que queda claro en esta figura es que existe una relación curvilínea entre la puntuación y la probabilidad de ganar (al menos en estos datos, podemos debatir si eso tiene algún sentido teórico). Si se piensa en ello, en el gráfico de los datos brutos se ve claramente que hay un número creciente de victorias tanto en el extremo inferior como en el superior de la tabla. $x$ las pérdidas están en el centro. Una forma muy sencilla de ajustar una relación curvilínea es añadir un término al cuadrado:

lr.Ravens2 <- glm(ravenWinNum~ravenScore+I(ravenScore^2), data=ravensData, 
                  family=binomial)

Podemos probar estos modelos en su conjunto evaluando su desviación frente a la desviación nula y comparando el resultado con una distribución chi-cuadrado con el número de grados de libertad consumido. Hacemos esto porque queremos pensar en el término lineal y el término cuadrático juntos como una unidad. Este método de comprobación del modelo en su conjunto es análogo al método global $F$ -prueba que viene con un modelo de regresión múltiple.

# here is the test of the model with the squared term as a whole
1-pchisq(24.435-16.875, df=2)
[1] 0.02282269
# here is the test of your model
1-pchisq(24.435-20.895, df=1)
[1] 0.05990546
# this is the test of the improvement due to adding the squared term
1-pchisq(20.895-16.875, df=1)
[1] 0.04496371

Yo no le daría demasiada importancia al umbral arbitrario de significación a $.05$ pero vemos que el modelo inicial no es significativo según los estándares convencionales, o al menos es ligeramente menos significativo. (Dado que tiene tan pocos datos, yo pensaría que un $\alpha$ está bien). El modelo que incluye también el término al cuadrado es más significativo, aunque utilice otro de sus preciados pocos grados de libertad. El AIC también es menor: el primer modelo tiene $AIC=24.895$ mientras que el segundo modelo tiene $AIC=22.875$ . La última de las pruebas enumeradas muestra que la adición del término al cuadrado produce una mejora significativa del ajuste.

La implicación del hecho de que exista una relación curvilínea entre $x$ y $y$ es que la función que asigna la probabilidad condicional de que $y_i=1$ dado $x_i$ no puede equipararse a una distribución de probabilidad acumulativa que toma $x$ como sus cuantiles.

Para completar, aquí está el mismo gráfico con las probabilidades predichas del modelo superpuestas:

enter image description here

Vemos que las probabilidades previstas reflejan razonablemente bien la línea de lowess. Por supuesto, no coinciden perfectamente, pero no hay razón para creer que la línea de lowess sea exactamente correcta; sólo proporciona una aproximación no paramétrica de cualquiera que sea la función subyacente.


Una vez abordado el ejemplo concreto de su pregunta, merece la pena abordar el supuesto subyacente a la pregunta de forma más general. ¿Cuál es la relación entre la regresión logística y una función de distribución acumulativa (FDA)?

Puede haber una conexión entre la regresión binomial y una FDA. Por ejemplo, cuando se utiliza la conexión probit, la probabilidad condicional de "éxito" ( $\pi_i(Y_i=1|X=x_i)$ ) se transforma mediante la inversa de la FCD normal. (Para más información sobre esto, puede ayudar a leer mi respuesta aquí: diferencia entre los modelos logit y probit .) Pero hay que hacer un par de observaciones al respecto. En primer lugar, como señalan @FrankHarrell y @Glen_b, la regresión binomial (por ejemplo, logística) consiste en modelar probabilidades condicionales en cada punto.

En segundo lugar, aunque la función ajustada puede parecerse a una FCD cuando las condiciones son las adecuadas, no será así. nunca sea en realidad una función (escalada, desplazada, etc.) de la FCD de su $X$ datos. Tus propios datos sirven como ejemplo de que la función ni siquiera parece una FDA porque tienes una relación polinómica. Pero es cierto incluso cuando la función se parece a una FDA. La forma más fácil de entender esto es que su último (más alto $x$ valorado) estará siempre al 100% del recorrido de sus datos, pero la función ajustada nunca alcanzará $\hat p_i=1.0$ sólo puede aproximarse a ese valor como $X$ (la variable, no tus datos) se acerca al infinito. En consecuencia, no debe pensar en una función de la FCD de su $x$ datos como los valores a los que se supone que debe aproximarse la regresión logística.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X