¡Reencuéntrate con la tecnología en Platzi Day! Accede a miles de cursos por 72 horas. Una sorpresa te espera 😎

Regístrate

Termina en:

02D

19H

46M

26S

15

¿Cuál es la matemática detrás de la regresión lineal?

41755Puntos

hace un mes

Curso de Regresión Lineal con Python y scikit-learn
Curso de Regresión Lineal con Python y scikit-learn

Curso de Regresión Lineal con Python y scikit-learn

Aprende a crear tus primeros modelos de regresión lineal. Conoce cómo funciona todo el proceso para implementar este algoritmo de machine learning para predecir información sobre datos numéricos.

La regresión lineal es un modelo matemático que describe una relación lineal entre dos o más variables. Este modelo es útil para predecir valores numéricos y es uno de los algoritmos más sencillos y versátiles en el machine learning.

Como recordarás, y = b0 + b1x es la fórmula de una recta, donde b0 es el intercepto y b1 es la pendiente. De aquí partiremos para explicar la matemática detrás de la regresión lineal y cómo es que llegamos a obtener los valores de sus parámetros.

Así que te recomiendo haber tomado el Curso de Funciones Matemáticas para Data Science e Inteligencia Artificial para que comprendas el lenguaje matemático que viene a continuación.

https://images.unsplash.com/photo-1587580154308-f0be057deb77?ixlib=rb-1.2.1&q=80&cs=tinysrgb&fm=jpg&crop=entropy

Método de mínimos cuadrados y ajuste de curvas

Uno de los problemas a los que nos enfrentamos al ajustar una curva a los datos es encontrar sus parámetros óptimos. En el caso de regresión lineal estos son el intercepto b0 y la pendiente b1.

Para solucionarlo utilizamos una técnica que se llama ajuste por mínimos cuadrados. Esta consiste en minimizar la sumatoria del error entre el valor y real (observado) y el valor y de nuestro modelo de regresión.

regresion_lineal.png

Observando la imagen, notamos que al error lo podemos representar con la siguiente ecuación:

https://static.platzi.com/media/user_upload/errorEquation-f932b000-85f4-48e5-a295-1948aa757c20.jpg

Teniendo en cuenta esto, procedemos a expresar matemáticamente el método de mínimos cuadrados:

https://static.platzi.com/media/user_upload/leastSquaresDefinition-32f650a2-5cd3-4596-a406-4d705ead0f20.jpg

Para encontrar los valores de b0 y b1 derivamos la anterior expresión con respecto a cada una de estas variables:

https://static.platzi.com/media/user_upload/derivative1-01fa9bff-d0e1-4ec6-8ad8-138c861cb01f.jpg
https://static.platzi.com/media/user_upload/derivative2-fb7f706b-1724-4735-b9b8-54ebc5347e60.jpg

Dado que estamos buscando minimizar el error, igualamos las derivadas a cero. Vemos que ahora tenemos un problema de optimización. Recuerda que igualamos a cero las derivadas para encontrar un máximo o un mínimo. Así tenemos:

https://static.platzi.com/media/user_upload/zero1-2bf5d629-91e1-48be-8a92-47432dde69d1.jpg
https://static.platzi.com/media/user_upload/zero2-e7a5f017-0f82-44ab-9a03-a91d4c94ce63.jpg

Luego, si consideramos que Σb0 = n*b0 (lo cual tiene sentido porque n es el número de datos), podemos expresar dos ecuaciones lineales de dos incógnitas:

https://static.platzi.com/media/user_upload/linearEq1-af420ea8-a7b6-4619-ac22-b383b6159416.jpg
https://static.platzi.com/media/user_upload/linearEq2-6dd84d77-6ea8-45b2-82f9-0f93c91861bc.jpg

Ahora, si resolvemos para b0b1 obtenemos:

https://static.platzi.com/media/user_upload/a1-d2180973-9ec0-4cab-a1d2-a6ac4f9a09ee.jpg
https://static.platzi.com/media/user_upload/a0-f7bab9bf-7d63-4757-890c-760eec244d69.jpg

Donde ȳ y  son las medias de x y y, respectivamente.

De esta forma hemos calculado los coeficientes b0 y b1 por el método de mínimos cuadrados. Ahora veremos la cuantificación del error, es decir, cuán erradas pueden ser nuestras predicciones.

