Entendiendo la regresión múltiple

La base fundamental detrás de este algoritmo comúnmente utilizado

La regresión lineal, aunque es una herramienta útil, tiene límites significativos. Como su nombre indica, no puede ajustarse fácilmente a cualquier conjunto de datos que no sea lineal. Sólo puede utilizarse para hacer predicciones que se ajusten al rango del conjunto de datos de entrenamiento. Y, lo más importante para este artículo, sólo puede ajustarse a conjuntos de datos con una única variable dependiente y una única variable independiente.

Aquí es donde entra en juego la regresión múltiple. Aunque no puede superar esas tres debilidades de la regresión lineal, está específicamente diseñada para crear regresiones en modelos con una única variable dependiente y múltiples variables independientes.

¿Cuál es la forma general de la regresión múltiple?

La forma general de la ecuación para la regresión lineal es:

y = B * x + A

donde y es la variable dependiente, x es la variable independiente, y A y B son coeficientes que dictan la ecuación. La diferencia entre la ecuación para la regresión lineal y la ecuación para la regresión múltiple es que la ecuación para la regresión múltiple debe ser capaz de manejar múltiples entradas, en lugar de sólo una entrada de la regresión lineal. Para tener en cuenta este cambio, la ecuación para la regresión múltiple toma la forma:

y = B_1 * x_1 + B_2 * x_2 + … + B_n * x_n + A

En esta ecuación, los subíndices denotan las diferentes variables independientes. x_1 es el valor de la primera variable independiente, x_2 es el valor de la segunda variable independiente, y así sucesivamente. La ecuación continúa a medida que se añaden más y más variables independientes hasta que se añade la última variable independiente, x_n, a la ecuación. Observe que este modelo permite tener cualquier número, n, de variables independientes y se añaden más términos según sea necesario. Los coeficientes B emplean los mismos subíndices, indicando que son los coeficientes vinculados a cada variable independiente. A, como antes, es simplemente una constante que indica el valor de la variable dependiente, y, cuando todas las variables independientes, las x, son cero.

Como ejemplo, imagine que es un planificador de tráfico en su ciudad y necesita estimar el tiempo medio de desplazamiento de los conductores que van del lado Este de la ciudad al Oeste. No sabes cuánto tiempo tardan de media, pero sí sabes que dependerá de varios factores. Probablemente depende de cosas como la distancia recorrida, el número de semáforos en la ruta y el número de otros coches en la carretera. En ese caso podrías crear una ecuación de regresión múltiple lineal como la siguiente:

y = B_1 * Distancia + B_2 * Semáforos + B_3 * Coches + A

donde y es el tiempo medio de viaje al trabajo, Distancia es la distancia entre los destinos inicial y final, Semáforos es el número de semáforos en la ruta, y A es una constante que representa otros consumidores de tiempo (Por ejemplo, ponerse el cinturón de seguridad, arrancar el coche, quizás parar en una cafetería).

Ahora que tiene su modelo de predicción del tiempo de viaje al trabajo, necesita ajustar su modelo a su conjunto de datos de entrenamiento para minimizar los errores.

¿Cómo ajusto un modelo de regresión múltiple?

De manera similar a cómo minimizamos la suma de errores al cuadrado para encontrar B en el ejemplo de regresión lineal, minimizamos la suma de errores al cuadrado para encontrar todos los términos B en la regresión múltiple.La diferencia aquí es que como hay múltiples términos, y un número no especificado de términos hasta que se crea el modelo, no hay una solución algebraica simple para encontrar los términos A y B. Esto significa que tenemos que utilizar el descenso de gradiente estocástico. El descenso de gradiente estocástico es un tema lo suficientemente amplio como para necesitar otro artículo, así que no entraré en detalles aquí. Sin embargo, se puede encontrar una buena descripción del mismo en Data Science from Scratch de Joel Gros. Afortunadamente, todavía podemos presentar las ecuaciones necesarias para implementar esta solución antes de leer sobre los detalles.

