¿Cómo evaluar el poder predictivo del conjunto de predictores categóricos de un resultado binario? Calcular probabilidades o regresión logística?

10

Estoy tratando de determinar si las probabilidades simples funcionarán para mi problema o si será mejor usar (y aprender) métodos más sofisticados como la regresión logística.

La variable de respuesta en este problema es una respuesta binaria (0, 1). Tengo varias variables predictoras que son todas categóricas y desordenadas. Estoy tratando de determinar qué combinaciones de las variables predictoras producen la mayor proporción de 1. ¿Necesito regresión logística? ¿Cómo sería una ventaja calcular las proporciones en mi conjunto de muestras para cada combinación de predictores categóricos?

Rachel
fuente
Si tiene más de 1 predictor, podría ser complicado hacerlo sin algún tipo de modelo de regresión. ¿Qué tenías en mente? ¿Solo una gran tabla de contingencia dimensional ( es el número de predictores)? kkk
Macro
¿Las categorías de predictores se agrupan en más de un factor y, de ser así, se cruzan o anidan? Además, ¿solo le interesa hacer una declaración descriptiva? Si sus datos son complejos, un modelo LR puede ser más conveniente, y si desea hacer inferencias, creo que es preferible LR.
gung - Restablece a Monica
@Macro: Sí, estaba pensando que sería esencialmente una gran mesa, con una columna que muestra el número de puntos de muestra que corresponden al escenario, y otra columna que muestra la proporción de 1. Tengo cinco predictores categóricos, cada uno con 10-30 valores posibles, por lo que sé que la lista de escenarios sería alta. Estaba pensando en escribir un bucle en R que atraviese cada uno y arroje resultados significativos (alta proporción de 1 más un gran número de puntos de muestra en el escenario).
Rachel
@gung: los factores se cruzan solo parcialmente. Ninguno de los factores se consideraría anidado. Estoy interesado en encontrar las combinaciones de factores (por ejemplo, Estado, Cliente, Empleado) que probablemente tengan una alta probabilidad de que la variable de respuesta sea igual a 1.
Rachel
1
@EmreA - Desafortunadamente, las variables categóricas no son completamente independientes. Algunas combinaciones serán más probables que otras ...
Rachel

Respuestas:

11

La regresión logística, hasta la imprecisión numérica, dará exactamente los mismos ajustes que los porcentajes tabulados. Por lo tanto, si sus variables independientes son objetos factorialesfactor1 , etc., y los resultados dependientes (0 y 1) lo son x, puede obtener los efectos con una expresión como

aggregate(x, list(factor1, <etc>), FUN=mean)

Compara esto con

glm(x ~ factor1 * <etc>, family=binomial(link="logit"))

Como ejemplo, generemos algunos datos aleatorios:

set.seed(17)
n <- 1000
x <- sample(c(0,1), n, replace=TRUE)
factor1 <- as.factor(floor(2*runif(n)))
factor2 <- as.factor(floor(3*runif(n)))
factor3 <- as.factor(floor(4*runif(n)))

El resumen se obtiene con

aggregate.results <- aggregate(x, list(factor1, factor2, factor3), FUN=mean)
aggregate.results

Su salida incluye

   Group.1 Group.2 Group.3         x
1        0       0       0 0.5128205
2        1       0       0 0.4210526
3        0       1       0 0.5454545
4        1       1       0 0.6071429
5        0       2       0 0.4736842
6        1       2       0 0.5000000
...
24       1       2       3 0.5227273

Para referencia futura, la estimación de los factores en los niveles (1,2,0) en la fila 6 de la salida es 0.5.

La regresión logística abandona sus coeficientes de esta manera:

model <- glm(x ~ factor1 * factor2 * factor3, family=binomial(link="logit"))
b <- model$coefficients

Para usarlos, necesitamos la función logística:

logistic <- function(x) 1 / (1 + exp(-x))

Para obtener, por ejemplo, la estimación de factores en los niveles (1,2,0), calcule

logistic (b["(Intercept)"] + b["factor11"] + b["factor22"] + b["factor11:factor22"])

(Observe cómo se deben incluir todas las interacciones en el modelo y se deben aplicar todos los coeficientes asociados para obtener una estimación correcta).

(Intercept) 
        0.5

de acuerdo con los resultados de aggregate. (El encabezado "(Intercepción)" en la salida es un vestigio de la entrada y efectivamente no tiene sentido para este cálculo).


La misma información en otra forma más aparece en la salida detable . Por ejemplo, la salida (larga) de

