Imagina que tienes un set de 5 datos bidimensionales, es decir, tienes 5 coordenadas (x y y). Todos estos datos son datos reales que son tomados de mediciones. Ahora, tú quieres entender el comportamiento y tendencia de estos 5 datos para, por ejemplo, predecir el sexto, séptimo u octavo dato. ¿Cómo se podría resolver este problema? 🤔
Aquí es donde comenzamos a hablar de regresión lineal. Una regresión lineal es una aproximación numérica para modelar la relación entre una variable independiente X y una variable dependiente Y. Primero grafiquemos nuestros 5 datos [(1, 2), (2, 3), (3, 5), (4, 6), (5, 5)]
para entender mejor lo que estamos tratando.
Una vez vistos los datos graficados queremos entender cuál es su comportamiento lineal. Como recordarás, la ecuación de una recta viene dada por y = b0 + b1x
, donde b0
es la intersección con el eje y y b1
la pendiente. Por lo tanto, el objetivo es encontrar la ecuación de esa recta, es decir, tenemos que encontrar los coeficientes b0
y b1
.
La técnica que usamos para obtener estos coeficientes se llama mínimos cuadrados. Este procedimiento consiste en minimizar la sumatoria del error entre el valor y real (medido) y el valor y de nuestro modelo de regresión.
Como observarás, al error lo podemos representar con la siguiente ecuación:
Teniendo en cuenta esto, procedemos a representar matemáticamente el método de mínimos cuadrados:
Para encontrar los valores de b0
y b1
derivamos la anterior expresión con respecto a cada una de estas variables:
Dado que estamos buscando minimizar el error igualamos las derivadas a cero. Recuerda que en optimización igualamos a cero las derivadas para encontrar un máximo o un mínimo. Así tenemos:
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:
Ahora, si resolvemos para b0
y b1
obtenemos:
Donde ȳ
y x̄
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. Si tenemos en cuenta los 5 datos sobre los que hablamos al inicio tenemos que b0 = 1.5
y b1 = 0.9
. Esto nos da como resultado la curva de regresión que tenemos abajo:
Y sí, a pesar de ser una línea recta, en matemáticas se le dice curva.
Ahora veremos la cuantificación del error, es decir, cuán erradas pueden ser nuestras predicciones.
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.
Para saber cuán erradas son nuestras predicciones 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
. Lo sé, esto parece un trabalenguas, pero miremos las fórmulas para que quede más claro:
Ahora calculemos el error de aproximación entre estos dos valores, así:
A r²
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 tu carrera como Data Scientist 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:
El coeficiente de correlación para nuestro ejemplo inicial es r = 0.867
lo cual está bien.
Ahora ya sabes de donde surge el modelo de regresión lineal y lo podrás aplicar en tus proyectos. Y claro, en tu carrera como Data Scientist lo harás a menudo. Me gustaría saber qué te ha parecido lo que acabas de aprender, cuéntamelo en los comentarios. También aprovecho para animarte a seguir con la Escuela de Data Science para que aprendas más sobre algoritmos. 💚
Esto si que me aclaro un montón de dudas que tenia, excelente!
Gracias, esta genial
Tu post me aclaró varias dudas que tenía y te lo agradezco. Logré comprender con mayor precisión al consultar algunos temas en Yt. Gracias
Excelente explicación, ayuda bastante a entender de donde sale la RL
muy buena explicación, sabes de algún curso de matemáticas en platzy para poder repasar todos los conceptos matemáticas que usas?
¡Hola, David!
Me alegra que te haya gustado. Puedes mirar este curso: https://platzi.com/cursos/regresion-lineal/
Si está más cerca de 0 que de 1, significa que estamos por mal camino :thin
Hola. No necesariamente. Nada más esa sería la descripción del comportamiento de los datos. Y quizá sea necesario usar otro modelo matemático. 😎
Amigo, muchas gracias por la explicación. Qué importante es retomar el tema de las derivadas. Creo que revisar los cursos de calculo diferencial, integral, varias variables y ecuaciones diferenciales es bastante importante para comprender lo que se está realizando en machine learning. Muchas gracias de antemano.
Nice
Muchísimas gracias por compartir con la comunidad…!
Wow eres un genio amigo, me quedo clarísimo. Gracias
Excelente explicación, muy ilustrativa y clara. Algo que yo añadiría es el por qué se deriva la función de Suma de cuadrados (

Sr
) para encontrar su valor mínimo. Aunque puede parecer un poco obvio me parece que es importante mencionarlo y puede resultar de mucha ayuda para otras personas.Teniendo en cuenta el cost function para la regresión lineal:
Si analizamos esta función vemos que es una ecuación cuadrática, lo que significa que tiene la forma de una parabola y tiene la forma general de y=ax^2+bx+c.
Nosotros sabemos que al derivar una función cuadrática en un punto dado obtenemos la pendiente de la tangente a la curva en ese punto.

Esto quiere decir que si derivamos la función en el vértice obtendríamos la pendiente de la línea azul que se muestra en el siguiente grafico:
Como vemos, la pendiente es cero m=0. saber esto nos resulta útil porque si nosotros derivamos el cost function en función de b0 y eso lo igualamos a 0, podemos encontrar el valor de b0 que hace que que esa derivada sea igual a 0, es decir el valor que mas minimiza la suma de cuadrados. Ahora solo tenemos que hacer lo mismo con b1 y tendríamos los valores de b0 y b1 que hacen mas pequeño el error en nuestro modelo.
Gracias por el aporte!