Una introducción a la regresión
¿Sabías que según la OMS en 2019 la diabetes fue la novena causa principal de muerte en el mundo ? La diabetes es una enfermedad crónica que se crea por la falta de generación de insulina, la cual es una hormona que regula la concentración de glucosa en la sangre. Aunque es una enfermedad que puede ser tratada con ayuda de alimentación sana, medicación y actividad física, puede ser silenciosa y se requiere de una prueba para saber si se padece esta enfermedad. Pero, nuestro objetivo no es hablar de salud y cuidados, entonces ¿por qué empezamos hablando de este tema? ¿Qué relación tiene la diabetes con el aprendizaje automático (Machine learning)?
Las técnicas de machine learning nos pueden ayudar a predecir el nivel de glucosa en la sangre o podemos saber si el paciente tiene o no diabetes, todo con base en datos en sus datos. A través del Supervised Learning (aprendizaje supervisado), que hace parte del machine learning, podemos utilizar sus modelos como la regresión lineal para predicción del nivel de glucosa en la sangre del paciente, o modelos de clasificación como regresión logística que nos ayuden a dar un diagnóstico previo de si un paciente tiene o no diabetes.
Esta es la razón por la que empezamos hablando de una enfermedad tan común, un ejemplo en el que podemos utilizar machine learning y dar soluciones con ayuda de los datos. Veamos qué es la regresión lineal y logística, cuáles son sus ecuaciones, cómo evaluarlas y qué aspectos debemos considerar. Además veamos cómo podemos implementar un ejemplo sencillo de estas en Python con ayuda de la librería scikit-learn .
Regresión lineal
La regresión lineal es un modelo matemático que clasificamos dentro de los modelos de machine learning como un modelo de aprendizaje supervisado, este describe la relación lineal de una variable dependiente (variable a predecir) Y en función de la o las variables independientes (variables que conocemos) X. Es decir, que el aumento de la variable X genera un aumento proporcional en la variable Y.
El objetivo de este modelo es encontrar la recta que mejor se ajusta a los datos, y nos permite conocer los coeficientes que acompañan a las variables independientes X en la ecuación.
Veamos un ejemplo gráfico:
En esta gráfica podemos observar un comportamiento lineal entre X y Y, y podemos observar en amarillo que la recta se ajusta a los puntos.
Cuando hablamos de regresión lineal tenemos dos tipos: simple y múltiple
La regresión lineal simple la representamos matemáticamente con la siguiente ecuación:
Donde:
- Y = Variable dependiente
- β0 = Intercepto con el eje Y
- β1 = Pendiente (inclinación de la línea recta)
- X = Variable independiente
- e = Error o residuo (representa la diferencia entre valor predicho y el valor real)
La regresión lineal múltiple es una versión generalizada de la regresión lineal simple:
Donde:
- Y = Variable dependiente
- β0 = Intercepto con el eje Y
- βi = Coeficientes
- Xi = Variable independiente
- e = Error o residuo (representa la diferencia entre valor predicho y el valor real)
Ahora que sabemos qué es una regresión lineal, veamos cómo interpretar el valor de los β:
Un incremento de una unidad es asociado con β unidades de incremento en la variable dependiente Y.
Al implementar una regresión lineal asegúrate de validar:
- Como en todo modelo que implementes, divide los datos en datos de entrenamiento y datos de prueba para que puedas probar tu modelo y medir que tan bien se ajusta al problema que quieres solucionar.
- Para que el modelo pueda tener buenos resultados asegúrate de hacer una buena limpieza a tus datos, busca minimizar la cantidad de valores atípicos.
- Ten cuidado con las variables con rangos muy distintos, en este último caso se recomienda normalizar/escalar los datos, lo que también ayuda a que la función de costo (la veremos más adelante) converja más rápido.
- Las variables que estés utilizando deben ser valores continuos, en caso de ser variables categóricas crea dummies.
- Utiliza gráficos como diagramas de dispersión para identificar si existe una relación lineal entre las variables.
- No debe haber una dependencia entre las variables. Puedes utilizar la prueba de Burbin — Watson (valores entre 1.5 y 2.5)
- Comprobar la homocedasticidad, que viene de homo(igual) y cedasticidad (dispersión). Es cuando la varianza de los errores de estimación es constante a lo largo de las observaciones. Lo que nos permite determinar si un modelo es confiable cuando la varianza es constante y pequeña. Puedes comprobarlo usando gráficos de dispersión o el test de Breusch-Pagan.
- Los residuales que son el error de la regresión tienen una distribución normal. Puedes validarlo con ayuda de un histograma o con un test de hipótesis de normalidad.
- Ten en cuenta que el Intervalo de confianza es del 95% y la significancia del 5%, por lo cual las variables más significativas para el modelo tiene un P Value menor a 5%
¿Cómo determinar cuál es la línea que mejor se ajusta a los datos?
La línea cuyo error entre puntos reales y puntos predichos al implementar la regresión lineal es mínimo es llamada la línea que mejor se ajusta al modelo o línea de regresión. El error es llamado residuo, y podemos identificarlo como la distancia del punto real al punto predicho en la recta (en amarillo).
Para calcular el error del modelo definimos la función de costo como la suma de cuadrados del residuo o como el gradiente descendiente, ambos tienen como objetivo minimizar los valores β.
Error cuadrado
Donde la hipótesis es:
Y la función de costo es:
Donde:
- h(x(i)) = Valor predicho
- y(i) = Valor real
- m = Número de datos de prueba
Gradiente descendiente
El gradiente descendente aplica para regresión lineal simple y múltiple, y muchos algoritmos más de machine learning. Nos permite encontrar un mínimo de la función donde converge.
Donde:
- β0 y β1 se calculan simultáneamente
- α es el parámetro de aprendizaje:
Si es un valor muy pequeño el cálculo del gradiente descendiente es lento.
Si es un valor muy grande, puede tener cambios abruptos y nunca converger.
Para regresión lineal simple la función utilizada es una función convexa y se calcula el mínimo global. Para regresión lineal múltiple el gradiente descendiente se calcula de la siguiente manera:
Donde se calculan βj simultáneamente.
Importante: Si las variables están escaladas la función puede converger más rápido. Se puede escalar donde los valores estén entre -1 y 1 o normalizando:
Donde:
- Xi = Valor de la variable
- μi = Promedio
- S es el rango (valor maximo — valor minimo)
¿Cómo evaluar la regresión lineal?
Vamos a hablar de algunas métricas utilizadas para evaluar un modelo de regresión lineal: RMSE, MAE y R2
RMSE (Root mean squared error)
Error cuadrático medio. Mide el error entre los datos reales y los datos obtenidos al correr el modelo de predicción. El RMSE es la raíz cuadrada de la distancia cuadrada promedio entre el valor real y el valor predicho. Veamos la ecuación:
Donde:
- yj Es el valor real
- yj es el valor predicho
- n es el número de registros
Si el valor obtenido es bajo, indica un buen ajuste del modelo a los datos.
MAE (Mean absolute error)
Error absoluto medio. Mide la magnitud promedio de los errores. El MAE es el promedio de la diferencia absoluta entre los valores reales y predichos. Veamos la ecuación:
Donde:
- yj Es el valor real
- j es el valor predicho
- n es el número de registros
Este es un puntaje lineal, lo que indica que las diferencias se ponderan por igual en el promedio.
R2
Coeficiente de determinación. El R2 indica la bondad del modelo y nos permite identificar si las variables independientes seleccionadas explican la variable dependiente. Los valores obtenidos van hasta 1 que nos indica una predicción perfecta (ten cuidado con este valor o valores muy cercanos a 1 porque indicaría que tienes overfitting). Entre más pequeño sea más bajo es el acierto en la predicción del modelo. Veamos la ecuación:
Donde:
- yj = Es el valor real
- ŷj = es el valor predicho
- y_j = es el promedio de los valores reales
- n = es el número de registros
Uno de los problemas que se presenta con esta medida es que aumenta al añadir más variables predictoras al modelo, y se puede dar el caso que estas variables añadidas no mejoran el resultado del modelo. Por esto surge una nueva medida que es R2 ajustado que añade los grados de libertad del modelo y aumenta si las variables añadidas aportan a la predicción del modelo, de lo contrario disminuye. Esta métrica se debe utilizar en modelos de regresión lineal múltiple.
Ahora, veamos algunos conceptos importantes:
Underfitting y Overfitting
En esta publicación no profundizaremos en estos temas pero vale la pena mencionarlos para que los tengas en cuenta cuando implementes un modelo de machine learning.
- Underfitting (Ajuste bajo): Cuando el modelo no puede capturar el comportamiento de los datos. Podemos darnos cuenta si nuestro modelo tiene Underfitting cuando el R2 tiene un valor muy pequeño y el modelo no se adapta adecuadamente a nuevos datos.
- Overfitting (Sobreajuste): Cuando el modelo predice perfectamente. Podemos darnos cuenta si nuestro modelo tiene Overfitting cuando el R2 tiene un valor de 1 o muy cercano. En este caso el modelo se adapta perfectamente a los datos de entrenamiento, pero al ingresar nuevos datos el valor del R2 disminuye notablemente.
Veamos gráficamente:
Regresión logística
En la sección anterior hablamos sobre regresión lineal, en esta parte profundizaremos sobre la regresión logística.
Anteriormente observamos que la regresión lineal es cuantitativa, toma valores de un rango de -1 +1. Por lo tanto, se puede afirmar que la regresión lineal cuenta con una salida continua.
No obstante, en el mundo de los datos muchas veces necesitamos saber respuestas cualitativas. Podemos encontrar ejemplos como saber si la demanda de un producto subirá o bajará o si se cumple con la calidad del producto o no, o como en nuestro ejemplo inicial buscamos saber si una persona tiene o no diabetes. Se cuentan diversos casos y aplicaciones en el cual se busca que la respuesta sea Sí/No.
Teniendo en cuenta lo anterior, la regresión logística cuenta con una salida discreta.
La regresión logística es un método de estadística en el cual a partir de un modelo lineal realiza clasificaciones binarias. Para este modelo se ingresan variables independientes con sus parámetros de manera lineal y se modelan con la función logística o función sigmoide. (Fuente: https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression).
Según el artículo de datacamp aproximadamente el 70% de los casos y problemas en la ciencia de datos están relacionados a problemas de clasificación. Usualmente para solucionarlos, se utiliza la regresión logística. Es por esta razón, que tiene una relevancia en los datos y es crucial su estudio.
A través de la regresión lineal expuesta anteriormente que es igual a:
y así mismo, por medio de la ecuación de la función logística contamos con la siguiente ecuación:
Donde:
- p(x) = probabilidad del evento en estudio
- 1-p(x) = la probabilidad de que no suceda en estudio
- β⁰+β¹ X +BnXn = modelo lineal
Te invitamos a leer An Introduction to Statistical Learning para conocer en detalle la demostración de cómo se llegó a la anterior ecuación. (4.3 Logistic Regression pg 132.)
Despejando p contamos con la ecuación de la regresión logística:
y su gráfica es la siguiente:
Tipos de regresión logística
- Regresión logística binomial: La variable objetivo solo puede contar con dos resultados, es dicotómica. Para este caso, si el paciente tiene o no diabetes. Es el tipo de regresión logística más común.
- Regresión logística multinomial: La variable objetivo cuenta con más de dos posibles resultados. En el caso de pacientes de diabetes es si el paciente tiene o no diabetes o si es pre diabético.
- Regresión logística ordinal: Cuenta con más de dos posibles resultados y requiere de valores ordinales. En el caso de diabetes es el tipo de diabetes tomando valores ordinales para su cálculo.
Para este artículo profundizaremos sobre el tipo de regresión logística más común que es la regresión logística binomial.
Evaluación o cálculo de error regresión logística
Hay diferentes métodos para evaluar un modelo logístico. Por lo general, se evalúa un modelo logístico por medio de su rendimiento y si sus resultados son los esperados en su predicción. Principalmente se utilizan los siguientes métodos:
Matriz de confusión
La matriz de confusión resume el rendimiento predictivo de un modelo de aprendizaje supervisado, en este caso en la regresión logística, en el cual nos permite observar su comportamiento y la relación entre las predicciones del modelo y los resultados esperados.
Las filas representan el número real de instancias de cada evento y las columnas presentan las predicciones de cada evento.
Tomando como variables a evaluar eventos deseados vs eventos no deseados, cada recuadro cuenta con el siguiente significado:
- Verdaderos positivos (VP): cantidad de eventos no deseados correctamente etiquetados
- Verdaderos negativos (VN): número de eventos deseados correctamente etiquetados
- Falsos Negativos (FN): cantidad de eventos no deseados etiquetados incorrectamente
- Falsos Positivos (FP): cantidad de eventos deseados etiquetados incorrectamente
Por lo general, la clase/variable de interés se llama clase positiva. Para este caso, deseamos analizar los eventos deseados, esto hace que sea la variable por estudiar.
Por medio de la matriz confusión se puede calcular métricas que miden el comportamiento del modelo. En este caso las tres más importante son las siguientes: Accuracy, Precision y Recall
Precision
En la precisión se mide cuánto es el porcentaje de que el modelo pueda dar valores correctos.
Conocido también como valor predictivo positivo, es la cantidad de eventos no deseados etiquetados correctamente(tp) dividido por la cantidad de eventos no deseados etiquetados correctamente (tp) sumado con la cantidad de eventos deseados etiquetados incorrectamente (tp).
Recall:
Conocido también por medir la sensibilidad en el índice de aciertos o índice de aciertos positivos.
Accuracy:
Indica la proporción de las predicciones correctas del modelo en relación a las predicciones totales de los valores calculados por medio de la matriz de confusión. Accuracy es que tan cerca o lejano está un conjunto de datos de su valor real.
Si el valor es cercano a 1 se considera un buen accuracy.
Los modelos de regresión lineal y logística son relevantes en la ciencia de los datos, sus aplicaciones presentan una manera de resolver o encontrar respuestas a las problemáticas que día a día nos podemos encontrar.
En este artículo nos enfocamos en estos dos modelos pero existen otros modelos de machine learning y el grupo de supervised learning como regresión Lasso, regresión Ridge , regresión polinómica, árboles de decisión , SVM y otros más. Invitamos a los lectores a profundizar y a utilizar el que mejor se adapte a su caso de estudio.
Te dejamos un ejemplo de implementación de regresión lineal y logística básica en Python para que puedas tener una guía de inicio y te animes a realizar más ejercicios donde practiques los conceptos mencionados en la publicación:
Recursos adicionales para profundizar
Libros:
- An Introduction to Statistical Learning with Applications in R, Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani. Springer
- Python Data Science Handbook, Jake VanderPlas. O’reilly
- Learn R for Applied Statistics with Data Visualizations, Regressions and Statistics, Eric Goh Ming Hui. Apress
Cursos:
- Supervised Learning with scikit-learn, DataCamp https://www.datacamp.com/courses/supervised-learning-with-scikit-learn
- Machine Learning, Coursera https://www.coursera.org/learn/machine-learning
Esta publicación la realicé en compañia de Gabriel Manuel Galindo España, Ingeniero Industrial de la Universidad Pontificia Bolivariana, fue investigador a nivel de pregrado en temas relacionados a la Dinámica de Sistemas, sector Agroindustrial, Ambiental y Gestión de Proyectos. Actualmente se encuentra desempeñando como Analista de datos y profundizando en la ciencia de datos para compartir estos conocimientos y dar un impacto positivo a la sociedad. Puedes encontrarlo en redes como @gabgesp