El primer paso es sumar los errores al cuadrado en cada punto. Esto toma la forma de:

Error_Punto = (Actual – Predicción)²

donde Error es el error en el modelo al predecir el tiempo de viaje de una persona, Actual es el valor real (O el tiempo de viaje real de esa persona), y Predicción es el valor predicho por el modelo (O el tiempo de viaje de esa persona predicho por el modelo). Real – Predicción da el error de un punto, y si se eleva al cuadrado se obtiene el error al cuadrado de un punto. Recuerde que elevar el error al cuadrado es importante porque algunos errores serán positivos mientras que otros serán negativos y, si no se eleva al cuadrado, estos errores se anularán entre sí haciendo que el error total del modelo parezca mucho menor de lo que realmente es.

Para encontrar el error en el modelo, el error de cada punto debe sumarse en todo el conjunto de datos. Esto significa esencialmente que se utiliza el modelo para predecir el tiempo de viaje para cada punto de datos que se tiene, se resta ese valor del tiempo de viaje real en el punto de datos para encontrar el error, se eleva al cuadrado ese error y luego se suman todos los errores al cuadrado. En otras palabras, el error del modelo es:

Error_Modelo = suma(Actual_i – Predicción_i)²

donde i es un índice que itera a través de todos los puntos del conjunto de datos.

Una vez que se determina la función de error, es necesario poner el modelo y la función de error a través de un algoritmo de descenso de gradiente estocástico para minimizar el error. Lo hará minimizando los términos B de la ecuación. Escribiré un artículo detallado sobre cómo crear un algoritmo de descenso de gradiente estocástico pronto, pero por ahora puedes encontrar los detalles en Data Science from Scratch o utilizar herramientas del paquete scikit-learn de Python.

Una vez que hayas ajustado el modelo a tus datos de entrenamiento, el siguiente paso es asegurarte de que se ajusta bien al modelo.

¿Cómo me aseguro de que el modelo se ajusta bien a los datos?

La respuesta corta es: Utilizar el mismo valor r² que se utilizó para la regresión lineal. El valor r², también llamado coeficiente de determinación, indica la parte del cambio en el conjunto de datos que predice el modelo. Es un valor que va de 0 a 1, donde 0 indica que el modelo no tiene capacidad para predecir el resultado y 1 indica que el modelo predice el resultado perfectamente. Deberías esperar que el valor de r² de cualquier modelo que crees esté entre esos dos valores. (Si no lo está, has cometido un error en alguna parte).

El coeficiente de determinación de un modelo se puede calcular mediante las siguientes ecuaciones:

r² = 1 – (Suma de errores al cuadrado) / (Suma total de cuadrados)

(Suma total de cuadrados) = Suma(y_i – media(y))²

(Suma de errores al cuadrado) = suma((Actual_i – Predicción_i)²)

Los términos adicionales siempre mejorarán el modelo, tanto si el nuevo término añade un valor significativo al modelo como si no.

Aquí es donde se complica la prueba de ajuste de un modelo de regresión múltiple. Añadir más términos a la regresión múltiple mejora intrínsecamente el ajuste. Proporciona un nuevo término para que el modelo se ajuste a los datos, y un nuevo coeficiente que puede variar para forzar un mejor ajuste. Los términos adicionales siempre mejorarán el modelo, tanto si el nuevo término añade un valor significativo al modelo como si no. De hecho, añadir nuevas variables puede empeorar el modelo. Añadir más y más variables hace que sea cada vez más probable que se sobreajuste el modelo a los datos de entrenamiento. Esto puede resultar en un modelo que está inventando tendencias que realmente no existen sólo para forzar el modelo para que coincida con los puntos que existen.

