Objetivos de aprendizagem
- O1. Derivar a regressão linear como minimização do erro quadrático.
- O2. Obter as equações normais da reta e calcular a inclinação e o intercepto ótimos.
- O3. Interpretar os coeficientes de um modelo linear — e dizer o que eles não significam.
- O4. Reconhecer as situações em que o modelo linear é a escolha certa, não a escolha simplória.
Este capítulo trata só de regressão linear. A regressão logística — que tem "regressão" no nome e classifica — ganhou capítulo próprio: 28 — Regressão Logística. Compartilham a forma
w·x + be quase nada além disso: perdas diferentes, saídas em unidades diferentes, e uma tem solução fechada enquanto a outra não tem.
O problema: o modelo que todo mundo aprende e quase ninguém respeita
O capítulo 07 mostrou o modelo linear perdendo feio: 0,4963 de AUC contra 0,9392 do boosting. Se você leu aquele capítulo primeiro, saiu dele com a impressão de que linear é o modelo dos iniciantes.
É a impressão errada, e este capítulo existe para corrigi-la. Naquele experimento, o dado foi construído com uma fronteira irregular — o terreno onde a reta não tem chance. Troque o terreno e a conclusão vira:
- com poucos dados por atributo, o linear frequentemente ganha, porque tem menos o que estimar errado;
- quando a decisão precisa ser auditada, ele é o único que entrega um número por atributo que alguém consegue defender numa reunião;
- quando a saída vira probabilidade que multiplica dinheiro, ele nasce razoavelmente calibrado, enquanto ensembles precisam de correção posterior (cap. 04).
E há a razão pedagógica: é no modelo linear que otimização, regularização e interpretação aparecem na forma mais limpa. Quem não entende gradiente aqui não vai entender numa rede de doze camadas.
De onde isto veio
O aperto. Virada do século XVIII para o XIX, astronomia. Um cometa ou um planeta é observado várias vezes, por instrumentos diferentes, em noites diferentes — e nenhuma das observações concorda com as outras. A órbita verdadeira é uma só; os dados são muitos e discordantes. O astrônomo precisa de uma curva, e não tem critério defensável para escolhê-la.
O que se fazia antes. Escolhia-se a olho, descartava-se a observação que parecia pior, ou faziam-se médias de subconjuntos convenientes. Todos os caminhos tinham o mesmo defeito: dois astrônomos competentes, com os mesmos dados, chegavam a órbitas diferentes — e não havia como decidir quem estava certo.
A virada. Trocar "a melhor curva" por uma regra explícita do que significa melhor: aquela que torna mínima a soma dos quadrados dos desvios. A regra não é mais verdadeira que as outras — ela é pública. Dados os mesmos números, devolve a mesma resposta para qualquer pessoa.
A ideia reaproveitável. Uma função de perda é um critério de arbitragem, não uma descoberta sobre o mundo. Ela existe para tornar a escolha reproduzível e discutível. É por isso que a pergunta "por que erro quadrático, e não valor absoluto?" tem resposta honesta — conveniência matemática mais uma hipótese sobre o ruído — e não a resposta "porque é o certo". Trocar a perda é trocar o critério de arbitragem: decisão de projeto, nunca detalhe técnico.
O nome. Mínimos quadrados — moindres carrés — foi batizado por Legendre, e o nome é literalmente a definição do critério.
A disputa de prioridade mais famosa da estatística
Legendre publicou primeiro, em 1805, em Nouvelles méthodes pour la détermination des orbites des comètes, e deu ao método o nome que ficou. Gauss publicou em 1809 (Theoria motus corporum coelestium) afirmando usar o método desde 1795.
Legendre reagiu mal, e o argumento dele é o que interessa aqui: prioridade se estabelece por publicação. Em 1820 atacou publicamente a reivindicação. Gauss entendia prioridade como ser o primeiro a descobrir, e apoiava-se em registros privados e correspondência — Olbers (1816) e Bessel (1832) publicaram notas confirmando ter visto o método com ele antes. A avaliação histórica moderna é que Gauss provavelmente tinha o método antes e falhou em comunicá-lo.
O espelho disto está no capítulo 18. Lá, quem leva o crédito pelo backpropagation são os últimos (Rumelhart et al., 1986), não o primeiro (Linnainmaa, 1970), e Schmidhuber resume: não é o primeiro inventor que leva o crédito, é o último reinventor. Aqui o caso é o inverso exato — o primeiro descobridor perde para o primeiro publicador.
Juntos, os dois dizem o que nenhum diz sozinho: crédito não segue descoberta, segue comunicação. Vale para o seu trabalho: o experimento que você não registrou, datou e tornou reproduzível é, na prática, um experimento que não aconteceu. É a razão de este livro exigir script, seed e saída colada — e não é burocracia.
Procedência das afirmações desta seção:
| Selo | Afirmação |
|---|---|
| ✓ᵐ | Legendre (1805) e Gauss (1809): obra, ano e conteúdo geral. Nenhuma das duas lida no original |
| ✓ᵐ | Stigler, "Gauss and the Invention of Least Squares", Annals of Statistics, 1981 — localizado e identificado, não lido |
| ⏳ | As notas de Olbers (1816) e Bessel (1832), e o ataque público de Legendre em 1820 |
| ⏳ | A avaliação de que Gauss tinha o método antes mas falhou em comunicá-lo |
| 📖 | A ideia reaproveitável ("perda é critério de arbitragem") e a ligação com o capítulo 18 |
Fundamentos: regressão linear como minimização
O modelo é uma reta (ou um plano, ou um hiperplano):
Resta escolher os
Por que ao quadrado, e não em valor absoluto? Três razões, em ordem de honestidade:
- É diferenciável em todo ponto, o que faz o otimizador funcionar sem casos especiais. O valor absoluto tem um bico em zero.
- Tem solução fechada. Derivando e igualando a zero, chega-se às equações normais — um sistema linear que se resolve de uma vez, sem iteração.
- Pune o erro grande desproporcionalmente, o que às vezes é o que você quer e às vezes não é. Se houver outliers, o erro quadrático os persegue — e aí o erro absoluto é a escolha certa. Esta é uma decisão de modelagem, não uma constante da natureza.
A solução fechada existe e está implementada na etapa 05, em 25 linhas de eliminação de Gauss. Vale conferir: gradiente e solução fechada chegam ao mesmo lugar — no experimento, com diferença menor que 0,05 em cada coeficiente. Isso desmistifica o gradiente, que passa a ser um jeito de resolver, não o jeito.
Se a solução fechada existe e é exata, por que usar gradiente? Porque ela envolve inverter uma matriz
— inviável com muitos atributos — e porque ela não existe para a regressão logística (capítulo 28). O gradiente é a ferramenta geral; a solução fechada é o caso de sorte.
05-e1escolha umaPor que a regressão linear minimiza o erro ao quadrado em vez do erro absoluto?
Ponha a reta à mão
Antes da fórmula, o gesto. Arraste a reta até achar que está boa, e olhe o número subir e descer enquanto você mexe.
05-l1Cada segmento cinza é um resíduo: a distância vertical de um ponto até a sua reta. O laboratório mostra cinco medidas de erro ao mesmo tempo, e marca uma como a que estamos minimizando.
Três coisas para tentar, nesta ordem:
- Minimize no olho. Arraste as alças até o EQM parar de cair. Anote o valor.
- Ligue "Mostrar os quadrados". Agora o erro tem área: cada quadrado tem lado igual ao resíduo, e o que você está minimizando é a soma das áreas. Repare no que acontece quando um único ponto fica longe.
- Revele a reta ótima. A distância entre a sua e a dela é o preço do olho. Depois clique em "Ajustar automaticamente" e compare os coeficientes com o que você tinha.
Uma pergunta para levar para a próxima seção: por que existe uma reta ótima única, e como o computador a encontra sem tentar todas?
A dedução, em cinco passos
O laboratório mostrou que existe um fundo do poço. Esta seção mostra por que ele existe e como chegar nele por conta, sem tentativa e erro. É a diferença entre usar a fórmula e saber de onde ela vem.
Com um atributo, a reta é
Passo 1 — por que há um mínimo, e um só.
Passo 2 — no fundo, as derivadas se anulam. Derivando em relação a
onde
A reta ótima passa pelo centro de massa dos dados — sempre, em qualquer conjunto. É um resultado que se vê no laboratório: gire a reta ótima em torno de um ponto e ele será
Passo 3 — a segunda condição. Derivando em relação a
Os resíduos são ortogonais ao atributo. Traduzindo: o que sobrou de erro não tem mais nada de linear em
Passo 4 — resolver o sistema. Substituindo
Duas contas — uma soma de produtos e uma soma de quadrados — e a reta está pronta. Sem iteração, sem taxa de aprendizado, sem critério de parada.
Passo 5 — o que a fórmula avisa. O denominador é a variação de
Isto é a versão com um atributo do que a etapa 05 do
ml-zerofaz paraatributos. Lá as duas condições viram um sistema — as equações normais — resolvido por eliminação de Gauss. A ideia é idêntica: derivar, igualar a zero, resolver. O que cresce é a álgebra, não o conceito.
05-e7responda com um númeroQuatro pontos: (1, 2), (2, 3), (3, 5) e (4, 6).
Calcule a inclinação
Na regressão logística a leitura é outra: o coeficiente multiplica a razão de chances, não a saída. Está no capítulo 28, e confundir as duas é o erro de interpretação mais comum deste livro.
As quatro coisas que ele não diz
- Não diz causalidade. "Mantendo tudo mais constante" é uma operação matemática sobre a equação ajustada, não uma intervenção no mundo. Se você mudar
de fato, as outras variáveis mudam junto — e o modelo não sabe disso. - Não é comparável entre atributos sem padronização. Um coeficiente de 0,003 para renda em reais e 2,5 para número de filhos não diz que filhos importam mais. Compare coeficientes só depois de padronizar — e mesmo assim com cuidado.
- Não é confiável sob colinearidade. Quando dois atributos são altamente correlacionados, o modelo pode dar peso alto a um e negativo ao outro, ou trocá-los completamente com uma pequena mudança nos dados. O erro não piora; a interpretação vira ruído. É o modo de falha mais traiçoeiro do modelo linear, porque a métrica não avisa.
- Não vale fora da faixa observada. Extrapolar uma reta é a forma mais fácil de produzir uma previsão absurda com aparência de rigor.
O caso da limonada
A lista acima é fácil de ler e difícil de acreditar. Esta seção existe para você produzir o erro antes de aceitar que ele é um erro.
O conjunto está em ml-zero/dados/limonada/: 365 dias de uma barraca de limonada, com o tempo que fez, quantos panfletos foram distribuídos, o preço praticado e quantos copos saíram. Sem valor faltante. O dado é sintético — e é por isso que serve: as armadilhas aparecem limpas, sem ruído para escondê-las.
Comece pelo que todo mundo faz — a matriz de correlação com a variável resposta:
| atributo | correlação com vendas |
|---|---|
temperatura |
+0,990 |
precipitacao |
−0,909 |
panfletos |
+0,805 |
preco |
+0,513 |
Calor vende, chuva atrapalha, panfleto ajuda. E preço mais alto vende mais.
A última linha é onde o relatório morre. Ela sugere uma recomendação de negócio — aumente o preço — que é o oposto do que a barraca deve fazer. Antes de ler adiante, olhe o dado:
| preço | dias | temperatura média | vendas médias | meses em que aparece |
|---|---|---|---|---|
| 0,30 | 303 | 57,0 | 23,7 | jan–jun, set–dez |
| 0,50 | 62 | 78,8 | 33,1 | só julho e agosto |
O preço subiu no verão. preco não é uma alavanca de decisão: é um termômetro disfarçado. A correlação de +0,513 mede o calor de julho, não a disposição do freguês a pagar.
O passo que deveria salvar, e não salva
A resposta de manual é "controle pelas outras variáveis". Ajustando tudo junto:
vendas = 3,192
+ 0,3692 · temperatura
− 2,2460 · precipitacao
+ 0,0188 · panfletos
+ 2,4143 · preco R² = 0,982
O coeficiente do preço continua positivo. Controlar pela temperatura não desfez nada — porque a temperatura média não captura ser julho, e o que sobrou de julho continua morando dentro de preco.
Controlar por uma variável só remove o confundimento que aquela variável mede. Se o confundidor real é "estação", e você mediu "temperatura do dia", a regressão devolve um número com aparência de rigor e sinal invertido. Nenhuma métrica avisa: o R² é 0,982.
Este é o item 1 da lista anterior — não diz causalidade — em números, e não em advertência.
E o item 3, de brinde
temperatura e panfletos correlacionam +0,798: em dia quente, distribuíam-se mais panfletos. O coeficiente do panfleto sai em 0,0188 — ou seja, 53 panfletos para um copo a mais. Lido como efeito da panfletagem, é falso: parte do que ele mede é simplesmente o calor daquele dia.
Colinearidade não estraga a previsão. Estraga a leitura — e é o modo de falha mais traiçoeiro do modelo linear, porque o erro de validação não muda.
Reproduza
import pandas as pd
df = pd.read_csv("ml-zero/dados/limonada/limonada.csv", parse_dates=["data"])
df.corr(numeric_only=True)["vendas"] # a tabela ingênua
df.groupby("preco")[["temperatura", "vendas"]].mean() # a revelação
df.assign(mes=df.data.dt.month).groupby("preco").mes.unique()
Agora tente o conserto óbvio: isolar um período em que o preço varie sem a estação variar junto, e ajustar só ali.
Ele não existe. Rode e veja:
df.assign(mes=df.data.dt.month).groupby("mes").preco.nunique() # tudo 1
Nenhum mês do ano tem mais de um preço. São 0,30 de janeiro a junho e de setembro a dezembro, 0,50 nos 62 dias de julho e agosto — exatamente os dois meses inteiros. Restringir a julho e agosto não isola o efeito do preço: deixa o preço constante, e um atributo que não varia não tem coeficiente.
O confundimento aqui é perfeito: preço e estação são a mesma variável, com dois nomes. Não há recorte, controle nem modelo que separe as duas — a informação não está no dado, e nenhuma técnica a inventa. Estimar efeito de preço exigiria variar o preço de propósito em dias comparáveis: cobrar 0,30 e 0,50 dentro do mesmo mês.
Esta é a resposta menos confortável e a mais honesta que a análise pode dar: com estes dados, não dá — e aqui está o que precisaria ser coletado.
05-e4responda com um númeroPelo ajuste múltiplo acima, quantos panfletos precisam ser distribuídos para vender um copo a mais? Responda com um número inteiro aproximado.
05-e5escolha umaNa regressão múltipla da limonada, preco fica com coeficiente +2,41 mesmo com temperatura no modelo. Qual é a explicação correta?
Quando o linear é a escolha certa
Não como consolo, e sim como decisão de engenharia:
| Situação | Por quê |
|---|---|
| Poucos dados por atributo | menos parâmetros, menos variância. Com 200 linhas e 50 colunas, o ensemble decora |
| Necessidade de auditoria | um número por atributo, defensável e questionável. Exigência regulatória em crédito e seguro |
| Probabilidade que vira dinheiro | sai razoavelmente calibrado; ensembles frequentemente não (cap. 04) |
| Linha de base obrigatória | é a régua contra a qual o modelo complexo precisa se justificar |
| Latência apertada | uma multiplicação de vetores; ordens de grandeza mais rápido que uma floresta |
O último ponto tem um corolário que vale sozinho: sempre treine um linear primeiro. Ele custa minutos e responde à pergunta que importa antes de qualquer outra — "quanto do sinal é simplesmente linear?". Se o modelo complexo ganha pouco dele, você acabou de descobrir que o problema é fácil e que o resto é custo de manutenção.
05-e6responda com suas palavrasA dona da barraca de limonada quer decidir o preço do próximo verão e pede ajuda. Você tem os 365 dias do conjunto acima e um modelo linear com R² de 0,982.
Escreva a resposta que você daria a ela — em até seis linhas, sem jargão. Diga o que o modelo serve para responder, o que ele não serve, e o que você precisaria para responder a pergunta que ela fez.
Mão na massa
A etapa 05–06 do ml-zero implementa, em biblioteca padrão:
RegressaoLinearcom os dois caminhos — solução fechada por eliminação de Gauss e gradiente — para você conferir que chegam ao mesmo lugar;Padronizadorque aprende no treino e aplica ao teste — o vazamento do capítulo 02 tornado difícil de cometer.
A mesma etapa serve ao capítulo 06, porque são o mesmo objeto por dois ângulos: o 05 pergunta que função o modelo representa; o 06, como se chega aos coeficientes. A RegressaoLogistica, que também mora ali, é do capítulo 28.
Notebook pronto para executar — regressao_limonada.ipynb · abrir no Colab
O caso da limonada do começo ao fim: a correlação que sugere aumente o preço, a descoberta de que o preço é um termômetro disfarçado, o controle que não conserta, e a verificação de que nenhum mês tem dois preços — a informação não está no dado.
Na sua máquina:
pip install notebookejupyter notebook, ou abra a pasta no VS Code. O notebook não precisa do repositório clonado — se você estiver no Colab, ele baixa sozinho os arquivos de que precisa. Como rodar a trilha inteira:ml-zero.
Síntese — o que levar
- Regressão linear minimiza erro quadrático — por diferenciabilidade e solução fechada, não por ser intrinsecamente mais correto.
- A dedução dá duas condições: a soma dos resíduos é zero (a reta passa pelo centro de massa) e os resíduos são ortogonais ao atributo (não sobrou nada de linear em
). -
, e o denominador avisa: atributo que não varia não tem coeficiente. - Gradiente e solução fechada chegam ao mesmo lugar. O gradiente é a ferramenta geral; a fechada é o caso de sorte.
- Coeficiente não é causa, não é comparável sem padronização, não é estável sob colinearidade, e não vale fora da faixa observada.
- Treine sempre um linear primeiro. Ele responde "quanto do sinal é simplesmente linear?" em minutos.
Verificação
- Mostre, sem consultar o texto, por que a reta de mínimos quadrados passa necessariamente pelo ponto
. - Você tem 180 linhas e 60 atributos. Que família de modelo você tenta primeiro, e por quê?
- Dois atributos do seu modelo são quase idênticos. O erro de validação está ótimo. O que pode estar errado mesmo assim?
- No laboratório, o que aconteceria com a reta ótima se todos os pontos tivessem o mesmo
? Responda pela fórmula, não pelo desenho.