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.

Leave a comment