Este hecho tiene implicaciones importantes al desarrollar modelos de regresión múltiple. Sí, podría seguir añadiendo más y más términos a la ecuación hasta que consiga una coincidencia perfecta o se quede sin variables que añadir. Pero entonces se acabaría con un modelo muy grande y muy complejo, lleno de términos que no son realmente relevantes para el caso que se está prediciendo. Por ejemplo, en nuestro ejemplo de predicción de los tiempos de viaje al trabajo, podríamos mejorar nuestro modelo añadiendo un término que represente el tamaño aparente de Júpiter en el cielo nocturno. Pero eso no afecta realmente a los tiempos de viaje al trabajo, ¿verdad?

¿Cómo puedo identificar qué parámetros son los más importantes?

Una forma es calcular el error estándar de cada coeficiente. El error estándar indica cuánta confianza tiene el modelo en cada coeficiente, con valores más grandes que indican que el modelo está menos seguro de ese parámetro. Esto es intuitivo incluso sin ver las ecuaciones subyacentes – Si el error asociado con un término es típicamente alto, eso implica que no está teniendo un impacto muy fuerte en la coincidencia del modelo con el conjunto de datos.

Calcular el error estándar es un proceso estadístico involucrado, y no puede ser descrito sucintamente en un artículo rápido de Medium. Afortunadamente, hay paquetes de Python disponibles que puedes utilizar para hacerlo por ti. La pregunta ha sido formulada y respondida en StackOverflow al menos una vez. Esas herramientas deberían servirte para empezar.

Después de calcular el error estándar de cada coeficiente, puedes usar los resultados para identificar cuáles son los coeficientes más altos y cuáles los más bajos. Dado que los valores altos indican que esos términos añaden menos valor predictivo al modelo, puede saber que esos términos son los menos importantes para mantener. En este punto puede empezar a elegir qué términos del modelo pueden eliminarse para reducir el número de términos de la ecuación sin reducir drásticamente el poder predictivo del modelo.

Otro método es utilizar una técnica llamada regularización. La regularización funciona añadiendo un nuevo término al cálculo del error que se basa en el número de términos de la ecuación de regresión múltiple. Un mayor número de términos en la ecuación conducirá intrínsecamente a un mayor error de regularización, mientras que un menor número de términos conducirá intrínsecamente a un menor error de regularización. Además, la penalización por añadir términos en la ecuación de regularización puede aumentarse o reducirse según se desee. Aumentar la penalización también conducirá a un mayor error de regularización, mientras que disminuirla conducirá a un menor error de regularización.

Con un término de regularización añadido a la ecuación de error, minimizar el error significa no sólo minimizar el error en el modelo sino también minimizar el número de términos en la ecuación. Esto conducirá intrínsecamente a un modelo con un peor ajuste a los datos de entrenamiento, pero también conducirá intrínsecamente a un modelo con menos términos en la ecuación. Los valores de penalización/término más altos en el error de regularización crean más presión en el modelo para tener menos términos.

Joel Gros proporciona un buen ejemplo de uso de la regresión de cresta para la regularización en su libro Data Science from Scratch.

¿Cómo puedo dar sentido a este modelo?

El modelo que ha creado no es sólo una ecuación con un montón de números en ella. Cada uno de los coeficientes que acabas de derivar establece el impacto que una variable independiente tiene sobre la variable dependiente suponiendo que todas las demás se mantienen iguales. Por ejemplo, nuestro ejemplo del tiempo de viaje al trabajo dice que el viaje medio al trabajo tardará B_2 minutos más por cada semáforo en la ruta de viaje de una persona. Si el proceso de desarrollo del modelo devuelve 2,32 para B_2, eso significa que cada semáforo en el camino de una persona añade 2,32 minutos al viaje.

Esta es otra razón por la que es importante mantener el número de términos en la ecuación bajo. A medida que se añaden más y más términos, se hace más difícil hacer un seguimiento de la importancia física de cada término. También es más difícil justificar la presencia de cada término. Estoy seguro de que cualquiera que cuente con el modelo de predicción del tiempo de viaje al trabajo aceptaría bastante un término para la distancia de viaje al trabajo, pero aceptaría mucho menos un término para el tamaño de Júpiter en el cielo nocturno.

