Forum

Avisos
Vaciar todo

Cómo elegir buenas variables categóricas  

  RSS

img-perfil
(@taa-admin)
Admin
Registrado: hace 3 años
Respuestas: 34
16/09/2021 4:29 pm  

Introducción

En el anterior artículo (clickea aquí por si no lo leíste, ya que mencionaremos conceptos explicados en ese artículo) explicamos la importancia de elegir buenas variables al momento de armar un modelo predictivo. Básicamente no importa que tan sofisticado sea el modelo que utilizamos si no lo alimentamos con buenos datos. Y una buena manera de distinguir buenos datos es calculando el coeficiente de correlación (o más precisamente, pidiéndole a python que lo calcule por nosotros). Por más de que el coeficiente de correlación sea muy útil, tiene limitaciones. Una de estas limitaciones es que no sirve para datos categóricos, por lo que es necesario recurrir a ciertas alternativas para trabajar con este tipo de datos.

En este artículo utilizaremos código de la librería Dython para Python, creada por  Shaked Zychlinski. Si quieres instarla (muy recomendable), en esta página de github se explica como. Este artículo explica varios conceptos de forma simplificada al estar pensado para principiantes. Si quieres explorar estos conceptos de forma más detallada y explicados por el mismo Shaked Zychlinski puedes clickear aquí. Además de eso, es importante destacar que explicamos el funcionamiento de distintas técnicas estadísticas sin adentrarnos en los conceptos matemáticos detrás de las mismas.

Diferencias entre datos numéricos continuos y categóricos

En el área del Machine Learning es muy común dividir todos los datos en dos categorías: datos numéricos y datos categóricos. Los datos numéricos son todos aquellos que puedan ser representados con números, mientras que los datos categóricos son todos aquellos que no pueden ser representados numéricamente. Por ejemplo, en un dataset que tenga datos sobre personas puedo tener las siguientes variables numéricas: fecha de nacimiento, peso, altura, salario. Mientras que por otro lado puedo tener ciertas variables categóricas como: sexo, color de ojos, nacionalidad, ocupación, estado civil, etc. 

Los datos categóricos no tienen un orden matemático. Volviendo al ejemplo del dataset de personas, podemos ordenar el mismo de menor a mayor en relación a la edad de cada individuo. Sabemos que en ese caso una persona con 18 años aparecería antes en el dataset que una de 45. Pero si intentamos ordenar de menor a mayor en función de su color de ojos…¿Cuál iría primero? Los colores no tienen un valor matemático inherente que podamos usar para ordenarlos, es por este motivo que la gran herramienta de la correlación no es muy útil en estos casos. 

Una de las primeras ideas que puede surgir para intentar solucionar este problema podría ser reemplazar cada valor con un número. Podemos intentar entonces que cada color de ojos se corresponda con el número ¿Que podría salir mal?

Supongamos entonces que le asignamos un número a cada color como muestra la tabla.

Color de ojos

Valor numerico

marrón

1

azul

2

verde

3

gris

4

Tal vez no sea tan obvio a simple vista, pero de acuerdo a nuestra tabla el promedio entre marrón y verde es ahora igual a azul... Esto claramente es un problema, no solo porque no tiene sentido promediar colores, sino por el sencillo hecho de que si la tabla estuviera ordenada de otra manera el resultado de ese promedio podría ser completamente diferente. 

La moraleja de este ejemplo entonces es: los datos categóricos son diferentes a los datos numéricos, por lo que deberíamos tratarlos de forma diferente.

 

Asociación entre variables categóricas

Supongamos que tenemos dos variables categóricas y queremos saber si tienen alguna relación entre sí. Sabemos que no podemos calcular su coeficiente de correlación, por lo que sería incorrecto decir que estamos intentando medir su “correlación”. Diremos entonces que queremos medir de alguna forma su “asociación”. 

Para este propósito existen herramientas como la V de Cramer y la U de Theil. Esta última (también conocida como coeficiente de incertidumbre) es la más apropiada para nuestro caso. 

 

Veamos entonces cómo funciona el coeficiente de incertidumbre. Supongamos que tenemos una variable X y una variable Y. Para obtener el valor del coeficiente se sigue el siguiente razonamiento: dado un valor de X ¿Cuántos estados posibles tiene Y y con qué frecuencia se ocurren estos estados?. 

 

Si estás interesado en entender el funcionamiento matemático detrás del coeficiente de incertidumbre, puedes hacer click aquí para leer más al respecto. Por ahora basta simplemente con entender los resultados de esta técnica, ya que Python se encargará de todos los cálculos matemáticos por nosotros. Usar la U de Theil no es tan distinto a usar la correlación de Pearson ya que nos devuelve un valor numérico entre 0 y 1. Entre más cercano a 1 sea el valor más fuerte es la asociación entre las variables y más recomendables es utilizarla en un modelo predictivo.

 

La librería Dython incluye una función para calcular automáticamente el valor de la U de Theil. Pero también puedes copiar y pegar el siguiente código para utilizar la función en tu código.

Ver código

 

Asociación entre variables categóricas y numéricas

Ya sabemos que hacer para medir la asociación entre dos variables categóricas y entre dos variables numéricas. ¿Qué hacemos entonces si tenemos una variable numérica continua y una variable categórica? En ese caso podemos recurrir a la razón de correlación (no confundir con coeficiente de correlación). 

 

Esta técnica también nos devuelve un valor entre 0 y 1, donde la asociación es más fuerte entre más cercano esté el valor a 1. Supongamos nuevamente que tenemos una variable X y una variable Y. Para obtener dicho valor se sigue el siguiente razonamiento: dado un valor numérico continuo. ¿Qué tan precisamente podemos predecir a qué categoría pertenece? 

 

Como siempre, puedes clickear aquí para adentrarte en el funcionamiento matemático de esta técnica. Pero aún así te recordamos que un entendimiento tan profundo no es necesario para sacarle provecho, ya que como siempre Python se encarga de todos los cálculos por nosotros.

 

Una vez más, puedes recurrir a la librería Dython para acceder a una función para calcular la razón de correlación o puedes copiar y pegar el código a continuación.

Ver código

Resumen

¿No tienes ganas de leer? Te dejamos entonces una tabla indicando qué técnica usar en cada caso.

 

Numérica continua

Numérica continua

Correlación (de Pearson o alguna otra)

Categórica

Categórica

Coeficiente incertidumbre

Categórica

Numérica continua

Razón de correlación

Este debate ha sido modificado el hace 1 año por taa.admin

Citar