¿Cómo cuantificar el error en la regresión lineal?

Cualquier otra línea (con diferentes parámetros) aumentaría el valor de la suma de los cuadrados de los residuos. Ergo, no sería la curva con mejor ajuste. Pero, ¿cómo es que medimos el error en la regresión lineal?

Consideremos que los datos siguen una distribución normal respecto a la línea de predicción y que el error es de magnitud similar a lo largo del data set. Esto se llama principio de máxima verosimilitud.

https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Standard_deviation_diagram.svg/525px-Standard_deviation_diagram.svg.png

Para saber cuantificar el error debemos tomar en cuenta la suma total de los cuadrados de las diferencias entre los datos y la media St y la suma total de los cuadrados de las diferencias entre los datos y la curva de regresión Sr. Esto suena confuso, ¿no? Expresemos lo anterior en términos matemáticos para que quede más claro.

https://static.platzi.com/media/user_upload/St-0d30c03d-5a32-407a-b6f4-2ecfd7d95f3b.jpg
https://static.platzi.com/media/user_upload/sr-49697754-992a-4e1e-956b-8bb50c790189.jpg

Ahora calculemos el error de aproximación entre estos dos valores, así:

https://static.platzi.com/media/user_upload/r2-16443d50-2298-42cb-a093-6655fa9f61bd.jpg

se lo conoce como el coeficiente de determinación y a √(r²) como coeficiente de correlación. Entonces, cuando el coeficiente de correlación sea más cercano a 1 quiere decir que las predicciones serán menos erradas. En un caso ideal r será igual a 1, pero en el mundo real casi nunca te encontrarás con un caso así. Es muy raro.

Una forma más práctica de representar el coeficiente de correlación, desde el punto de vista computacional, es:

https://static.platzi.com/media/user_upload/r-ab660724-3c59-42f3-8541-887087a8cccf.jpg

Y así es cómo cuantificamos el error y determinamos qué tan bien se ajusta el modelo matemático que creamos a los datos observados.

Entender los modelos te permite avanzar más rápido

¡Felicidades por llegar hasta aquí! Quizá te estés preguntando si debes aprenderte todas estas fórmulas para tener una carrera exitosa como data scientist. Pero la respuesta es NO. La idea de explorar los algoritmos desde un punto de vista lógico-matemático es entender lo que estamos haciendo y cómo podemos usarlo a nuestro favor.

Existen librerías de Python como Scikit-learn o SciPy que harán que tu trabajo sea más rápido y que no tengas que programar estas fórmulas. Y eso es lo correcto en un ambiente profesional. Sin embargo, lo que acabas de leer te permitirá avanzar más rápido e interpretar mejor tus modelos matemáticos.

Ahora ya sabes de dónde surge la regresión lineal. Espero que hayas disfrutado tanto esta lectura como yo disfruté de escribirla. Cuéntame en los comentarios si te gustaría que exploráramos algún otro modelo matemático.

Descubre más sobre: Matriz pseudoinversa de Moore Penrose.

Curso de Regresión Lineal con Python y scikit-learn
Curso de Regresión Lineal con Python y scikit-learn

Curso de Regresión Lineal con Python y scikit-learn

Aprende a crear tus primeros modelos de regresión lineal. Conoce cómo funciona todo el proceso para implementar este algoritmo de machine learning para predecir información sobre datos numéricos.
Axel
Axel
axl-yaguana

41755Puntos

hace un mes

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
2
13874Puntos

Genial artículo y me encanta que hay ejemplos. “Ver es creer”.
Coincido en que no es requisito aprenderse todas las fórmulas, pero sí entender conceptos y utilizarlos a nuestro favor.
¡Gracias por el post! 😄

2
41755Puntos
un mes

¡Eso, Edupr! Entender cómo funcionan los modelos nos hace avanzar más rápido. 🚀

2
59182Puntos

Ufff que buenísimo blog, estaría genial ver algo similar para Análisis de Supervivencia o Series de Tiempo.

3
41755Puntos
un mes

Gracias, Francisco. Me alegra que te haya gustado.

Sí, análisis de supervivencia y series de tiempo son temas interesantes. Los tendré en cuenta para próximos artículos. Incluso podríamos ver un ejemplo en Python. 👀