Introducción
Dado un conjunto de datos D = { ( X 1 , Y 2 ) , … , ( X N , Y N ) } D = \{(X_{1}, Y_{2}), \dots,(X_{N}, Y_{N})\} D = {( X 1 , Y 2 ) , … , ( X N , Y N )} como X i X_{i} X i y Y i Y_{i } Y i son continuos. El objetivo de la "regresión lineal" es encontrar la mejor línea que se ajuste a estos datos.
En otras palabras, queremos crear el modelo:
y ^ = a ∗ 0 + a ∗ 1. x ∗ 1 + ⋯ + a ∗ p . x _ p \hat{y} = a*{0} + a*{1}.x*{1} + \dots + a*{p}.x\_{p} y ^ = a ∗ 0 + a ∗ 1 . x ∗ 1 + ⋯ + a ∗ p . x _ p
donde p p p es el número de dimensiones de la variable X X X .
En este artículo veremos cómo solucionar este problema en tres escenarios:
Cuando X es unidimensional, es decir, p = 1 p=1 p = 1 .
Cuando X es multidimensional, es decir, p > 1 p>1 p > 1 .
Usando descenso de gradiente.
X X X es unidimensional (mínimos cuadrados ordinarios)
El modelo que queremos crear tiene la forma:
y ^ = a ∗ 0 + a ∗ 1. x \hat{y} = a*{0} + a*{1}.x y ^ = a ∗ 0 + a ∗ 1 . x
Recuerde que el objetivo de la regresión lineal es encontrar la recta que mejor se ajuste a los datos. En otras palabras, necesitamos minimizar la distancia entre los puntos de datos y la línea.
( a ∗ 0 ^ , a ∗ 1 ^ ) = argmin ( a ∗ 0 , a ∗ 1 ) ∑ ∗ i = 1 N ( y ∗ i − y ∗ i ^ ) 2 (\hat{a*{0}}, \hat{a*{1}}) = \underset{(a*{0}, a*{1})}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - \hat{y*{i}})^2 ( a ∗ 0 ^ , a ∗ 1 ^ ) = ( a ∗ 0 , a ∗ 1 ) argmin ∑ ∗ i = 1 N ( y ∗ i − y ∗ i ^ ) 2
= argmin ( a ∗ 0 , a ∗ 1 ) ∑ ∗ i = 1 N ( y ∗ i − ( a ∗ 0 + a ∗ 1. x ∗ i ) ) 2 = \underset{(a*{0}, a*{1})}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - (a*{0} + a*{1}.x*{i}))^2 = ( a ∗ 0 , a ∗ 1 ) argmin ∑ ∗ i = 1 N ( y ∗ i − ( a ∗ 0 + a ∗ 1 . x ∗ i ) ) 2
Pongamos:
L = ∑ ∗ i = 1 N ( y ∗ i − ( a ∗ 0 + a ∗ 1. x _ i ) ) 2 L = \sum\limits*{i=1}^{N} (y*{i} - (a*{0} + a*{1}.x\_{i}))^2 L = ∑ ∗ i = 1 N ( y ∗ i − ( a ∗ 0 + a ∗ 1 . x _ i ) ) 2
Para encontrar el mínimo, necesitamos resolver las siguientes ecuaciones:
{ ∂ L ∂ a 0 = 0 ∂ L ∂ a 1 = 0 \begin{cases}
\frac{\partial L}{\partial a_{0}} = 0\\
\frac{\partial L}{\partial a_{1}} = 0
\end{cases} { ∂ a 0 ∂ L = 0 ∂ a 1 ∂ L = 0
{ ∑ i = 1 N − 2 ( y i − ( a 0 + a 1 . x i ) ) = 0 ∑ i = 1 N − 2 x i ( y i − ( a 0 + a 1 . x i ) ) = 0 \begin{cases}
\sum\limits_{i=1}^{N} -2(y_{i} - (a_{0} + a_{1}.x_{i})) = 0\\
\sum\limits_{i=1}^{N} -2x_{i}(y_{i} - (a_{0} + a_{1}.x_{i})) = 0
\end{cases} ⎩ ⎨ ⎧ i = 1 ∑ N − 2 ( y i − ( a 0 + a 1 . x i )) = 0 i = 1 ∑ N − 2 x i ( y i − ( a 0 + a 1 . x i )) = 0
Comenzamos desarrollando la primera ecuación:
∑ i = 1 N y i − ∑ i = 1 N a 0 + ∑ i = 1 N a 1 . x i = 0 \sum\limits_{i=1}^{N} y_{i} - \sum\limits_{i=1}^{N}a_{0} + \sum\limits_{i=1}^{N} a_{1}.x_{i} = 0\\ i = 1 ∑ N y i − i = 1 ∑ N a 0 + i = 1 ∑ N a 1 . x i = 0
∑ i = 1 N y i − N a 0 + ∑ i = 1 N a 1 . x i = 0 \sum\limits_{i=1}^{N} y_{i} - Na_{0} + \sum\limits_{i=1}^{N} a_{1}.x_{i} = 0\\ i = 1 ∑ N y i − N a 0 + i = 1 ∑ N a 1 . x i = 0
a 0 = ∑ i = 1 N y i N − ∑ i = 1 N x i N a 1 a_{0} = \frac{\sum\limits_{i=1}^{N} y_{i}}{N} - \frac{\sum\limits_{i=1}^{N} x_{i}}{N}a_{1} a 0 = N i = 1 ∑ N y i − N i = 1 ∑ N x i a 1
a 0 = Y − X a 1 a_{0} = Y - Xa_{1} a 0 = Y − X a 1
Sustituimos en la segunda ecuación:
∑ i = 1 N x i ( y i − Y + X a 1 − a 1 x i ) = 0 \sum\limits_{i=1}^{N} x_{i}(y_{i} - Y + Xa_{1} - a_{1}x_{i}) = 0 i = 1 ∑ N x i ( y i − Y + X a 1 − a 1 x i ) = 0
∑ i = 1 N ( y i − Y ) + a 1 ( X − x i ) = 0 \sum\limits_{i=1}^{N} (y_{i} - Y) + a_{1}(X - x_{i}) = 0 i = 1 ∑ N ( y i − Y ) + a 1 ( X − x i ) = 0
∑ i = 1 N ( y i − Y ) − ∑ i = 1 N a 1 ( x i − X ) = 0 \sum\limits_{i=1}^{N} (y_{i} - Y) - \sum\limits_{i=1}^{N}a_{1}(x_{i} - X) = 0 i = 1 ∑ N ( y i − Y ) − i = 1 ∑ N a 1 ( x i − X ) = 0
a 1 = ∑ i = 1 N ( y i − Y ) ∑ i = 1 N ( x i − X ) = ∑ i = 1 N ( y i − Y ) ( x i − X ) ∑ i = 1 N ( x i − X ) 2 = C O V ( X , Y ) V A R ( X ) a_{1} = \frac{\sum\limits_{i=1}^{N} (y_{i} - Y)}{\sum\limits_{i=1}^{N}(x_{i} - X)} =
\frac{\sum\limits_{i=1}^{N} (y_{i} - Y)(x_{i} - X)}{\sum\limits_{i=1}^{N}(x_{i} - X)^2} =
\frac{COV(X, Y)}{VAR(X)} a 1 = i = 1 ∑ N ( x i − X ) i = 1 ∑ N ( y i − Y ) = i = 1 ∑ N ( x i − X ) 2 i = 1 ∑ N ( y i − Y ) ( x i − X ) = V A R ( X ) CO V ( X , Y )
Sustituimos nuevamente en a 0 a_{0} a 0 :
{ a 0 = Y − X C O V ( X , Y ) V A R ( X ) a 1 = C O V ( X , Y ) V A R ( X ) \begin{cases}
a_{0} = Y - X\frac{COV(X, Y)}{VAR(X)}\\
a_{1} = \frac{COV(X, Y)}{VAR(X)}
\end{cases} { a 0 = Y − X V A R ( X ) CO V ( X , Y ) a 1 = V A R ( X ) CO V ( X , Y )
X X X es multidimensional (mínimos cuadrados ordinarios)
En este caso, X i X_{i} X i ya no es un número real, sino que es un vector de tamaño p p p :
X ∗ i = ( X ∗ i 1 , X ∗ i 2 , … , X ∗ i p ) X*{i} = (X*{i1},X*{i2},\dots,X*{ip}) X ∗ i = ( X ∗ i 1 , X ∗ i 2 , … , X ∗ i p )
Entonces, el modelo se escribe de la siguiente manera:
y ^ = a ∗ 0 + a ∗ 1 x ∗ 1 + a ∗ 2 x ∗ 2 + ⋯ + a ∗ p x _ p \hat{y} = a*{0} + a*{1}x*{1} + a*{2}x*{2} + \dots + a*{p}x\_{p} y ^ = a ∗ 0 + a ∗ 1 x ∗ 1 + a ∗ 2 x ∗ 2 + ⋯ + a ∗ p x _ p
o puede escribirse en formato matricial:
Y ^ = X . W \hat{Y} = X.W Y ^ = X . W
dónde:
Y Y Y tiene la forma ( N , 1 ) (N, 1) ( N , 1 ) .
X X X tiene la forma ( N , p ) (N, p) ( N , p ) .
W W W tiene la forma ( p , 1 ) (p, 1) ( p , 1 ) : este es el vector de parámetros ( w 1 , w 2 , … , w p ) (w_{1}, w_{2}, \dots, w_{p}) ( w 1 , w 2 , … , w p ) .
De manera similar al primer caso, nuestro objetivo es minimizar la siguiente cantidad:
W ^ = argmin W ∑ ∗ i = 1 N ( y ∗ i − y _ i ^ ) 2 \hat{W} = \underset{W}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - \hat{y\_{i}})^2 W ^ = W argmin ∑ ∗ i = 1 N ( y ∗ i − y _ i ^ ) 2
Nuevamente pongamos:
L = ∑ ∗ i = 1 N ( y ∗ i − y _ i ^ ) 2 L = \sum\limits*{i=1}^{N} (y*{i} - \hat{y\_{i}})^2 L = ∑ ∗ i = 1 N ( y ∗ i − y _ i ^ ) 2
= ( Y − X W ) T ( Y − X W ) = (Y-XW)^{T}(Y-XW) = ( Y − X W ) T ( Y − X W )
= Y T Y − Y T X W − W T X T Y + W T X T X W = Y^TY-Y^TXW-W^TX^TY+W^TX^TXW = Y T Y − Y T X W − W T X T Y + W T X T X W
= Y T Y − 2 W T X T Y + W T X T X W = Y^TY-2W^TX^TY+W^TX^TXW = Y T Y − 2 W T X T Y + W T X T X W
Como queremos minimizar L L L con respecto a W W W , entonces podemos ignorar el primer término "Y T Y Y^TY Y T Y " porque es independiente de W W W y resolvamos la siguiente ecuación:
∂ ( − 2 W T X T Y + W T X T X W ) ∂ W = 0 \frac{\partial (-2W^TX^TY+W^TX^TXW)}{\partial W} = 0 ∂ W ∂ ( − 2 W T X T Y + W T X T X W ) = 0
− 2 X T Y + 2 X T X W ^ = 0 -2X^TY+2X^TX\hat{W} = 0 − 2 X T Y + 2 X T X W ^ = 0
W ^ = ( X T X ) − 1 X T Y \hat{W} = (X^TX)^{-1}X^TY W ^ = ( X T X ) − 1 X T Y
Usando descenso de gradiente
Aquí está la formulación del algoritmo de descenso de gradiente:
w ∗ n + 1 = w ∗ n − l r × ∂ f ∂ w _ n w*{n+1} = w*{n} - lr \times \frac{\partial f}{\partial w\_{n}} w ∗ n + 1 = w ∗ n − l r × ∂ w _ n ∂ f
Ahora todo lo que tenemos que hacer es aplicarlo en los dos parámetros a 0 a_{0} a 0 y a 1 a_{1} a 1 (en el caso de una variable X X X ):
{ a 0 ( n + 1 ) = a 0 ( n ) − l r × ∂ L ∂ a 0 a 1 ( n + 1 ) = a 1 ( n ) − l r × ∂ L ∂ a 1 \begin{cases}
a_{0}^{(n+1)} = a_{0}^{(n)} - lr \times \frac{\partial L}{\partial a_{0}}\\
a_{1}^{(n+1)} = a_{1}^{(n)} - lr \times \frac{\partial L}{\partial a_{1}}
\end{cases} { a 0 ( n + 1 ) = a 0 ( n ) − l r × ∂ a 0 ∂ L a 1 ( n + 1 ) = a 1 ( n ) − l r × ∂ a 1 ∂ L
y sabemos que:
{ ∂ L ∂ a 0 = ∑ i = 1 N − 2 ( y i − ( a 0 + a 1 . x i ) ) ∂ L ∂ a 1 = ∑ i = 1 N − 2 x i ( y i − ( a 0 + a 1 . x i ) ) \begin{cases}
\frac{\partial L}{\partial a_{0}} = \sum\limits_{i=1}^{N} -2(y_{i} - (a_{0} + a_{1}.x_{i}))\\
\frac{\partial L}{\partial a_{1}} = \sum\limits_{i=1}^{N} -2x_{i}(y_{i} - (a_{0} + a_{1}.x_{i}))
\end{cases} ⎩ ⎨ ⎧ ∂ a 0 ∂ L = i = 1 ∑ N − 2 ( y i − ( a 0 + a 1 . x i )) ∂ a 1 ∂ L = i = 1 ∑ N − 2 x i ( y i − ( a 0 + a 1 . x i ))
Por sustitución:
{ a 0 ( n + 1 ) = a 0 ( n ) + 2 × l r × ∑ i = 1 N ( y i − ( a 0 ( n ) + a 1 ( n ) . x i ) ) a 1 ( n + 1 ) = a 1 ( n ) + 2 × l r × ∑ i = 1 N x i ( y i − ( a 0 ( n ) + a 1 ( n ) . x i ) ) \begin{cases}
a_{0}^{(n+1)} = a_{0}^{(n)} + 2 \times lr \times \sum\limits_{i=1}^{N} (y_{i} - (a_{0}^{(n)} + a_{1}^{(n)}.x_{i}))\\
a_{1}^{(n+1)} = a_{1}^{(n)} + 2 \times lr \times \sum\limits_{i=1}^{N} x_{i}(y_{i} - (a_{0}^{(n)} + a_{1}^{(n)}.x_{i}))
\end{cases} ⎩ ⎨ ⎧ a 0 ( n + 1 ) = a 0 ( n ) + 2 × l r × i = 1 ∑ N ( y i − ( a 0 ( n ) + a 1 ( n ) . x i )) a 1 ( n + 1 ) = a 1 ( n ) + 2 × l r × i = 1 ∑ N x i ( y i − ( a 0 ( n ) + a 1 ( n ) . x i ))
Prueba
¿Cuál es la fórmula del vector de parámetros óptimos en el caso de regresión lineal multidimensional?
C O V ( X , Y ) V A R ( Y ) \frac{COV(X, Y)}{VAR(Y)} V A R ( Y ) CO V ( X , Y )
C O V ( X , Y ) V A R ( X ) \frac{COV(X, Y)}{VAR(X)} V A R ( X ) CO V ( X , Y )
( X T X ) − 1 X T Y (X^TX)^{-1}X^TY ( X T X ) − 1 X T Y "correcto"
¿Por qué ponemos la derivada a 0?
Encontrar el extremo. "correcto"
Minimizar la derivada.
Conservar únicamente la parte real de la derivada.
¿Cuál es el objetivo de la regresión lineal?
Encontrar la recta que pasa por todos los puntos.
Para encontrar la línea que mejor describa los datos."correcto"
Encontrar la línea que mejor separa los datos.