Skip to content

Regressão Linear

Visualização do vídeo

Visualização do vídeo

Mínimos Quadrados

Digamos que estamos anotando o tamanho de uma planta a 3 dias em uma tabela e queremos ter uma estimativa de qual será o tamanho no dia 5:

Dia Tamanho
1 1,72
2 2,73
3 2,98

Com a ideia que viemos construindo, podemos tratar dia e tamanho como duas dimensões e cada linha como um vetor, assim podemos visualizar em um gráfico:

Gráfico dia por tamanho

Por alguma experiência com crescimento de plantas e pelo gráfico até então podemos dizer que o crescimento é aproximadamente linear, isso é, respeita uma função do tipo:

\[t = ad + b\]

Onde \(t\) é a variável representando o tamanho, \(d\) é a variável representando o dia e \(\{a,b\}\) são os coeficientes. No gráfico essa equação representa uma reta que, idealmente, conteria todos esses vetores, porém no mundo real não contém.

A reta só conteria esses vetores se eles fossem colineares, poderíamos testar se os vetores são colineares se essa equação vale para os 3 vetores, ou seja, existe solução para esse sistema linear:

\[\begin{cases} 1,72 = 1a + b\\ 2,73 = 2a + b\\ 2,98 = 3a + b\\ \end{cases}\]
Dica

Nossas variáveis são temporariamente \(a\) e \(b\) antes de termos a função pronta, devemos achar os coeficientes com os valores aproximados de \(t\) e \(d\) que temos até agora.

Esse sistema não tem solução, note que a cada vetor que adicionamos, fica mais improvável desse sistema ter solução, porém se tivéssemos apenas 2 vetores teríamos uma reta.

Relembre

Soluções de um sistema linear

Porém, esse sistema ainda tem informações relevantes para o valor adequado de \(\{a,b\}\), vamos definir alguns \(\{a,b\}\) que resolvem um sistema linear similar a este (permitindo um \(t\) diferente).

\[R_1: a=0,08;b=0,53\]
\[\begin{cases} 0,61 = 1a + b\\ 0,69 = 2a + b\\ 0,77 = 3a + b\\ \end{cases}\]
\[R_2: a=-0.38;b=2,94\]
\[\begin{cases} 2,56 = 1a + b\\ 2,18 = 2a + b\\ 1,8 = 3a + b\\ \end{cases}\]
\[R_3: a=0,49;b=1,22\]
\[\begin{cases} 1,71 = 1a + b\\ 2,2 = 2a + b\\ 2,69 = 3a + b\\ \end{cases}\]

Ao plotar as retas definidas por \(\{a,b\}\) percebemos que quanto mais o sistema linear parece o original, mais a reta aproxima da reta ideal.

Gráfico de comparação de retas aproximantes

Então queremos saber qual é o \(\{a,b\}\) que resolve o sistema linear mais próximo do original. Será que podemos pensar em "próximo" como próximo espacialmente?

Vamos apelar para a visualização da álgebra linear para ter outra interpretação desse problema:

\[A\mathbf{x} = \mathbf{b}\]
\[\begin{pmatrix} 1 & 1\\ 2 & 1\\ 3 & 1 \end{pmatrix} \begin{pmatrix} a\\ b \end{pmatrix} = \begin{pmatrix} 1,72\\ 2,73\\ 2,98 \end{pmatrix}\]

Se pegarmos as 3 tentativas de \(\{a,b\}\) que fizemos anteriormente, aplicarmos na matriz e visualizarmos os vetores saídas, então veremos a similaridade com a conclusão anterior: quanto mais similar o sistema de equação mais o vetor saída está próximo do resultado ideal \(\mathbf{b}\).

Os 3 vetores saída das tentativas de \(\{a,b\}\) definem o Espaço Coluna, como \(\mathbf{b}\) não tem solução então não está no Espaço Coluna.

Como achamos o vetor saída mais próximo do resultado ideal?

Qual a menor distância entre um plano (Espaço Coluna) e um ponto \(\mathbf{b}\)?

Esse vetor saída será o vetor \(\mathbf{b}\) projetado no Espaço Coluna, logo conseguimos achar o vetor entrada pela Equação Normal.

