Regressão Linear

Escrito por Gabriel Neves Siqueira

Imagine que você trabalha em uma imobiliária e quer entender a relação entre o tamanho de um apartamento (em metros quadrados) e seu preço. Você coletou dados de vários apartamentos vendidos recentemente e quer descobrir um padrão: será que apartamentos maiores custam mais? E se sim, quanto mais?

A regressão linear é exatamente a ferramenta que precisamos para responder essas perguntas. A ideia é simples: vamos desenhar uma linha reta que passe “no meio” dos nossos dados, de forma que ela represente o melhor possível a relação entre tamanho e preço.

Mas o que significa “no meio” dos dados? E como sabemos qual é a “melhor” linha? Vamos começar visualizando o problema:

Observando o gráfico acima, conseguimos ver claramente um padrão: conforme a área aumenta, o preço também tende a aumentar. Os pontos não estão perfeitamente alinhados em uma linha reta (afinal, o preço de um apartamento depende de muitos fatores além do tamanho), mas de fato existe uma tendência clara e consistente.

A questão que precisamos responder é a seguinte. Como podemos traçar a “melhor” linha reta que representa essa relação? Precisamos de uma linha que capture a tendência geral dos dados, minimizando as diferenças entre os preços reais e os preços que a linha prevê.

O algoritmo de regressão linear encontra matematicamente essa linha de melhor ajuste, e ela pode ser usada para fazer previsões. Por exemplo, se aparecer um apartamento de 85 \text{ m}^2 no mercado, podemos usar nossa linha para estimar um preço justo.

Vamos ver como fica essa linha de melhor ajuste:

Agora temos a linha vermelha que melhor representa a relação entre área e preço. Note como ela passa “no meio” dos pontos, equilibrando as distâncias para cima e para baixo.

A linha tem uma equação matemática simples: \text{P} = 4,89 \times \text{A} - 14,41

Essa equação nos dá duas informações importantes. Primeiro, o número 4,89 (chamado de coeficiente angular ou inclinação) nos diz quanto o preço aumenta para cada metro quadrado adicional. Neste caso, cada 1 \text{ m}^2 a mais aumenta o preço em aproximadamente  \text{R\$ } 4.890 .

Segundo, o número -14,41 (chamado de intercepto) representa o valor teórico quando a área é zero. Neste exemplo, esse valor não tem muito sentido prático (não existe apartamento com 0 \text{ m}^2), mas matematicamente é necessário para posicionar a linha corretamente no gráfico.

Com essa linha, podemos fazer previsões. Quer estimar o preço de um apartamento de 85 \text{ m}^2? Basta calcular: \text{P} = 4,89 \times 85 - 14.41 = 401,24 mil reais.

Mas ainda há uma questão importante que não abordamos. Precisamos de uma forma de medir o quão bem essa linha representa nossos dados. Será que a relação entre área e preço é forte e previsível, ou os pontos estão muito espalhados? Existe uma métrica específica que nos ajuda a quantificar isso.

Coeficiente de Correlação de Pearson

O coeficiente de correlação de Pearson, geralmente representado pela letra r, é uma medida que varia entre -1 e 1 e nos diz o quão forte é a relação linear entre duas variáveis.

Vamos entender o que cada valor significa:

  • r = 1: correlação perfeita positiva. Todos os pontos estão exatamente sobre a linha, e quando uma variável aumenta, a outra também aumenta proporcionalmente.
  • r = -1: correlação perfeita negativa. Todos os pontos estão exatamente sobre a linha, mas quando uma variável aumenta, a outra diminui proporcionalmente.
  • r = 0: sem correlação linear. Não há relação linear entre as variáveis, os pontos estão completamente espalhados.
  • Valores entre 0 e 1 (ou 0 e -1): indicam correlação parcial. Quanto mais próximo de 1 ou -1, mais forte é a relação. Quanto mais próximo de 0, mais fraca.

Para nossos dados de apartamentos, o coeficiente de correlação é r = 0,997. Isso indica uma correlação extremamente forte e positiva entre área e preço. Os pontos estão muito próximos da linha, o que significa que nosso modelo de regressão linear é muito bom para fazer previsões neste caso.