table(x, factor1, factor2, factor3)

incluye este panel:

, , factor2 = 2, factor3 = 0

   factor1
x    0  1
  0 20 21
  1 18 21

factor121/ /(21+21)=0.5 0.5x1aggregateglm


Finalmente, una combinación de factores que producen la mayor proporción en el conjunto de datos se obtiene convenientemente de la salida de aggregate:

> aggregate.results[which.max(aggregate.results$x),]
  Group.1 Group.2 Group.3         x
4       1       1       0 0.6071429
whuber
fuente
1
Esta es una gran cantidad de información y me llevará algo de tiempo asimilarla, pero me alegra escuchar que los porcentajes tabulados y las regresiones logísticas esencialmente me darán los mismos resultados. Ejecuté la función de agregado en dos de los predictores y terminó de inmediato ... los resultados para el ajuste logístico se han estado ejecutando durante varios minutos y aún no han terminado. Continuaré modificando las cosas, pero podría terminar usando solo los porcentajes tabulados. ¡Gracias!
Rachel
(+1), me pregunto si los errores estándar en este contexto de la regresión logística se pueden incorporar en los resúmenes de la trama de mosaico gráfico que sugerí. También sospecho que esta podría ser una buena manera de "filtrar" rápidamente los resultados para interacciones interesantes (¡estas son solo mis reflexiones!)
Andy W
"La regresión logística, hasta la imprecisión numérica, dará exactamente los mismos ajustes que los porcentajes tabulados": ¿No está tabulando porcentajes para cada configuración de predictores? En cuyo caso, la regresión logística no puede codificar todas las relaciones posibles.
Neil G
@Neil Seguro que puede codificar todas las "relaciones" (combinaciones de factores): use todas las interacciones posibles. Vea el código R para un ejemplo. Cuando los factores son numerosos, en la práctica habrá muchas combinaciones vacías, pero un software decente no tendrá problemas para lidiar con eso. Un software aún mejor manejará las combinaciones sin variaciones en las respuestas.
whuber
@Andy Me encanta tu respuesta sobre los gráficos: ¡necesitamos encontrar una manera de crear un hilo donde sea exactamente la respuesta correcta! Quizás su pensamiento sobre la incorporación de estimaciones de error en las parcelas de mosaico sería la forma de abordarlo: ¿cómo representaría las estimaciones logísticas, los datos reales y / o el error simultáneamente en ellos?
whuber
6

Para un vistazo rápido a la proporción de respuestas binarias dentro de cada categoría y / o condicional en múltiples categorías, los gráficos pueden ser útiles. En particular, para visualizar simultáneamente proporciones condicionadas en muchas variables independientes categóricas, sugeriría Gráficos de mosaico .

A continuación se muestra un ejemplo tomado de una publicación de blog, Comprensión de gráficos basados ​​en áreas: gráficos de mosaico de los gráficos estadísticos y más blog. Este ejemplo visualiza la proporción de sobrevivientes en el Titanic en azul, condicional a la clase del pasajero. Se puede evaluar simultáneamente la proporción de supervivientes, sin dejar de apreciar el número total de pasajeros dentro de cada uno de los subgrupos (información útil con certeza, especialmente cuando ciertos subgrupos son escasos y esperaríamos una variación más aleatoria).

Parcela de mosaico del Titanic
(fuente: theusrus.de )

Luego, se pueden condicionar las parcelas de mosaico posteriores a múltiples variables independientes categóricas. El siguiente ejemplo de la misma publicación de blog en un resumen visual rápido demuestra que todos los niños pasajeros en la primera y segunda clase sobrevivieron, mientras que en la tercera clase a los niños no les fue tan bien. También muestra claramente que las mujeres adultas tenían una tasa de supervivencia mucho más alta en comparación con los hombres dentro de cada clase, aunque la proporción de mujeres sobrevivientes entre clases disminuyó apreciablemente de la primera a la segunda a la tercera clase (y luego fue relativamente alta nuevamente para la tripulación, aunque una vez más, tenga en cuenta que no existen muchos miembros femeninos de la tripulación, dado lo estrecho que es el listón).

Mosaico condicional en tercera variable
(fuente: theusrus.de )

¡Es sorprendente la cantidad de información que se muestra, esto es proporciones en cuatro dimensiones (clase, adulto / niño, sexo y proporción de sobrevivientes)!