Relembre

Projeção em subespaço

\[A^TA\mathbf{x} = A^T \mathbf{b}\]
\[\begin{pmatrix} 14 & 6\\ 6 & 3 \end{pmatrix} \begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} 16,12 \\ 7,43 \end{pmatrix} \]
\[ \begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} 0,63 \\ 1,21 \end{pmatrix} \]

Com os valores de \(a,b\) podemos montar a função que relaciona tamanho e dia, assim podemos estimar o tamanho no dia 5:

\[t = 0,63d + 1,21\]

Gráfico do mínimo quadrado


Pseudoinversa

Podemos tentar generalizar a ideia da solução dos mínimos quadrados: queremos uma "solução" para todo sistema \(A\mathbf{x} = \mathbf{b}\):

  • caso o sistema tenha uma solução, porém não conseguimos inverter \(A\)
  • caso o sistema não tenha solução
  • caso o sistema tenha infinitas soluções, porém não conseguimos inverter \(A\)

Note que já resolvemos os 2 primeiros casos, o exemplo dos Mínimos Quadrados era o segundo, porém se \(\mathbf{b}\) estivesse no Espaço Coluna então a projeção não mudaria nada e teríamos uma fórmula para calcular \(\mathbf{x}\).

Note que em um sistema comum podemos chegar a Equação Normal e isolar \(\mathbf{x}\):

\[A\mathbf{x} = \mathbf{b}\]
\[((A^TA)^{-1}A^T) A\mathbf{x} = ((A^TA)^{-1}A^T) \mathbf{b}\]
\[\mathbf{x} = ((A^TA)^{-1}A^T) \mathbf{b}\]

No 3° caso podemos usar a ideia de que um vetor saída do Espaço Coluna tem apenas um vetor entrada no Espaço Linha, assim podemos assumir que \(\mathbf{x}\) está no Espaço Linha:

Relembre

Função bijetora do Espaço Linha e Espaço Coluna

\[\mathbf{x}=A^T \mathbf{y}\]
\[A\mathbf{x}=\mathbf{b}\]
\[AA^T\mathbf{y} = \mathbf{b}\]
\[\mathbf{y} = (AA^T)^{-1} \mathbf{b}\]
\[\mathbf{x}=A^T (AA^T)^{-1} \mathbf{b}\]

O problema é que quando projetamos no Espaço Coluna assumimos que as colunas eram uma Base para o Espaço Coluna, quando projetamos no Espaço Linha assumimos que as linhas eram uma Base para o Espaço Linha, ou seja, assumimos que as colunas ou linhas eram Linearmente Independentes, porém nada garante isso como no exemplo dos mínimos quadrados.

Relembre

Matriz de Gram tem o mesmo Posto de A

Será que existe uma forma de chegar nesses mesmos resultados sem necessitar de colunas/linhas Linearmente Independentes?

Será que existe uma forma unificada de "inverter" sem necessitar de avaliar cada caso?

Vamos quebrar a matriz A em pedaços e achar um valor que anula cada pedaço e isola o \(\mathbf{x}\), uma decomposição que vale para toda matriz é a Decomposição por Valor Singular:

\[A\mathbf{x} = \mathbf{b}\]
\[A=U \Sigma V^T\]
\[U \Sigma V^T \mathbf{x} = \mathbf{b}\]
Relembre

Forma Truncada do SVD

Podemos usar a forma truncada ou não do SVD, porém cada forma terá um impeditivo em isolar o \(\mathbf{x}\) em uma operação como:

\[V \Sigma^{-1} U^T U \Sigma V^T \mathbf{x} = V \Sigma^{-1} U^T \mathbf{b}\]
  • Truncada: \(VV^T\) são Ortonormais então não resultam na identidade
  • Não truncada: a matriz \(\Sigma\) geralmente não é quadrada e nem sempre conseguimos achar uma "inversa pela esquerda"
Exemplo

No caso não truncado:

Caso \(\sigma \ne 0\), podemos achar a "inversa pela esquerda" independente de \(\Sigma\) ser quadrada:

\[\begin{pmatrix} \frac{1}{\sigma_1} & 0 & 0\\ 0 & \frac{1}{\sigma_2} & 0\\ \end{pmatrix} \begin{pmatrix} \sigma_1 & 0\\ 0 & \sigma_2\\ 0 & 0 \end{pmatrix} = \begin{pmatrix} 1 & 0\\ 0 & 1 \end{pmatrix}\]

Porém se \(\sigma = 0\), então ao invés de \(\frac{1}{\sigma}\) usamos 0, assim não chegaremos a identidade, chegaremos em algo parecido:

\[\begin{pmatrix}1&0\\0&0\end{pmatrix}\]

A notação para essa "inversa pela esquerda" ou aproximação dela será \(\Sigma^+\).

De qualquer forma, note que não faz sentido isolar \(\mathbf{x}\), já que \(\mathbf{x}\) pode ser infinitos vetores, então queremos "artificialmente" restringir \(\mathbf{x}\) a uma única solução, então vamos assumir:

\[\mathbf{x} = V \Sigma^{-1} U^T \mathbf{b}\]

Onde estamos usando a forma truncada, por isso o uso de \(\Sigma^{-1}\) e não \(\Sigma^+\).

Se testarmos essa equação acima no sistema dos Mínimos Quadrados:

\[ \begin{pmatrix} a \\ b \end{pmatrix} = V \Sigma^+ U^T \begin{pmatrix} 1.72 \\ 2.73 \\ 2.98 \end{pmatrix} \]
\[\begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} 0,63 \\ 1,21 \end{pmatrix}\]

Quase que magicamente chegamos no mesmo resultado, se continuarmos testando veremos que ela resolve os 3 casos de sistema sem depender do Posto. Vamos tentar entender esse resultado usando a forma truncada do SVD:

Relembre

Autovetores de uma matriz de Gram

Os vetores Singulares formam Bases para os Subespaços, \(A^TA\) para o Espaço Linha e o Espaço Nulo e \(AA^T\) para o Espaço Coluna e o Espaço Nulo Esquerdo.

Porém note que cortamos as bases para o Espaço Nulo e Espaço Nulo Esquerdo no SVD truncado, então:

1) \(\mathbf{y} = U^T\mathbf{b}\) será uma projeção na Base do Espaço Coluna, então o \(\mathbf{y}\) também pertencerá ao Espaço Coluna

2) \(\mathbf{z} = \Sigma^{-1} \mathbf{y}\) apenas escala o vetor, então o \(\mathbf{z}\) continuará no Espaço Coluna

3) \(\mathbf{x} = V\mathbf{z}\) faremos uma combinação linear das bases do Espaço Linha, então necessariamente \(\mathbf{x}\) pertencerá ao Espaço Linha

Note que é como se retirássemos os problemas que o Espaço Nulo e o Espaço Nulo Esquerdo causam em alguns sistemas.

A etapa 1 garante solução (exata ou por aproximação) para o sistema e a etapa 3 garante que a solução é única (\(\mathbf{x}\) pertence ao Espaço Linha), assim unificamos essas operações no que chamamos de Pseudoinversa, a notação usada é \(A^+\).


Resolução das Equações Normais

A condição para a Equação Normal ser válida: \(A\) tem colunas Linearmente Independentes. Caso contrário, use a Pseudoinversa.

Como \(A^TA\) é uma matriz Simétrica Definida Positiva, temos a oportunidade de usar a descomposição de Cholesky para resolver o sistema, porém se \(A\) for mal-condicionada, então a multiplicação \(A^TA\) será muito mais mal-condicionada.

Outra forma de resolver é pela decomposição QR, note que conseguimos cortar algumas multiplicações de matrizes densas, então nosso condicionamento será baixo:

\[R^TQ^TQR\mathbf{x} = R^TQ^T \mathbf{b}\]
\[R\mathbf{x} = Q^T \mathbf{b}\]

A resolução A=LU terá o mesmo problema de condicionamento da Cholesky, porém com um número de operações maior, então não temos motivo para escolher essa forma.


<Anterior | Próximo>