A Matemática por Trás da Regressão Linear

Esta seção requer conhecimento de cálculo diferencial, especificamente derivadas e otimização. Se você não está familiarizado com esses conceitos, pode pular esta parte sem prejuízo para o entendimento prático da regressão linear.

Até agora, vimos como a regressão linear funciona de forma intuitiva e como usar suas fórmulas para fazer previsões. Mas como o algoritmo realmente encontra essa linha de melhor ajuste? Como ele determina os valores ideais para a inclinação e o intercepto?

A resposta está em um problema de otimização matemática. Queremos minimizar o erro total entre nossas previsões e os valores reais. Para isso, precisamos usar cálculo diferencial para encontrar o ponto mínimo de uma função de custo.

A Função de Custo

Primeiro, precisamos definir matematicamente o que significa “erro” e como medir se uma linha é boa ou ruim.

Para cada ponto de dados, temos um valor real y_i (o preço real do apartamento) e um valor previsto \hat{y}_i (o preço que nossa linha prevê). O erro para esse ponto é simplesmente a diferença: e_i = y_i - \hat{y}_i.

Porém, não podemos simplesmente somar todos os erros, porque erros positivos e negativos se cancelariam. Um ponto 10 unidades acima da linha cancelaria um ponto 10 unidades abaixo, e pareceríamos ter erro zero quando na verdade temos erros grandes.

A solução é elevar os erros ao quadrado antes de somá-los. Isso tem duas vantagens: primeiro, elimina o problema dos sinais (números negativos ao quadrado ficam positivos). Segundo, penaliza erros grandes de forma mais severa (um erro de 10 contribui 100 para o custo, enquanto dois erros de 5 contribuem apenas 50 no total).

Nossa função de custo (também chamada de função de perda) é a soma dos erros quadrados:

J = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

Onde n é o número de pontos de dados que temos.

Lembre-se que nossa previsão \hat{y}_i vem da equação da linha: \hat{y}_i = mx_i + b, onde $m$ é a inclinação, b é o intercepto, e x_i é o valor de entrada (a área do apartamento).

Substituindo na função de custo:

J(m, b) = \sum_{i=1}^{n} (y_i - mx_i - b)^2

Agora temos uma função que depende de m e b. Nosso objetivo é encontrar os valores de m e b que minimizam essa função.

Minimizando a Função de Custo

Para encontrar o mínimo de uma função, precisamos encontrar os pontos onde suas derivadas são zero. Como nossa função depende de duas variáveis (m e b), precisamos calcular as derivadas parciais em relação a cada uma delas.

Vamos começar com a derivada parcial em relação a m:

\frac{\partial J}{\partial m} = \frac{\partial}{\partial m} \sum_{i=1}^{n} (y_i - mx_i - b)^2

Usando a regra da cadeia:

\frac{\partial J}{\partial m} = \sum_{i=1}^{n} 2(y_i - mx_i - b) \cdot (-x_i)

\frac{\partial J}{\partial m} = -2 \sum_{i=1}^{n} x_i(y_i - mx_i - b)

Agora a derivada parcial em relação a b:

\frac{\partial J}{\partial b} = \frac{\partial}{\partial b} \sum_{i=1}^{n} (y_i - mx_i - b)^2

\frac{\partial J}{\partial b} = \sum_{i=1}^{n} 2(y_i - mx_i - b) \cdot (-1)

\frac{\partial J}{\partial b} = -2 \sum_{i=1}^{n} (y_i - mx_i - b)

Para encontrar o mínimo, igualamos ambas as derivadas a zero:

\frac{\partial J}{\partial m} = 0 \quad \text{e} \quad \frac{\partial J}{\partial b} = 0

Isso nos dá um sistema de duas equações com duas incógnitas. Resolvendo esse sistema, chegamos às fórmulas fechadas para a regressão linear:

m = \frac{n\sum x_i y_i - \sum x_i \sum y_i}{n\sum x_i^2 - (\sum x_i)^2}

b = \frac{\sum y_i - m \sum x_i}{n}

Essas são as fórmulas que os computadores usam para calcular a linha de melhor ajuste instantaneamente. Elas garantem matematicamente que encontramos o mínimo global da função de custo.