A regressão linear é o “Olá Mundo” dos modelos preditivos: simples de entender, rápida de treinar e poderosa para descobrir relações lineares entre variáveis. Neste post vamos aprender como fazer um modelo de regressão linear em Python.

A regressão linear é uma forma fundamental e amplamente utilizada de análise preditiva. Ela busca responder a duas questões essenciais: (1) quão bem um conjunto de variáveis preditoras consegue prever uma variável de resultado (dependente ou critério); e (2) quais variáveis específicas se destacam como preditoras significativas do resultado, e como seus coeficientes beta — que refletem magnitude e direção — influenciam esse resultado. Além disso, a regressão linear utiliza esses coeficientes para descrever a dinâmica entre uma variável dependente e uma ou mais variáveis independentes.

Preparando o Ambiente Virtual

Antes de começar o nosso código, vamos criar um ambiente virtual. Se você já tem um ambiente pronto e quer utilizá-lo, tudo bem. Somente ativá-lo.

# para mac ou linux
source <nome do seu ambiente>/bin/activate

# para windows
<nome do seu ambiente>\Scripts\activate

Se ainda tiver alguma dúvida de como criar e ativar o seu ambiente, você pode ler mais aqui.

Importando os Dados

Vamos começar a importar os pacotes necessários para este projeto.

import pandas as pd

Pandas é uma biblioteca Python de código aberto amplamente usada para análise e manipulação de dados. Ela oferece estruturas de dados poderosas e flexíveis — principalmente Series e DataFrames — projetadas para tornar o trabalho com dados estruturados intuitivo e eficiente.

Próximo, precisamos importar os dados que vamos usar. Nesse caso, eu criei uma planilha eletrônica com duas colunas. Uma mostrando a idade e a outra o salário anual.

dados = pd.read_excel("idade_salario.xlsx")
dados.head()

Antes de importar, tenha certeza que a spreadsheet está no mesmo arquivo onde o seu Jupyter Notebook está. Caso contrário, você terá que colocar o local inteiro.

O comando final exibe as primeiras cinco linhas do arquivo.

Vantagens do Pandas para Excel

  • Leitura automática de formatos Excel (.xlsx, .xls)
  • Conversão inteligente de tipos de dados
  • Facilidade de manipulação posterior

Preparando os Dados para o Modelo Linear

Antes de criar nosso modelo, precisamos preparar os dados adequadamente:

X = dados["idade"]
y = dados["salario_anual"]

# Reshape dos dados para compatibilidade com sklearn
reshaped_X = X.values.reshape(-1, 1)

Por que o Reshape?

O scikit-learn espera que os dados de entrada tenham formato bidimensional. O reshape(-1, 1) transforma nosso array unidimensional em uma matriz, com:

  • -1: Número automático de linhas
  • 1: Uma coluna

Construindo o Modelo de Regressão Linear

Antes de criar o modelo, vamos importar os pacotes matemáticos necessários.

from sklearn.linear_model import LinearRegression

Agora vamos criar e treinar nosso modelo:

# Criando o modelo
modelo = LinearRegression()

# Treinando o modelo
modelo.fit(reshaped_X, y)

# Avaliando a performance
score = modelo.score(reshaped_X, y)
print(f"R2 Score: {score:.4f}")

Interpretando o R² Score

O R² (coeficiente de determinação) indica quanto da variabilidade dos dados é explicada pelo modelo. No nosso caso, obtivemos aproximadamente 0.7516, significando que o modelo explica cerca de 75% da variação nos salários baseado na idade.

Fazendo Predições

Com o modelo treinado, podemos fazer predições:

# Gerando predições
resultado = modelo.predict(reshaped_X)

Essas predições nos mostram os valores de salário que o modelo estima para cada idade em nosso dataset.

Visualização dos Resultados

A visualização é crucial para entender nossos dados e validar o modelo:

import matplotlib.pyplot as plt

plt.scatter(X, y)

modelo de regressao linear em python

Podemos também fazer o gráfico um pouco maior e adicionar rótulos. Também vamos fazer uma linha vermelha para nos mostrar as nossas predições.

plt.xlabel("Idade")
plt.ylabel("Salário")

plt.scatter(X, y)

plt.plot(X, resultado, color="red")

modelo de regressao linear em python

Insights e Conclusões

O que aprendemos com os dados?

  1. Correlação Positiva: Existe uma relação clara entre idade e salário
  2. Modelo Eficaz: Com R² de 0.75, o modelo tem boa capacidade preditiva
  3. Linearidade: A relação segue aproximadamente um padrão linear

Conclusão

A automação do Excel com Python oferece possibilidades incríveis para análise de dados. Com apenas algumas linhas de código, conseguimos criar um modelo de regressão linear e mais:

  • Ler dados diretamente do Excel
  • Criar um modelo preditivo
  • Visualizar resultados de forma profissional
  • Obter insights valiosos sobre nossos dados

Este é apenas o começo do que é possível fazer com Python na análise de dados. A combinação de pandas, scikit-learn e matplotlib fornece uma base sólida para projetos mais complexos de ciência de dados.