Diagrama de temas
-
ESTADÍSTICA APLICADA V - P1078-TEÓRICO-PRACTICO-N0173-05-N01
PRIMER NIVEL
CARLOS JULIO MAYORGA ARIAS
—
CARLOS JULIO MAYORGA ARIAS
—
-
Modelos de clasificación
-
RETO 4: Aplicar diversas técnicas para estimar la bondad de los modelos a fin de comparar ventajas y desventajas de cada uno de ellos
Objetivo: Comparar diversos modelos.
Indicaciones:
- Aplicar métricas derivadas del likelihood:
- Estimadores y deviances
- Aplicar métricas derivadas de cross-validación:
- Delta
- Aplicar ANOVA:
- Análisis del estadístico F
Actividades
- Obtener múltiples métricas como indicadores de la bondad los distintos modelos
- Aplicar técnicas de regresión logística
- Aplicar técnicas de comparación de modelos
-
Introducción
En esta clase, trataremos sobre modelos de clasificación. Hasta el momento, todos los modelos fueron desarrollados con variables de respuesta continuas; sin embargo, los modelos de clasificación son más comunes. Existe una gran cantidad de modelos de clasificación en la ciencia de datos, pero en esta clase, nos centraremos específicamente en modelos de regresión logística. Adicionalmente, en este punto introduciremos algunas pruebas de asociación utilizadas cuando las variables categóricas no son dicotómicas.
Por otro lado, en estos modelos, continuamente se usan variables categóricas, por lo que es importante entender cómo este tipo de variables pueden ser codificadas de tal manera que se pueda obtener un mejor rendimiento del modelo, al permitir codificar variables categóricas como variables numéricas o cuasi numéricas.
Distribución Chi-cuadrado
La distribución ji cuadrado es una familia de distribuciones. Cada distribución se define por los grados de libertad. (Los grados de libertad se comentan en mayor detalle en las páginas sobre la prueba de bondad de ajuste y la prueba de independencia). En la siguiente figura se muestran tres distribuciones ji cuadrado diferentes, con distintos grados de libertad.
Prueba de Chi cuadrado
La prueba Chi-cuadrado es una prueba de hipótesis utilizada para determinar si existe una relación entre dos variables categóricas. La prueba Chi-cuadrado comprueba si las frecuencias que se dan en la muestra difieren significativamente de las frecuencias que cabría esperar. Así, se comparan las frecuencias observadas con las esperadas y se examinan sus desviaciones.
-
Modelos de clasificación13.1 Modelos logístico
Cuando hablamos de modelos cuya variable de respuesta es discreta o categórica, nos referimos a modelos de clasificación. Si la variable de respuesta solo puede tomar dos valores (verdadero/falso o 0/1), nos referimos a ellos como modelos binomiales; por el contrario, si puede tomar un conjunto de valores, nos referimos a ellos como modelos multinomiales. En la presente clase veremos modelos logísticos binomiales.
13.2 Medición de odds y odds-ratioLa regresión logística es un modelo que se utiliza para determinar la probabilidad de que ocurra un evento. Estos modelos muestran la relación entre variables y luego calculan la probabilidad de un resultado determinado. Para la creación de este tipo de modelos, recurrimos a la función glm().
Hasta ahora, hemos utilizado la función lm() para generar modelos que tienen determinados supuestos, por ejemplo, la distribución debe ser gaussiana o normal, y su varianza debe ser homocedástica. Pero no todos los problemas cumplen con estos supuestos. ¿Qué pasa si los datos reflejan una distribución binomial o de Poisson? Para esto, introduciremos la función glm.
Aprende más
Para conocer más sobre Modelos lineales generalizados, puedes leer el siguiente artículo ¡Accede aquí!
Los modelos GLM son una generalización de los modelos lineales vistos, que permiten crear modelos en los cuales algunas condiciones puedan ser especificadas. Una de estas condiciones, supone que cada resultado Y de las variables de respuesta se genera a partir de una distribución particular en la familia exponencial, esta incluye la distribución normal, binomial, Poisson y gamma, entre otras.
Los modelos glm tiene 3 componentes:
Componente aleatorio: Especifica la distribución de probabilidad de la variable de respuesta. Específicamente, para una distribución dada (normal, binomial, etc.), estiman su media y varianza. No hay un término de error separado (ε) como en la regresión lineal.
Componente Sistemático: Especifica las variables explicativas del modelo y su combinación lineal. Esto es similar a la regresión lineal.
Función de enlace: Indica cómo el valor esperado de la respuesta se relaciona con la combinación lineal de variables predictoras. Glm NO asume una relación lineal entre la variable de respuesta y las variables predictoras (como lm), pero sí asume una relación lineal entre la respuesta esperada transformada en términos de la función de enlace y las variables explicativas.Específicamente, para regresión logística utilizaremos la familia binomial (family=binomial(link = "logit"))
Note que la distribución está dada por distintas “familias” y entre paréntesis aparece la función “link”, que indica justamente la función de enlace que se usará en el proceso.
La familia de binomial dispone de varias funciones de enlace que permiten el comportamiento requerido. La siguiente tabla presenta el nombre de la función y su fórmula de cálculo.
Tabla 1: Funciones de enlace para regresión logística
Creación del autor Alfonso PradoTabla 1: Funciones de enlace para regresión logística
Creación del autor Alfonso Prado
Las funciones de enlace tienen distintas características, como se evidencia en la siguiente figura.
Figura 1: Características de funciones de enlace
Creación del autor Alfonso PradoFigura 1: Características de funciones de enlace
Creación del autor Alfonso Prado
Por defecto, en el caso de distribución binomial, la función es “logit”, que, como vemos en la tabla 1, se basa en el concepto de Odds.
La siguiente figura explica el concepto de la función de enlace. Para un cierto rango de valores de la variable predictora X, se desea que la respuesta Y sea 0. Sin embargo, cuando X sube de cierto valor, se espera que Y sea 1.
Figura 2: Relación entre X y Y en un modelo logístico
Creación del autor Alfonso PradoFigura 2: Relación entre X y Y en un modelo logístico
Creación del autor Alfonso Prado
13.3 Prueba Chi-cuadrado de independenciaEl análisis de datos categóricos se basa típicamente en tablas de contingencia de dos o más dimensiones, tabulando la frecuencia de ocurrencia de niveles de datos nominales y/o ordinales. Una tabla de contingencia es una herramienta utilizada para crear al menos dos filas y dos columnas que representan datos categóricos en términos de conteos de frecuencia. La tabla permite medir la interacción entre dos variables para conocer una serie de información “oculta” de gran utilidad y comprender con mayor claridad los resultados de una investigación.
Por ejemplo, tenemos un dataset que presenta la ocurrencia de una enfermedad (variable mf), desglosada por otras variables como área, rango de edad, sexo, y queremos entender cómo se distribuye la variable mf de acuerdo con el área (o cualquier otra variable categórica).
Figura 3: Dataset (a)
Creación del autor Alfonso PradoFigura 3: Dataset (a)
Creación del autor Alfonso Prado
Figura 3: Tabla de contingencia (b)
Creación del autor Alfonso PradoFigura 3: Tabla de contingencia (b)
Creación del autor Alfonso Prado
En principio, la tabla de contingencia toma el nombre de las filas y columnas de las variables que analiza. Sin embargo, se acostumbra a crear la tabla con nombres genéricos como Exposure y Outcome, donde las filas (Exp+ y Exp-) indican haber estado sujeto a un “tratamiento” y las columnas (Out+, Out-) haber desarrollado un efecto o no. Debemos tomar en cuenta que la cantidad de observaciones de un valor nominal no va a ser necesariamente la misma de otro valor. Por ejemplo, la cantidad de encuestados hombres (Male) no es igual a las mujeres (Female), por lo tanto, la tabla debe ser procesada a fin de encontrar el valor del odds. El Odds nos indica la probabilidad entre Exposure y Outcome. Ejemplo: En la tabla siguiente odds de los expuestos=140/84, odds de no expuestos=139/92.
Tabla 2: Odds y Odds Ratio
Creación del autor Alfonso PradoTabla 2: Odds y Odds Ratio
Creación del autor Alfonso Prado
Sin embargo, los odds de cada grupo no son suficientes para obtener una idea de si la variable es significativa. Esto se debe a que, del total de expuestos, no todos desarrollaron un resultado positivo. Lo mismo se puede decir a la inversa de los no expuestos. Por lo tanto, para comparar los dos grupos (expuestos y no expuestos), dividiremos los valores de cada grupo y esto se denomina el odds ratio o OR. Del ejemplo, esto sería igual a 1.67/1.51 =1.1
¿Cómo interpretar el odds-ratio? La razón de probabilidades nos dice cuánto más altas son las probabilidades de exposición entre los casos de una salida positiva que entre los casos de una salida negativa. Mientras mayor sea la razón de los odds (OR), mayor será la probabilidad de que los eventos se asocien positivamente. Si la razón de probabilidades es menor que 1, los eventos se asocian negativamente. Si es cercana a 1, no hay influencia. Podemos entender esto como una correlación entre variables nominales. Note que se divide la probabilidad de que se presente el evento para la probabilidad de que no se presente, cuyo logaritmo es utilizado por la función logit (Ver tabla 1)
Figura 4: Odds ratio como relación de probabilidad
Creación del autor Alfonso PradoFigura 4: Odds ratio como relación de probabilidad
Creación del autor Alfonso Prado
Veamos un ejemplo:
Se trata de un dataset de una empresa que emplea, en un momento dado, a unos 4000 empleados. Sin embargo, cada año, alrededor del 15% de sus empleados abandona la empresa y necesitan ser reemplazados. Esto ocasiona una serie de problemas a la empresa, por lo que se recurre a un modelo logístico que ayuda a predecir la deserción de los empleados. Dentro de las variables predictoras, tenemos el género y la respuesta es attrition. ¿Cuál es la relación entre género y attrition?
#Obtenemos la tabla de contingencia table(data$Gender, data$Attrition)
Nombre_de_la_figura Nombre_de_la_figura
Procesamos la tabla de contingencia epi.2by2(table(data$Gender, data$Attrition))
Nombre_de_la_figura Nombre_de_la_figura
El análisis nos indica que los empleados varones tienen un 11% más de probabilidades que renunciar.
El proceso de tablas de contingencia visto anteriormente funciona bien para variables dicotómicas. Pero ¿qué pasa si tenemos más de dos niveles de la variable? Por ejemplo, del mismo dataset mencionado anteriormente, existen variables como Marital Status (estado civil), que tiene tres niveles (casado(a), divorciado(a), soltero(a)). En este caso, la función 2by2 no funciona, por lo que debemos recurrir a otra prueba de independencia conocida como o Ji-cuadrado.
Tabla 3: Tabla de contingencia MaritalStatus – Attrition
Creación del autor Alfonso PradoTabla 3: Tabla de contingencia MaritalStatus – Attrition
Creación del autor Alfonso Prado
En estos casos, necesitamos realizar los siguientes pasos:
- a. Mostrar que existe una relación para lo cual usaremos la prueba de independencia Xi2 (se pronuncia chi-cuadrado).
- b. La prueba Xi2 (al igual que otras pruebas) consiste en 2 partes, obtener un estadístico y compararlo con su distribución. En este caso, la distribución es Chi cuadrado, y los grados de libertad se calcula como (filas -1)*(columnas -1) de la tabla de contingencia
- c. Validar en forma gráfica mediante diagramas de mosaicos
- d. Digitalizar o codificar la variable
De acuerdo con Ramírez-Alan ,(2016) “El test Xi2 considera la hipótesis nula (H0) de que las variables son independientes. Si esto es verdad, la frecuencia de ocurrencia debería estar dada por la cantidad de casos totales multiplicada por la probabilidad esperada.” En el ejemplo anterior, si la probabilidad de renunciar es igual para los 3 niveles (πij = 33%) entonces, si se han detectado 1000 renuncias, estas deberían estar distribuidas en las 3 categorías (n*πij =1000*.33). Este valor conocido como µij .
Figura 5: Frecuencia esperada
Creación del autor Alfonso PradoFigura 5: Frecuencia esperada
Creación del autor Alfonso Prado
Pero si Ha está en lo correcto va a existir una diferencia entre frecuencia observada (ηij) y la esperada (μij), lo que indicaría que existe algún fenómeno subyacente que influye en la frecuencia observada.
La prueba χ² (
chisq.test) calcula esta diferencia de la siguiente forma:
Figura 6: Fórmula de Xi2
Creación del autor Alfonso PradoFigura 6: Fórmula de Xi2
Creación del autor Alfonso Prado
Mientras mayor sea este indicador, mayor las probabilidades de que las variables estén relacionadas, por el contrario, el numerador tiende a 0 .
La prueba retorna un p-value que debe ser contrastado contra un χ²-crítico, obtenido en base a la función
qchisq.La siguiente figura explica las zonas de aceptación y rechazo de la asociación entre variables.
Figura 7: Zonas de aceptación y rechazo de la prueba Xi2
Creación del autor Alfonso PradoContinuando con el ejemploFigura 7: Zonas de aceptación y rechazo de la prueba Xi2
Creación del autor Alfonso Prado
#Obtenemos la tabla de contingencia de MaritalStatus tab <- table(data$MaritalStatus, table(data$Attrition)
MaritalStatus MaritalStatus
#Ejecutamos la prueba Chi2 chisq.test(tab)
prueba Chi2 prueba Chi2
#calculando chi-crítico chi_critico <- qchisq(.05, df=2, lower.tail=FALSE) chi_critico
Nombre_de_la_figura Nombre_de_la_figura
Al obtener un estadístico chi2 de 130 con un chi-critico de 5.99, concluimos que existen diferencias sustanciales, lo que indica que la variable es significativa
Validación GráficaUna forma alternativa de validar la significancia de las variables categóricas (factores) con múltiples niveles es mediante un diagrama de mosaico. En estos diagramas, el área es directamente proporcional a la frecuencia de ocurrencia en la tabla, y debemos interpretarla de la siguiente manera: si obtenemos un diagrama muy “regular”, se indicaría que las dos variables no están relacionadas. La palabra “regular” debemos entenderla como que las proporciones se mantienen constantes. Por otro lado, si el diagrama es irregular, indicaría que algún factor subyacente está afectando la relación con la variable predictora y, por lo tanto, esta variable puede ser significativa para un modelo logístico.
Los siguientes diagramas de mosaico visualizan la relación entre dos variables. La figura 7a muestra independencia cuando el diagrama es regular; en cambio, figura 7b ) muestra un diagrama irregular, que demuestra que hay una relación.
Figura 8: Diagramas de mosaico para mostrar relacionamiento, variable no significativa (a)
Creación del autor: Alfonso PradoFigura 8: Diagramas de mosaico para mostrar relacionamiento, variable no significativa (a)
Creación del autor: Alfonso Prado
Figura 8: Diagramas de mosaico para mostrar relacionamiento, variable significativa (b)
Creación del autor: Alfonso PradoCodificación de variables categóricas (parte I)Figura 8: Diagramas de mosaico para mostrar relacionamiento, variable significativa (b)
Creación del autor: Alfonso Prado
Un modelo logístico puede incluir tanto variables continuas como categóricas o nominales. De hecho, tanto glm como lm en R implementan por defecto algún tipo de codificación para variables nominales, pero en otros lenguajes, el analista debe preparar los datos con la codificación adecuada para su uso.
Codificación por etiquetasAprende más
Para conocer más sobre Codificación de variables, puedes leer el siguiente artículo ¡Accede aquí!
La codificación por etiquetas es una conversión numérica pura de los niveles de una variable categórica". Si una variable categórica es un factor y tiene niveles establecidos, entonces la conversión numérica será el orden de los niveles. Sin embargo, hay que tener cuidado con la codificación por etiquetas en variables no ordenadas, ya que la mayoría de los modelos las tratarán como variables numéricas ordinales. Si una variable categórica está ordenada de forma natural, entonces esta codificación es una elección adecuada. En la siguiente figura, el valor de la codificación aparece entre corchetes.
Figura 9: Variable no apta para codificación por etiquetado(a)
Creación del autor Alfonso PradoFigura 9: Variable no apta para codificación por etiquetado(a)
Creación del autor Alfonso Prado
Figura 9: variable apta para codificación por etiquetado(b)
Creación del autor Alfonso PradoCodificación por One Hot para variables categóricas nominalesFigura 9: variable apta para codificación por etiquetado(b)
Creación del autor Alfonso Prado
Esta codificación, es también conocida como variables “dummy” implementado en el paquete R caret. En primer lugar, a partir de una variable categórica X (que debe ser del tipo factor) con p niveles, se crean p variables nuevas y cada una de estas nuevas se asocia de forma individual a un elemento del conjunto Xi.
En segundo lugar, todas las variables nuevas toman el valor de 0, excepto aquella que representa el valor original del registro sin modificar, que tomará el valor 1. Siguiendo con nuestro dataset de ejemplo, consideramos la variable “Department”
Tabla 4: Codificación one-hot para variable categórica “Department”
Creación del autor Alfonso Prado> Tabla 4: Codificación one-hot para variable categórica “Department”
Creación del autor Alfonso Prado
Codificación por One Cold para variables categóricas
Muy similar al anterior. La diferencia reside en que actúa de forma inversa: todas las variables son 1, excepto la asociada al valor que toma la variable categórica en cada observación. El vector de codificación contiene las nuevas variables cuyos valores son todos 1, excepto aquel cuyo valor coincide con la variable original.
Codificación por Rank-Hot para variables ordinales
Hay casos en los que queremos indicarle al modelo que cierta etiqueta es mejor que otra etiqueta. Por ejemplo, en el dataset del ejemplo la variable Education (nivel de educación), en este caso utilizar One-Hot no es ideal ya que esto elimina la estructura de clasificación presente en los datos. Necesitamos una forma de transmitir la importancia, en este caso se pretende indicar que el nivel educación es de al menos x .
Tabla 5:Etiquetado por grado
Creación del autor Alfonso PradoVeamos el modelo completoTabla 5:Etiquetado por grado
Creación del autor Alfonso Prado
require(caret) levels(data$MaritalStatus)
Nombre_de_la_figura Nombre_de_la_figura
dv <- dummyVars(~MaritalStatus, data=data) trsf <- data.frame(predict(dv, newdata = data)) data_dv <- cbind(data, trsf) #Creamos el modelo glm(Attrition ~ MaritalStatus.Divorced + MaritalStatus.Single + MaritalStatus.Married, data=data_dv, family=binomial(link="logit"))
Nombre_de_la_figura Nombre_de_la_figura
-
-
Actividades
-
Hacer un envío
-
Hacer intentos: 1
-
Métricas para medir bondad de modelos de clasificación
-
Introducción
En la presente clase revisaremos las distintas métricas que sirven para evaluar los modelos logísticos. Como veremos, existen varias métricas, y su uso y aplicabilidad dependerán de algunos factores y del propósito general de clasificación.
Un tema de particular importancia será el tratamiento de la data cuando las clases se hallan desbalanceadas, explicaremos los resultados de la métrica cuando esto ocurre, así como los mecanismos para compensar el desbalanceo.
Odds y log Odds
Las probabilidades (técnicamente, las probabilidades de éxito) se definen como la probabilidad de éxito/probabilidad de fracaso. Por lo tanto, la probabilidad de éxito (80 % de probabilidad de lluvia) tiene una probabilidad de fracaso (20 % de probabilidad de que no llueva); como ecuación (la "razón de probabilidades"), es 0,8/0,2 = 4.
Imputación
La imputación de datos es una técnica estadística que se utiliza para reemplazar valores faltantes o nulos en un conjunto de datos. En el análisis de datos y la ciencia de datos, el manejo de los datos faltantes es crucial, ya que pueden afectar significativamente los resultados de cualquier análisis. La imputación de datos tiene como objetivo proporcionar un conjunto de datos más completo, lo que permite un modelado y un análisis más precisos. Existen varios métodos para la imputación de datos, cada uno con sus fortalezas y debilidades, según la naturaleza de los datos y el contexto del análisis.
-
14 Métricas para medir bondad de modelos de clasificación14.1 Matriz de confusión
Antes de entrar en el análisis de las métricas para evaluar la bondad de los modelos es importante saber interpretar los coeficientes de las variables en este tipo de modelos.
Un tópico que llama la atención en regresiones logísticas es interpretar los coeficientes del modelo de regresión, debido a que están en la escala . Debemos tener cuidado de convertirlos antes de interpretar los términos de las variables originales, recordando la definición de logit.
Figura 1: Fórmula de logit
Creación del autor Alfonso PradoFigura 1: Fórmula de logit
Creación del autor Alfonso Prado
Entonces la función exp(β0) representa las probabilidades de que la característica de éxito esté presente para un individuo x=0, es decir en la línea de base. Si hay múltiples predictores involucrados, todos deberían establecerse en 0 para esta interpretación.
La función exp(βi) representa el aumento multiplicativo en las probabilidades de éxito por cada aumento de 1 unidad en x. Si βi > 0 indica que es una relación positiva, si es negativo entonces el incremento de X decrementa la posibilidad de que se presente el evento.
Por ejemplo, de acuerdo con el modelo creado en la clase anterior el coeficiente de la variable “MaritalStatus.Single ” es 0.8421 , y su exp(0.8421) es 2.32. Esto debe interpretarse de la siguiente forma: Por cada unidad que aumenta la variable MaritalStatus.Single el odds (no el OR) de que se presente la renuncia aumenta en 2.32.
Figura 2: Modelo creado en la clase anterior
Creación de autor Alfonso PradoFigura 2: Modelo creado en la clase anterior
Creación de autor Alfonso Prado
14.2 Curvas Características de la SeparabilidadEs importante mencionar que, para optimizar el rendimiento de cualquier modelo, deben primero realizarse actividades de limpieza de datos y preprocesamiento, lo que incluye la gestión de datos atípicos, transformaciones, normalización, entre otros.
Luego nos preguntamos ¿cómo podemos medir la efectividad de nuestro modelo en términos de eficiencia, rendimiento y precisión? Ahí entra la
matriz Confusión.
De acuerdo con Hilbe (2015), esta matriz es la medida del rendimiento para la clasificación y es ampliamente utilizada en el aprendizaje automático(ML). La matriz de confusión es un tipo especial de tabla de contingencia, con dos dimensiones ("real" y "predicha") y conjuntos idénticos de "clases" en ambas dimensiones (cada combinación de dimensión y clase es una variable en la tabla de confusión). El nombre proviene del hecho de que facilita ver si el sistema está confundiendo dos clases (es decir, etiquetando erróneamente una como otra). Generalmente, las tablas contienen la predicción en las filas y los valores actuales (observaciones) en las columnas, aunque hay autores que lo colocan al revés.
Figura 3: Matriz de Confusión
Creación del autor: Alfonso PradoFigura 3: Matriz de Confusión
Creación del autor: Alfonso Prado
En la tabla vamos a identificar entonces 4 valores:
- • Verdaderos positivos: Identificados como TP predicción positiva y, en realidad, es positivo.
- • Falsos positivos: Identificados como FP predicción positiva y, en realidad, es negativo.
- • Falsos negativos: Identificados como FN predicción negativa y, en realidad, es positivo.
- • Verdaderos negativos: Identificados como TN predicción negativo y, en realidad, es negativo.
Basados en la matriz de confusión, podemos establecer algunos indicadores de la eficiencia del modelo:
Accuracy: Simplemente mide con qué frecuencia el clasificador hace la predicción correcta. Es la relación entre el número de predicciones correctas y el número total de predicciones, se utiliza cuando los verdaderos positivos y los verdaderos negativos son más importantes.
Sensibilidad: Calculada como el número de predicciones positivas correctas dividido por el número total de positivos reales (observaciones). Algunos autores la denominan recuperación (REC) o tasa de verdaderos positivos (TPR).
Especificidad: Calculada como el número de predicciones negativas correctas dividido por el número total de negativos. Algunos autores la denominan tasa negativa verdadera (TNR).
Tasa de Falsos Positivos (FPR): Se define como la relación entre falsos positivos y la suma de falsos positivos más verdaderos negativos. Es el inverso de la especificidad (1-especificidad).
Precisión: Representa la proporción de casos positivos que se predicen correctamente dividido para el total de casos positivos que se predicen. La diferencia entre sensibilidad y precisión radica en que la sensibilidad se calcula en base a los casos reales (observaciones) que son positivos, mientras que la precisión se calcula en base a las predicciones positivas.
Tabla 1: Fórmulas de las métricas derivadas de la tabla de confusión
Creación del autor Alfonso PradoTabla 1: Fórmulas de las métricas derivadas de la tabla de confusión
Creación del autor Alfonso Prado
La pregunta que nos hacemos es: ¿Cuál de las métricas deberíamos utilizar? Todos los indicadores anteriores sirven para verificar una parte del modelo; por ejemplo, qué tan bien se predicen los TP o TN, y funcionan bien cuando los datos están balanceados. Se considera que los datos están balanceados cuando la cantidad de casos de cada clase es similar, y desbalanceados cuando existen diferencias significativas.
Veamos un ejemplo: Asuma que tenemos 1000 casos positivos de los cuales el 90% son predichos correctamente y 10% incorrectamente. Asuma que tenemos 50 casos negativos de los cuales podemos predecir correctamente el 50%. De la Tabla 2 obtenemos: TPR=900/925 =0.97 =97% y TNR=25/125=0.2 =20% . Notamos que TPR está sobreestimado y TNR esta subestimado, este es el efecto que se obtiene cuando la data no está balanceada.
En estos casos, debemos recurrir a la métrica llamada F1 o a las curvas características de separabilidad, que resumen de mejor manera la eficiencia del modelo.
Figura 4: Fórmula de la métrica F1
Creación del autor Alfonso PradoFigura 4: Fórmula de la métrica F1
Creación del autor Alfonso Prado
Otras alternativas posibles en caso de data desbalanceada consisten en previamente balancear la misma en forma manual, para luego entrenar el modelo. Existen dos técnicas para balancear conocidas como: Undersampling y Oversampling:
- a. El “Under-sampling” (submuestreo) funciona reduciendo el tamaño de la clase mayoritaria para que coincida con la clase menos prevalente.
- b. El “over-sampling” (sobre muestreo) se utiliza para aumentar el tamaño de muestras minoritarias. La técnica conocida como SMOTE (Synthetic Minory Over-sampling Technique) ofrece esta posibilidad en el paquete caret.
La siguiente figura explica el concepto
Figura 5: Sobre muestreo (a)
Creación del autor Alfonso Prado
Figura 5: Muestreo (a) y Submuestreo (b)
Creación del autor Alfonso PradoFigura 5: Submuestreo (b)
Creación del autor Alfonso Prado
La implementación del submuestreo es relativamente fácil; implica eliminar una cierta cantidad de observaciones. Pero en sobremuestreo se podría pensar en duplicar las observaciones de dicha clase, lo cual equilibrará la distribución de clases; sin embargo, esto no mejorará el rendimiento del modelo, ya que no le proporciona información adicional.
SMOTE.- Esta técnica selecciona los ejemplos minoritarios que están cerca en el espacio de características. En ML las “características” son sinónimo de variables; por lo tanto, el espacio de características es el espacio de valores de dicha variable. Dentro de este espacio, SMOTE crea una nueva muestra en algún lugar y le asigna el valor del vecino más cercano utilizando el algoritmo de KNN (K Nearest Neighbors). En otras palabras, el algoritmo crea un ejemplo aleatorio cuya clase se fija de acuerdo con el K vecino más cercano. Esta observación “sintética” se crea entre dos ejemplos en el espacio de características.
El uso de SMOTE tiene una desventaja, ya que no considera la clase mayoritaria al crear ejemplos sintéticos. En otras palabras, el algoritmo funciona bien cuando las clases están bien separadas; esto puede causar problemas cuando hay una superposición entre las clases.
Aprende más
Para conocer más sobre SMOTE, puedes leer el siguiente artículo ¡Accede aquí!
Veamos un ejemplo de implementación de SMOTE
#Validamos si la data esta balanceada
prop.table(table(data$Attrition))
Nombre_de_la_figura Nombre_de_la_figura
#Obviamente no está balanceada #En este caso utilizaremos la función downSample cuya sintaxis es: #downSample(x, y, list = FALSE, yname = "Class") #x=lista de variables predictoras #y=variable de clases , en este caso Attrition #list=FLASE indica que es un dataframe #yname= nombre de la etiqueta de clase set.seed(100) dataBalanceada <- caret::downSample(x=data %>% select(-Attrition) , y=data$Attrition, yname="Attrition") prop.table(table(dataBalanceada$Attrition))
#Ahora deberíamos repetir la creación y análisis de la matriz de confusión para asegurar que sensibilidad y especificidad están correctos
En última instancia, la mejor métrica es la que le conviene al negocio. Por ejemplo, suponga que obtenemos una sensibilidad=0,35 y la especifidad=0,90. Por tanto, este modelo mucho más específico que sensible. Esta es la situación que nos interesa cuando nuestro objetivo es evitar a toda costa los falsos positivos, que sería el caso en el cual, como conclusión del estudio, una empresa estuviera injustamente penalizando a un cliente.
Por el contrario, si los falsos positivos no nos preocupan tanto y lo que queremos evitar son los falsos negativos, nos interesa una mayor sensibilidad o recall.
Por ejemplo, no nos importa un falso positivo en una prueba de diabetes, ya que la prueba se repetirá sin duda. Sin embargo, no nos interesa que una persona diabética no diagnosticada no acceda rápidamente al tratamiento adecuado debido a un falso negativo.
Pero en la práctica, los modelos nunca son perfectos. Para ayudarnos a visualizar la bondad de los modelos recurrimos a la visualización mediante diagramas que permiten comparar dos métricas simultáneamente. Estas curvas permiten visualizar la separabilidad entre clases. Idealmente, se desea que las observaciones positivas sean predichas como positivas y lo mismo con las negativas.
Curva ROCUna curva ROC es un gráfico que muestra el rendimiento de un modelo de clasificación en todos los umbrales de clasificación. Esta curva usa dos métricas en sus ejes: la tasa de verdaderos positivos TPR (sensibilidad) y la tasa de falsos positivos FPR (1-especificidad).
En principio deseamos que la sensibilidad sea lo más grande posible, mientras el FPR sea lo más bajo posible. La gráfica resultante sería la figura 6(a).
En la medida que el modelo empieza a perder su capacidad de discriminar entre clases positivas y negativas, la curva empieza a acercarse a una diagonal.
Cuando llega a ser una diagonal es la peor situación, porque indica que el modelo no puede discriminar entre clases y, por lo tanto, no es utilizable.
Cuando la tasa de falsos positivos llega a ser igual a 1, el modelo en realidad está invirtiendo las clases. Significaría que el modelo predice una clase negativa como una clase positiva y viceversa, en cuyo caso la curva ROC se verá como en la figura 7(c). Dado que TPR y FPR tienen un valor máximo de 1, el área bajo la curva tendrá un valor de 1.
De acuerdo con Hilbe (2015), “Los valores de 0,5 a 0,65 tienen un poder predictivo bajo. Los valores de 0,65 a 0,80 tienen un valor predictivo moderado. Muchos modelos logísticos se ajustan a este rango. Los valores superiores a 0,8 e inferiores a 0,9 generalmente se consideran de alto poder predictivo”.
La curva se crea basado en un umbral del valor de la variable; para cada umbral escogido se calculan las dos métricas mencionadas y se grafican los puntos, que luego se unen por medio de una curva, dando como resultado la figura siguiente.
Figura 6: Casos extremos de la curva ROC -Modelo ideal(a)-
Creación del autor Alfonso PradoFigura 6: Casos extremos de la curva ROC -Modelo ideal(a)-
Creación del autor Alfonso Prado
Figura 6: Casos extremos de la curva ROC -Modelo sin capacidad de discriminación(b)-
Creación del autor Alfonso PradoFigura 6: Casos extremos de la curva ROC -Modelo sin capacidad de discriminación(b)-
Creación del autor Alfonso Prado
Figura 6: Casos extremos de la curva ROC -Modelo confunde las clases(c)-
Creación del autor Alfonso PradoFigura 6: Casos extremos de la curva ROC -Modelo confunde las clases(c)-
Creación del autor Alfonso Prado
Figura 7: Curva ROC de un modelo real
Creación del autor Alfonso PradoFigura 7: Curva ROC de un modelo real
Creación del autor Alfonso Prado
A fin de obtener una métrica objetiva se estila calcular el área bajo la curva. De esta manera, pequeñas diferencias entre curvas de distintos modelos son fáciles de notar y comparar. Un modelo excelente tiene AUC cerca de 1, lo que significa que tiene una buena medida de separabilidad entre las clases. Un modelo pobre tiene un AUC cercano a 0.5, lo que significa que tiene la peor medida de separabilidad; esto es, no puede distinguir entre una clase y otra, y no es mejor que clasificar al azar. Medidas menores a 0.5 indicarían que los casos positivos se predicen como negativos y viceversa.
Curva PR sensibilidad vs precisiónLa curva PR es la gráfica resultante de relacionar la precisión y la sensibilidad (REC o TPR) de un modelo. Nos permite ver a partir de qué valor de sensibilidad obtenemos una degradación de la precisión.
Note que en realidad lo que está comparando es FP y FN, es decir, la diagonal secundaria. En un modelo perfecto sería aquel que pasa por el punto (1,1); por tanto, cuanto más se acerque a esa esquina superior derecha mejor es el comportamiento del modelo. Al igual que con la curva ROC, también se puede calcular el área bajo la curva.
Es preferible usar esta curva en vez de la curva ROC en casos en los que exista un desbalanceo en las clases, ya que la curva ROC puede dar una visión optimista del modelo debido a la dependencia de los falsos negativos que, en conjuntos con clases desbalanceadas, aumentará.
Figura 8:Curva precisión-sensibilidad
Creación del autor Alfonso PradoFigura 8:Curva precisión-sensibilidad
Creación del autor Alfonso Prado
Cuándo usar cada curva :
La curva ROC es Ideal para conjuntos de datos equilibrados donde las clases positivas y negativas tienen la misma importancia. Es útil cuando el objetivo es encontrar el equilibrio óptimo entre sensibilidad y especificidad.
La Curva de precisión-sensibilidad es más informativa para conjuntos de datos desequilibrados donde la clase positiva es poco frecuente o más importante. Es útil cuando el objetivo es maximizar la precisión de las predicciones positivas.
Las curvas ROC consideran tanto las clases positivas como las negativas, mientras que las curvas de precisión-sensibilidad se centran en la clase positiva y son más útiles en caso de data desbalanceada.
Mejores prácticas en la creación de modelos logísticosA continuación, presentamos un conjunto de mejores prácticas que puede ayudar a mejorar el rendimiento de un modelo:
- a. En la selección de variables elimine primero variables que no demuestran correlación o aquellas numéricas que tengan varianza 0 o cercana a 0.
- b. Si existen variables con NAs proceda con las que considere necesarias; sin embargo, tome en cuenta que las imputaciones podrían cambiar completamente la forma de los datos
- c. Para variables continuas que no presenten una buena distribución normal se puede utilizar una transformación logarítmica. Esto ayudará a que los datos no estén tan dispersos. Sin embargo, note que la transformación debe realizarse antes de cualquier operación de normalización, ya que esto podría llenar el dataset de NAs para los valores 0 o negativos. En este caso deberá utilizar Yeo-Johnson.
Aprende más
Para conocer más sobre Normalización Yeo-Johnsson, puedes leer el siguiente artículo ¡Accede aquí!
-
d. Estandarice los datos y luego aplique one-hot. One-Hot da como resultado que los datos estén más dispersos, lo cual muchos algoritmos pueden usar de manera eficiente. Si estandariza los datos primero, creará datos densos con los cuales los algoritmos se ejecutarán de manera menos eficiente.
- e. Lo mismo ocurre con la agrupación de categorías; primero haga los agregados y luego codifique con one-hot.
-
-
Actividades
-
Hacer un envío
-
Hacer intentos: 1
-