Como funciona uma Regressão Linear?

Uma introdução sobre Regressão Linear

Carlos Alberto Bonfim
Data Hackers
7 min readFeb 18, 2021

--

Fig: Analisando a regressão linear

O objetivo desse artigo, é demonstrar os conceitos e uma simples demonstração do algoritmo em Python.

Antes de definirmos o que é uma Regressão Linear, vamos entender primeiro sobre o conceito de correlação.

Breve definição sobre Correlação

A correlação entre duas variáveis indica a que o valor da variável dependente y altera de acordo com a variável independente x, vamos seguir com um exemplo:

O peso (variável dependente y) de uma pessoa varia de acordo com a sua altura (variável independente x).

Assim podemos prever seu peso, quando uma pessoa chegar a uma determinada altura, digamos 1.39 m, seu peso será 30 Kg ou a altura de 1.62 m resulta seu peso em 64 Kg aproximadamente, por exemplo, conforme ilustrado na fig1.

Fig1: Peso x Altura - Adaptado - https://statisticsbyjim.com/basics/correlations/

Interpretando a Correlação

Neste caso, falaremos do coeficiente de correlação de Pearson. O coeficiente de correlação indica a força e direção do relacionamento linear entre duas variáveis contínuas.

Os valores da força de correlação podem variar de -1 à 1, no qual temos a seguinte definição:

  • O valor de -1 indica a correlação mais forte negativa, ou seja, o relacionamento linear é perfeito e quanto sua direção, indica que quando o valor de uma variável aumenta a outra tende a diminuir (Fig2 - a).
  • O valor de 0 indica que não existe relacionamento entre as variáveis e a direção é uma reta próximo de uma constante (Fig2 - b).
  • O valor de 1 indica a correlação mais forte positiva, ou seja, também existe um relacionamento linear perfeito entre as variáveis, e a sua direção mostra que quando um valor aumenta o outro também tende a aumentar (Fig2 - c).
Fig2: Tipos de Correlação

Só que nem sempre teremos uma correlação perfeita, então podemos analisar a força dessa correlação, com base em uma escala, aproximadamente conforme Fig3:

Fig3: escala de correlação

Após essa breve introdução sobre correlação, vamos iniciar o papo sobre Regressão.

Definição de Regressão

Iniciei o assunto sobre correlação porque de uma forma simplificada, a Regressão leva Correlação para um próximo nível.

Vamos pensar que ao invés de analisar a força de correlação entre as variáveis, poderíamos descrever a relação através de uma equação.

Podemos usar essa equação para descrever o quanto aumenta o peso em cada unidade adicionada à altura e prever pesos para alturas específicas.

Regressão Linear

Conforme definido acima, podemos dizer que Regressão Linear é simples e fácil de entender e é um dos algoritmos supervisionados de Machine Learning utilizado para análises preditivas.

Modelo Representativo

A Regressão Linear pode ser definida pela expressão abaixo:

y=b0 + b1.X

Onde:

  • y: é a variável dependente, ou seja, o valor previsto.
  • X: é a variável independente, ou seja, a variável preditora.
  • b0: é o coeficiente que intercepta ou que corta o eixo y.
  • b1: é o coeficiente que define a inclinação da reta.

O objetivo é encontrar as melhores estimativas para os coeficientes, que minimizam os erros na previsão de y a partir de X.

Podemos estimar b1 como:

b1 = soma(( Xi - média(x) ) * ( yi - média(y) )) / soma((xi - média(x))²)

Onde:

  • média(): é o valor médio da variável do conjunto de dados.
  • Xi e yi: se referem ao fato de que precisamos repetir esses cálculos em todos os valores em nosso conjunto de dados e i se refere ao i’ésimo valor de x ou y.

E b0 podemos estimar como:

b0 = média(y) - b1 * média(x)

Erro Padrão

O erro padrão sobre a linha de regressão é uma medida do valor médio que a equação superestimou ou subestimou (Fig4), assim podemos analisar o coeficiente de determinação (R²), quanto maior esse valor, menor o erro padrão, com isso as previsões serão mais precisas provavelmente.

Fig3: Erro Padrão estimado

Podemos acrescentar o erro padrão à equação e, de uma forma geral, ficaria da seguinte forma:

y = b0 + b1.X1 + e

Onde:

  • e: é o erro padrão.

Coeficiente de Determinação R²

O valor do R² ou R-squared é uma medida estatística que nos mostra o quão próximos os dados estão ajustados à linha de regressão. É um valor de 0 à 1 que, quanto mais próximo de 1, melhor o ajuste e menor o erro associado.

O R² nos mostra a porcentagem da variação da variável resposta que é explicada por um modelo linear, podendo ser descrito por:

R² = Variação explicada / Variação total

  • 0% indica que o modelo não explica nada da variabilidade dos dados de resposta ao redor de sua média.
  • 100% indica que o modelo explica toda a variabilidade dos dados de resposta ao redor de sua média.

Implementando a Regressão Linear em Python

Para uma demonstração, farei passo-a-passo da construção de um modelo simples em python.

Vamos iniciar importando as bibliotecas, usaremos o numpy para criar alguns valores fictícios para demonstração, o matplotlib para criação do gráfico e o algoritmo Regressão Linear do Scikit-learn.

Agora vou criar duas listas de valores representando X e y.

O modelo será instanciado e em seguida treinado com os valores criados.

Perfeito! Lembram-se dos coeficientes que compõe a equação da Regressão Linear, podemos extrair cada um deles agora.

Bom, vamos demonstrar o resultado de duas formas e comparar:

  • Resultado criando a equação: acima, os coeficientes foram colocados cada um em objeto, então podemos utiliza-los para montar a equação:
  • Resultado com o modelo criado: agora, o resultado com base no método predict.

As duas formas deram os mesmos resultados, com a diferença somente nas quantidade de casas decimais.

Então vamos plotar o scatterplot e a linha de regressão.

Por fim, veremos o resultado do R² ou coeficiente de determinação.

O modelo explica aproximadamente 0.9091 ou 91.91% da variável resposta.

Conclusão

A Regressão Linear é um modelo muito utilizado para prever a relação entre duas ou mais variáveis. Neste artigo o objetivo foi demonstrar os conceitos e como implementar o modelo em python de uma forma bem simples.

Podemos também, criar facilmente regressão com múltiplas variáveis e também utilizar outras métricas de avaliação em tópicos mais avançados.

Referências

Regression Analysis - An Intuitive Guide for Using and Interpreting Linear Models - Jim Frost, MS.

Blog Minitab: https://blog.minitab.com/pt/analise-de-regressao-como-interpretar-o-r-quadrado-e-avaliar-a-qualidade-de-ajuste#:~:text=O%20R%2Dquadrado%20%C3%A9%20uma,m%C3%BAltipla%20para%20a%20regress%C3%A3o%20m%C3%BAltipla.

Machine Learning Mastery: https://machinelearningmastery.com/simple-linear-regression-tutorial-for-machine-learning/

Real Python: https://realpython.com/linear-regression-in-python/

Oper Data: https://operdata.com.br/blog/coeficientes-de-correlacao/

Quer saber mais sobre mim e conhecer meu portfolio de projetos, acesse: https://carlosbonfim.com/

--

--

Carlos Alberto Bonfim
Data Hackers

Engenheiro, Cientista de dados e Analista de Dados, utilizo Python e Power BI, acesse os meus perfis e portfolio: https://linktr.ee/carlosbonfim