Estoy de acuerdo si está interesado en la predicción o en una explicación más causal en general, querrá recurrir a un modelo más formal. Sin embargo, las gráficas gráficas pueden ser pistas visuales muy rápidas en cuanto a la naturaleza de los datos, y pueden proporcionar otras ideas que a menudo se pierden al estimar simplemente los modelos de regresión (especialmente al considerar las interacciones entre las diferentes variables categóricas).

Andy W
fuente
+1, este es el punto que estaba tratando de hacer en mi comentario anterior sobre si el objetivo era una simple descripción o inferencia. ¡Nota, que el punto es más claro y mejor hecho con figuras!
gung - Restablece a Monica
@gung gracias, ¿qué significa Nb? ¡Siempre digo mejor con las cifras también!
Andy W
2
No hay nada relacionado con las estadísticas, "nb" significa nota bene , que a su vez es latín para 'note well' (literalmente), o 'note that' / 'notice' (más coloquialmente).
gung - Restablece a Monica
3

Dependiendo de sus necesidades, es posible que la partición recursiva proporcione un método fácil de interpretar para predecir una variable de resultado. Para obtener una introducción de R a estos métodos, consulte la página del modelo basado en el árbol de Quick-R . Por lo general, prefiero la ctree()implementación en el paquete `party de R, ya que uno no tiene que preocuparse por la poda, y produce gráficos bonitos por defecto.

Esto entraría en la categoría de algoritmos de selección de características sugeridos en una respuesta anterior, y generalmente da predicciones tan buenas, si no mejores, como la regresión logística.

fmark
fuente
2

205 5

Si tiene menos datos, desea aprender menos parámetros. Puede reducir el número de parámetros suponiendo, por ejemplo, que las configuraciones de predictores individuales tienen efectos consistentes en la variable de respuesta.

Si cree que sus predictores son independientes entre sí, entonces la regresión logística es el algoritmo único que hace lo correcto. (Incluso si no son independientes, aún puede hacerlo bastante bien).

En resumen, la regresión logística supone una influencia independiente de los predictores, lo que reduce la cantidad de parámetros del modelo y genera un modelo fácil de aprender.

Neil G
fuente
1

Deberías mirar los algoritmos de selección de características. Uno que sea adecuado para su caso (clasificación binaria, variables categóricas) es el método de "relevancia mínima de redundancia máxima" (mRMR). Puede probarlo rápidamente en línea en http://penglab.janelia.org/proj/mRMR/

emrea
fuente
¿Es posible ejecutar este programa con más de un predictor categórico? En la página de carga parece que solo la primera columna puede ser la "clase" de datos ... Quizás no entiendo cómo se supone que se formatean los datos.
Rachel
¿O se supone que la "clase" es la variable de salida, en este caso un 0 o 1? Si es así, ¿es importante convertir las variables categóricas en variables ficticias para mostrar indicadores para cada una?
Rachel
Puede tener tantos predictores como desee. La primera fila de su archivo de datos debe ser los nombres de las características, y la primera columna debe ser las clases (variable de respuesta) para las muestras. Entonces, un ejemplo es: response,predictor1,predictor2,predictor3 <line break here> 1,5,4,3 <line break here> 0,5,3,-1 <line break here> 1,1,2,3
emrea
1

Trabajo en el campo de la calificación crediticia, donde lo que aquí se presenta como un caso extraño es la norma.

Usamos la regresión logística y convertimos las variables categóricas y continuas en ponderaciones de evidencia (WOE), que luego se utilizan como predictores en la regresión. Se gasta mucho tiempo agrupando las variables categóricas y discretizando (agrupando / clasificando) las variables continuas.

El peso de la evidencia es un cálculo simple. Es el registro de las probabilidades para la clase, menos el registro de probabilidades para la población:
WOE = ln (Bueno (Clase) / Malo (Clase)) - ln (Bueno (TODO) / Malo (TODO)) Este es el Metodología de transformación estándar para casi todos los modelos de calificación crediticia creados mediante regresión logística. Puede usar los mismos números en un enfoque por partes.

Lo bueno de esto es que siempre sabrá si los coeficientes asignados a cada WOE tienen sentido. Los coeficientes negativos son contrarios a los patrones dentro de los datos, y generalmente resultan de la multicolinealidad; y coeficientes superiores a 1.0 indican sobrecompensación. La mayoría de los coeficientes saldrán en algún lugar entre cero y uno.

Raymond Anderson
fuente
Gracias por una publicación interesante e informativa. Sin embargo, no puedo entender cómo responde a la pregunta en este hilo. ¿Cuál es el "caso extraño" al que te refieres? ¿Quizás pretendió usar esto para responder a otra pregunta en otro lugar?
whuber