¿Cómo puede ampliarse este modelo?

Nótese que este modelo no dice nada sobre cómo los parámetros podrían afectarse mutuamente. Al mirar la ecuación, no hay manera de que pueda hacerlo. Los diferentes coeficientes están todos relacionados con un solo parámetro físico. Si crees que dos términos están relacionados, podrías crear un nuevo término basado en la combinación de esos dos. Por ejemplo, el número de semáforos en el trayecto podría ser una función de la distancia del trayecto. Una ecuación potencial para esto podría ser:

Semáforos = C_1 * Distancia + D

donde C_1 y D son coeficientes de regresión similares a B y A en la ecuación de regresión de la distancia del viaje al trabajo. Este término para los semáforos podría ser sustituido en la ecuación de regresión de la distancia al trabajo, permitiendo que el modelo capture esta relación.

Otra posible modificación incluye la adición de entradas no lineales. El modelo de regresión múltiple en sí mismo sólo es capaz de ser lineal, lo cual es una limitación. Sin embargo, puede crear términos no lineales en el modelo. Por ejemplo, digamos que el retroceso de un semáforo puede impedir que el tráfico pase por un semáforo anterior. Esto podría conducir a un impacto exponencial de los semáforos en el tiempo de viaje. Usted podría crear un nuevo término para capturar esto, y modificar su algoritmo de distancia de viaje en consecuencia. Sería algo así:

Stoplights_Squared = Stoplights²

y = B_1 * Distancia + B_2 * Stoplights + B_3 * Cars + B_4 * Stoplights_Squared + C

Estas dos ecuaciones se combinan para crear un término de regresión lineal para su entrada no lineal Stoplights_Squared.

Resumiendo

La regresión múltiple es una extensión de los modelos de regresión lineal que permite predecir sistemas con múltiples variables independientes. Lo hace simplemente añadiendo más términos a la ecuación de regresión lineal, con cada término representando el impacto de un parámetro físico diferente.

Esto sigue siendo un modelo lineal, lo que significa que los términos incluidos en el modelo son incapaces de mostrar cualquier relación entre sí o representar cualquier tipo de tendencia no lineal. Estos inconvenientes pueden superarse añadiendo términos modificados a la ecuación. Un nuevo parámetro podría ser impulsado por otra ecuación que siga la relación entre o variables o que aplique una tendencia no lineal a la variable. De esta manera, las tendencias lineales independientes en el modelo de regresión múltiple pueden ser forzadas para capturar las relaciones entre las dos y/o los impactos no lineales.

Debido a que hay más parámetros en el modelo que en la regresión lineal simple, se necesita más cuidado al crear la ecuación. Añadir más términos mejorará intrínsecamente el ajuste a los datos, pero los nuevos términos pueden no tener ningún significado físico. Esto es peligroso porque conduce a un modelo que se ajusta a los datos pero que en realidad no significa nada útil. Además, un mayor número de términos aumenta las probabilidades de sobreajustar el modelo, lo que conduce a resultados potencialmente desastrosos a la hora de predecir valores.

Hay muchas técnicas para limitar el número de parámetros y los inconvenientes asociados en estos modelos. Dos incluyen el cálculo del error estándar de cada coeficiente y la regularización. El cálculo del error estándar le permite ver qué términos son los menos valiosos para el modelo y elegir eliminar los términos extraños en consecuencia. La regularización va un paso más allá al añadir un término de error para los términos que aumentan en el modelo, reduciendo así la bondad del ajuste a medida que se añaden más términos. Este método le ayuda a encontrar el equilibrio entre la eliminación de términos para reducir las desventajas de los términos adicionales y la inclusión de los más importantes para obtener un buen ajuste.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *