Capítulo 6: Análise de Correlação e Regressão

6.1. Introdução à Análise de Correlação

A análise de correlação é usada para medir a força e a direção de uma relação linear entre duas variáveis. A correlação não implica causalidade, mas pode indicar uma associação significativa entre as variáveis.

Coeficiente de Correlação de Pearson

O coeficiente de correlação de Pearson (r) é uma medida que quantifica a força e a direção de uma relação linear entre duas variáveis.

  • Valores de r:
  • ( r = 1 ): Correlação positiva perfeita.
  • ( r = -1 ): Correlação negativa perfeita.
  • ( r = 0 ): Nenhuma correlação linear.

Fórmula do Coeficiente de Correlação de Pearson:
[ r = \frac{\sum (x_i – \bar{x})(y_i – \bar{y})}{\sqrt{\sum (x_i – \bar{x})^2 \sum (y_i – \bar{y})^2}} ]

Exemplo com Python:

Vamos calcular o coeficiente de correlação de Pearson entre duas variáveis.

import numpy as np
import pandas as pd

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

# Calculando o coeficiente de correlação
correlation = np.corrcoef(x, y)[0, 1]

print(f"Coeficiente de Correlação de Pearson: {correlation}")

6.2. Regressão Linear Simples

A regressão linear simples é uma técnica que modela a relação entre uma variável dependente e uma variável independente, assumindo que essa relação é linear.

Modelo de Regressão Linear Simples

O modelo de regressão linear simples é dado por:
[ Y = \beta_0 + \beta_1 X + \epsilon ]
onde:

  • ( Y ) é a variável dependente,
  • ( X ) é a variável independente,
  • ( \beta_0 ) é o intercepto,
  • ( \beta_1 ) é o coeficiente de regressão,
  • ( \epsilon ) é o erro.

Exemplo com Python:

Vamos ajustar um modelo de regressão linear simples e visualizar os resultados.

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

# Dados de exemplo
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
Y = np.array([2, 3, 5, 7, 8])

# Ajustando o modelo
model = LinearRegression()
model.fit(X, Y)

# Previsões
Y_pred = model.predict(X)

# Visualizando os resultados
plt.scatter(X, Y, color='blue', label='Dados Reais')
plt.plot(X, Y_pred, color='red', linewidth=2, label='Linha de Regressão')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Regressão Linear Simples')
plt.legend()
plt.show()

print(f"Coeficiente de Regressão (β1): {model.coef_[0]}")
print(f"Intercepto (β0): {model.intercept_}")

6.3. Regressão Linear Múltipla

A regressão linear múltipla é uma extensão da regressão linear simples que permite modelar a relação entre uma variável dependente e duas ou mais variáveis independentes.

Modelo de Regressão Linear Múltipla

O modelo de regressão linear múltipla é dado por:
[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k + \epsilon ]
onde:

  • ( Y ) é a variável dependente,
  • ( X_1, X_2, \ldots, X_k ) são as variáveis independentes,
  • ( \beta_0 ) é o intercepto,
  • ( \beta_1, \beta_2, \ldots, \beta_k ) são os coeficientes de regressão,
  • ( \epsilon ) é o erro.

Exemplo com Python:

Vamos ajustar um modelo de regressão linear múltipla e visualizar os resultados.

import pandas as pd
import statsmodels.api as sm

# Dados de exemplo
data = {
    'X1': [1, 2, 3, 4, 5],
    'X2': [2, 3, 4, 5, 6],
    'Y': [3, 5, 7, 9, 11]
}
df = pd.DataFrame(data)

# Ajustando o modelo
X = df[['X1', 'X2']]
X = sm.add_constant(X)  # Adiciona o intercepto
y = df['Y']

model = sm.OLS(y, X).fit()
print(model.summary())

6.4. Diagnóstico e Avaliação de Modelos

Após ajustar um modelo de regressão, é importante avaliar seu desempenho e verificar se os pressupostos da regressão foram atendidos.

Resíduos

Os resíduos são as diferenças entre os valores observados e os valores previstos pelo modelo. A análise dos resíduos pode ajudar a identificar problemas com o modelo.

Exemplo com Python:

Vamos plotar os resíduos de um modelo de regressão linear.

import matplotlib.pyplot as plt

# Dados de exemplo para resíduos
residuos = Y - Y_pred

# Plotando resíduos
plt.scatter(Y_pred, residuos)
plt.axhline(y=0, color='red', linestyle='--')
plt.xlabel('Valores Preditos')
plt.ylabel('Resíduos')
plt.title('Resíduos vs Valores Preditos')
plt.show()

R² (Coeficiente de Determinação)

O ( R^2 ) é uma métrica que indica a proporção da variabilidade na variável dependente que é explicada pelas variáveis independentes. Um ( R^2 ) próximo de 1 indica que o modelo explica bem os dados.

Exemplo com Python:

Vamos calcular o ( R^2 ) para o modelo de regressão linear simples.

from sklearn.metrics import r2_score

# Calculando o R²
r2 = r2_score(Y, Y_pred)
print(f"Coeficiente de Determinação (R²): {r2}")

6.5. Exemplo Prático

Para ilustrar a análise de correlação e regressão em um contexto prático, vamos considerar um estudo sobre a relação entre o número de horas de estudo e as notas em um exame.

Dados de Exemplo:

Suponha que temos dados sobre o número de horas de estudo e as notas obtidas pelos alunos em um exame.

Código Python:

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

# Dados de exemplo
horas_estudo = np.array([1, 2, 3, 4, 5])
notas = np.array([55, 60, 65, 70, 75])

# Ajustando o modelo
X = horas_estudo.reshape(-1, 1)
Y = notas
model = LinearRegression()
model.fit(X, Y)

# Previsões
Y_pred = model.predict(X)

# Visualizando os resultados
plt.scatter(horas_estudo, notas, color='blue', label='Dados Reais')
plt.plot(horas_estudo, Y_pred, color='red', linewidth=2, label='Linha de Regressão')
plt.xlabel('Horas de Estudo')
plt.ylabel('Notas')
plt.title('Relação entre Horas de Estudo e Notas')
plt.legend()
plt.show()

# Calculando o R²
r2 = r2_score(notas, Y_pred)
print(f"Coeficiente de Determinação (R²): {r2}")

Este capítulo explora a análise de correlação e regressão, fornecendo uma visão abrangente das técnicas para avaliar e modelar relações entre variáveis. Discutimos a análise de correlação, regressão linear simples e múltipla, e abordamos a importância do diagnóstico e avaliação de modelos. Com exemplos práticos e códigos em Python, fornecemos ferramentas para aplicar essas técnicas em diversas situações.

Edvaldo Guimrães Filho Avatar

Published by

Categories:

Leave a comment