Regressão Linear
A regressão linear é o algoritmo mais antigo deste curso — Legendre publicou os mínimos quadrados em 1805 para ajustar órbitas de cometas, Gauss alegou tê-los usado antes, e os estudos de hereditariedade de Galton (1886) deram nome à "regressão". Dois séculos depois, ela continua sendo o primeiro modelo a experimentar em qualquer problema de regressão: rápido, interpretável e uma baseline surpreendentemente forte.
O modelo
Prever um alvo contínuo como uma soma ponderada de atributos:
- \(w_j\): a variação em \(\hat{y}\) por unidade de variação em \(x_j\), mantendo os outros atributos fixos;
- \(w_0\) (intercepto/viés): a previsão quando todos os atributos são zero.
Em forma matricial, com uma coluna inicial de 1s absorvida em \(X\): \(\hat{y} = Xw\).
Mínimos quadrados
Escolha \(w\) para minimizar a soma dos resíduos ao quadrado — as distâncias verticais ao quadrado entre os dados e a reta ajustada:
Por que quadrados? Elevar ao quadrado penaliza fortemente erros grandes, gera um objetivo suave (diferenciável) e — sob ruído gaussiano — coincide com a estimação de máxima verossimilhança.
A solução em forma fechada
Igualando o gradiente a zero, \(\nabla_w J = -2X^\top(y - Xw) = 0\), obtemos as equações normais:
Para a regressão simples (um atributo) isso se reduz às fórmulas que vale a pena memorizar:
— a inclinação é a correlação reescalonada pelos desvios padrão, e a reta sempre passa por \((\bar{x}, \bar{y})\).
O gráfico de resíduos (à direita) é o diagnóstico padrão: os resíduos devem parecer ruído sem estrutura em torno de zero. Curvatura sugere um termo não linear ausente; um formato de funil sugere variância não constante; resíduos extremos isolados apontam para outliers (lembre-se do quarteto de Anscombe).
from sklearn.linear_model import LinearRegression
model = LinearRegression().fit(X_train, y_train)
model.coef_, model.intercept_
y_pred = model.predict(X_test)
Sinta o ajuste — arraste os pontos e observe a reta perseguir o SSE mínimo. Depois arraste um ponto para bem longe e veja o quanto um único outlier pode puxar a reta (lembre-se do conjunto 3 de Anscombe):
Quando a forma fechada tem dificuldade
Inverter \(X^\top X\) custa \(O(d^3)\) e falha quando os atributos são perfeitamente colineares. Para problemas enormes ou malcondicionados, passamos para o gradiente descendente e a regularização — a próxima aula.
Suposições por trás das inferências
As previsões do OLS exigem pouco; mas interpretar coeficientes e barras de erro se apoia nas suposições clássicas:
- Linearidade — a relação verdadeira é (aproximadamente) linear nos atributos;
- Independência — os resíduos não são correlacionados entre si (cuidado com séries temporais);
- Homoscedasticidade — a variância dos resíduos é constante ao longo da faixa de \(\hat{y}\);
- Normalidade dos resíduos — necessária para intervalos de confiança e p-valores exatos;
- Sem multicolinearidade severa — atributos altamente correlacionados tornam os coeficientes individuais instáveis (sua soma pode estar bem determinada enquanto cada um oscila muito).
Medindo a qualidade da regressão
Com resíduos \(e_i = y_i - \hat{y}_i\):
| Métrica | Fórmula | Leitura |
|---|---|---|
| MAE | \(\frac{1}{n}\sum \lvert e_i \rvert\) | erro médio nas unidades do alvo; robusto a outliers |
| MSE | \(\frac{1}{n}\sum e_i^2\) | pune erros grandes; o objetivo de treino |
| RMSE | \(\sqrt{\text{MSE}}\) | como o MSE, mas de volta às unidades do alvo |
| R² | \(1 - \frac{\sum e_i^2}{\sum (y_i - \bar{y})^2}\) | fração da variância explicada; 1 = perfeito, 0 = não melhor que prever \(\bar{y}\) |
O R² pode ser negativo em dados de teste — o modelo é então pior que a baseline constante \(\bar{y}\). Sempre compare com essa baseline (DummyRegressor): é constrangedor com que frequência um modelo sofisticado mal a supera.
Avalie em dados separados
Todas as métricas acima só têm sentido em dados que o modelo não viu — o tema de Validação & Vazamento de Dados.
Material de aula
Notebook da aula (em português)
Notebook prático usado em sala — Aula 09 — Regressão: abrir no Colab