11  Aplicações Avançadas

A regressão linear pode ser aplicada em diversos contextos complexos, indo além de suas aplicações básicas. Este capítulo explora algumas dessas aplicações avançadas, incluindo regressão polinomial, comparação entre regressão linear e logística, e o uso em séries temporais.

11.1 Regressão Polinomial

A regressão polinomial é uma extensão da regressão linear que permite modelar relações não lineares ao incluir termos polinomiais das variáveis independentes.

11.1.1 Definição e Uso

A equação de regressão polinomial de ordem \(n\) é dada por:

\[y = \beta_0 + \beta_1x + \beta_2x^2 + \cdots + \beta_nx^n + \epsilon\]

Onde os termos polinomiais (\(x^2, x^3, \ldots, x^n\)) capturam a curvatura nas relações entre variáveis.

11.1.2 Implementação em Python

from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline

# Dados de exemplo
x = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y = np.array([1, 4, 9, 16, 25])

# Modelo polinomial de grau 2
poly_model = make_pipeline(PolynomialFeatures(degree=2), LinearRegression())
poly_model.fit(x, y)

# Predições
y_pred = poly_model.predict(x)

11.1.3 Visualização

import matplotlib.pyplot as plt

plt.scatter(x, y, color='gray')
plt.plot(x, y_pred, color='red', linewidth=2)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Regressão Polinomial de Grau 2')
plt.show()

11.2 Comparação entre Regressão Linear e Logística

Enquanto a regressão linear é usada para prever valores contínuos, a regressão logística é empregada para prever categorias.

11.2.1 Diferenças Principais

  • Regressão Linear: Previsão de valores contínuos; a relação entre variáveis é modelada como uma linha reta.

  • Regressão Logística: Previsão de resultados binários (0 ou 1); utiliza a função sigmoide para mapear predições para o intervalo [0, 1].

11.2.2 Implementação de Regressão Logística em Python

from sklearn.linear_model import LogisticRegression

# Dados de exemplo
x = np.array([[1], [2], [3], [4], [5]])
y = np.array([0, 0, 1, 1, 1])

# Modelo logístico
logistic_model = LogisticRegression()
logistic_model.fit(x, y)

# Predições
y_prob = logistic_model.predict_proba(x)
y_pred = logistic_model.predict(x)

11.2.3 Visualização

plt.scatter(x, y, color='gray')
plt.plot(x, y_prob[:, 1], color='red', linewidth=2)
plt.xlabel('x')
plt.ylabel('Probabilidade de Classe 1')
plt.title('Regressão Logística')
plt.show()

11.3 Uso em Séries Temporais

A regressão linear pode ser aplicada em séries temporais para modelar tendências e prever valores futuros.

11.3.1 Técnicas Comuns

  • Regressão Linear Simples: Modela tendências lineares em séries temporais.

  • Modelos Autorregressivos (AR): Utilizam valores passados da série para prever valores futuros.

11.3.2 Implementação de Regressão Linear em Séries Temporais

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# Criar dados de exemplo
dates = pd.date_range('2024-01-01', periods=100)
data = pd.DataFrame({'Date': dates, 'Value': np.random.randn(100).cumsum()})

# Dividir em treinamento e teste
train = data[:80]
test = data[80:]

# Treinar o modelo
linear_model = LinearRegression()
linear_model.fit(np.arange(len(train)).reshape(-1, 1), train['Value'])

# Fazer previsões
predictions = linear_model.predict(np.arange(len(train), len(train) + len(test)).reshape(-1, 1))

# Visualização
plt.plot(train['Date'], train['Value'], label='Treinamento')
plt.plot(test['Date'], test['Value'], label='Teste')
plt.plot(test['Date'], predictions, label='Previsão', linestyle='--')
plt.xlabel('Data')
plt.ylabel('Valor')
plt.title('Previsão de Série Temporal com Regressão Linear')
plt.legend()
plt.show()

11.3.3 Considerações Práticas

  • Tendências Sazonais: Ajustar modelos para incluir variáveis que capturem sazonalidade.

  • Autocorrelação: Verificar a presença de autocorrelação, que pode influenciar a validade do modelo.

11.4 Exercícios

Versão on-line destes exercícios

https://forms.gle/sSMhJibi3fyu6V1b6.

  1. Qual é a diferença principal entre a regressão linear e a regressão polinomial?

    1. A regressão linear prevê variáveis categóricas, enquanto a regressão polinomial prevê variáveis contínuas.

    2. A regressão linear modela relações lineares, enquanto a regressão polinomial pode modelar relações não lineares ao incluir termos polinomiais das variáveis independentes.

    3. A regressão linear requer menos dados do que a regressão polinomial.

    4. A regressão polinomial é sempre mais precisa do que a regressão linear.

  2. Em qual cenário a regressão logística é mais apropriada que a regressão linear?

    1. Quando se deseja prever o valor exato de uma variável contínua.

    2. Quando se está modelando a relação entre uma variável dependente contínua e várias variáveis independentes.

    3. Quando a variável dependente é categórica, especialmente binária, e se deseja prever a probabilidade de um determinado evento.

    4. Quando há apenas uma variável independente.

  3. Qual é uma aplicação típica da regressão linear em séries temporais?

    1. Classificação de imagens em categorias específicas.

    2. Modelagem de tendências ao longo do tempo para prever valores futuros com base em dados históricos.

    3. Determinação de clusters de dados semelhantes.

    4. Redução da dimensionalidade de grandes conjuntos de dados.

  4. Como a regressão polinomial pode ser utilizada para melhorar o ajuste de um modelo?

    1. Ao diminuir a complexidade do modelo para evitar overfitting.

    2. Ao incluir termos de potência mais elevada das variáveis independentes para capturar relações não lineares.

    3. Ao excluir variáveis independentes irrelevantes do modelo.

    4. Ao garantir que todos os resíduos sigam uma distribuição normal.

  5. O que indica um bom ajuste de um modelo de regressão em uma série temporal?

    1. Que o modelo tem muitos parâmetros e coeficientes.

    2. Que o modelo pode prever novos dados com precisão sem ajustes.

    3. Que o modelo ajusta-se bem aos dados históricos e captura tendências e padrões temporais com precisão.

    4. Que o modelo não precisa ser validado em novos dados.