Introdução
Dado um conjunto de dados 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 e Y i Y_{i } Y i são contínuos. O objetivo da "Regressão Linear" é encontrar a melhor linha que se ajuste a esses dados.
Em outras palavras, queremos criar o 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
onde p p p é o número de dimensões da variável X X X .
Neste artigo veremos como resolver este problema em três cenários:
Quando X é unidimensional, ou seja, p = 1 p=1 p = 1 .
Quando X é multidimensional, ou seja, p > 1 p>1 p > 1 .
Usando descida gradiente.
X X X é unidimensional (mínimo quadrado comum)
O modelo que queremos criar tem a seguinte forma:
y ^ = a ∗ 0 + a ∗ 1. x \hat{y} = a*{0} + a*{1}.x y ^ = a ∗ 0 + a ∗ 1 . x
Lembre-se de que o objetivo da regressão linear é encontrar a reta que melhor se ajusta aos dados. Em outras palavras, precisamos minimizar a distância entre os pontos de dados e a linha.
( 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
Vamos colocar:
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 o mínimo, precisamos resolver as seguintes equações:
{ ∂ 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
Começamos desenvolvendo a primeira equação:
∑ 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
Substituímos na segunda equação:
∑ 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 )
Substituímos de volta em 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 é multidimensional (mínimos quadrados comuns)
Neste caso, X i X_{i} X i não é mais um número real, mas sim um vetor de tamanho 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 )
Assim, o modelo é escrito da seguinte forma:
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
ou pode ser escrito em formato de matriz:
Y ^ = X . W \hat{Y} = X.W Y ^ = X . W
onde:
Y Y Y tem a forma ( N , 1 ) (N, 1) ( N , 1 ) .
X X X tem a forma ( N , p ) (N, p) ( N , p ) .
W W W tem a forma ( p , 1 ) (p, 1) ( p , 1 ) : este é o vetor de parâmetros ( w 1 , w 2 , … , w p ) (w_{1}, w_{2}, \dots, w_{p}) ( w 1 , w 2 , … , w p ) .
Da mesma forma que no primeiro caso, pretendemos minimizar a seguinte quantidade:
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
Novamente vamos colocar:
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 em relação a W W W , podemos ignorar o primeiro termo "Y T Y Y^TY Y T Y " porque é independente de W W W e vamos resolver a seguinte equação:
∂ ( − 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 gradiente descendente
Aqui está a formulação do algoritmo de descida 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
Agora basta aplicá-lo nos dois parâmetros a 0 a_{0} a 0 e a 1 a_{1} a 1 (no caso de uma variável 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
e 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 substituição:
{ 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 ))
Questionário
Qual é a fórmula do vetor de parâmetros ótimos no caso de regressão linear 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 "correto"
Por que colocamos a derivada em 0?
Para encontrar o extremo. "correto"
Para minimizar a derivada.
Manter apenas a parte real da derivada.
Qual é o objetivo da regressão linear?
Para encontrar a linha que passa por todos os pontos.
Para encontrar a linha que melhor descreve os dados."correto"
Para encontrar a linha que melhor separa os dados.