1
resposta

[Projeto] 09 Mão na massa: ajustando um modelo para usina

esumo Direto (Conceitos)
VIF (Multicolinearidade): Serve para ver se uma variável está "copiando" a outra. Se o valor de VIF for maior que 5, o modelo está confuso porque há informação repetida.

Solução: Apagar a variável com VIF alto.

Heterocedasticidade: É quando o erro do modelo não é constante. Se os erros formarem um desenho de "funil" no gráfico, o modelo não é confiável para todos os casos.

Solução: Usar transformações matemáticas (como Logaritmo).

  1. Código Simplificado (Passo a Passo)
    Etapa 1: Calcular o VIF
    O objetivo aqui é ver quem é redundante.
import pandas as pd
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor

# 1. Preparar os dados (X são as causas, PE é o efeito/alvo)
X = df.drop(columns=['PE'])
X = sm.add_constant(X) # Obrigatório para o cálculo estar certo

# 2. Calcular o VIF para cada coluna
vif_df = pd.DataFrame()
vif_df["Variavel"] = X.columns
vif_df["VIF"] = [variance_inflation_factor(X.values, i) for i in range(len(X.columns))]

print(vif_df)

Etapa 2: Analisar Resíduos (Gráfico)
Aqui verificamos se o modelo é "estável".
import matplotlib.pyplot as plt

# 1. Treinar o modelo e pegar os erros (resíduos)
modelo = sm.OLS(df['PE'], X).fit()
residuos = modelo.resid
predicoes = modelo.predict(X)

# 2. Plotar o gráfico
plt.scatter(predicoes, residuos)
plt.axhline(y=0, color='red') # Linha de referência no zero
plt.xlabel('Previsão de Energia')
plt.ylabel('Erro (Resíduo)')
plt.show()
1 resposta

Oi, Moacir! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você separou bem os conceitos de VIF e heterocedasticidade, junto com o passo a passo do código. Isso mostra um bom entendimento do fluxo de análise de regressão, principalmente ao conectar teoria com prática ao usar o variance_inflation_factor e a análise dos resíduos no gráfico.

Continue assim!

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!