Regressão Linear — Uma abordagem inferencial — PARTE 2

Entenda (ainda mais) as relações entre variáveis e obtenha os melhores estimadores lineares e não viesados

Edson Junior
Data Hackers
16 min readMay 3, 2024

--

Fonte: https://www.freepik.com/icon/regression_7440395

Sumário

→ Introdução
→ Mas enfim… de onde vêm e quais são as premissas da regressão linear?
→ Premissa 1: Linearidade em relação aos parâmetros
→ Premissa 2: Amostras aleatórias
→ Premissa 3: Ausência de Multicolinearidade Perfeita
→ Premissa 4: Média condicional do termo de erro é zero
→ Premissa 5: Homocedasticidade
→ O modelo cumpre todas as premissas… E AGORA?
→ E se o modelo não cumpre todas as premissas?…
→ Referências

Introdução

Este artigo é o segundo de dois artigos que tratam sobre o algoritmo da Regressão Linear, mas agora o objetivo é avançar um pouco mais no tópico da inferência, em um tema ainda pouco explorado na literatura.

Se você ainda não leu o primeiro artigo, recomendo fortemente a leitura por servir como base para este.

Apenas recapitulando…

Existem duas abordagens principais na Regressão Linear:

  • Abordagem Inferencial: Onde se busca entender as relações entre as variáveis independentes e dependente. É utilizado todo o conjunto de dados de uma só vez.
  • Abordagem Preditiva: utiliza o modelo para prever valores futuros da variável dependente. O conjunto de dados é dividido em TREINO e TESTE, há uma preocupação em treinar o modelo e avaliar os resultados.

A análise inferencial se mostra bastante presente na economia, onde se busca entender o impacto de variáveis macroeconômicas em indicadores que medem a saúde de uma nação.

Já análise preditiva é a mais comum de ser encontrada no dia-a-dia, a PREVISÃO DE VALORES CONTÍNUOS. Muito presente nas finanças, por exemplo, com a previsão de preços de ativos e previsão de receitas. Também muito comum no setores de marking e imobiliário.

Continuando sobre o tratamento da inferência, o artigo busca trazer principalmente ‘o que são e como encontrar’ os estimadores BLUE (Best Linear Unbiased Estimators), ou seja, os melhores estimadores que se poderia obter para aquele modelo, os mais confiáveis, que garantem uma boa inferência.

As premissas que, se respeitadas, garantem os estimadores BLUE, merecem um artigo SÓ PARA ELAS dentro da análise inferencial.

Isto ainda é motivo de muita confusão, há muitas pessoas utilizando estes estimadores para validar ou não um modelo PREDITIVO. O que é errado!!

Depois desta leitura, você nunca mais irá falar por aí que “Sem as premissas uma regressão linear (para predição) não funciona.” Esta frase acaba por aqui.

Mas enfim… de onde vêm e quais são as premissas da regressão linear?

Estes conceitos vêm de dois matemáticos brilhantes do passado, Carl Friedrich Gauss e Andrey Markov (isso mesmo, o estudioso das cadeias de Markov), que juntos formularam o Teorema de Gauss-Markov.

Basicamente é um teorema que afirma que, sob certas premissas, o método dos mínimos quadrados ordinários que está por trás da obtenção dos coeficientes da regressão, é o melhor estimador linear e não viesado, comumente chamado de BLUE.

Não entendeu? Calma… como diria Douglas Adams, “Don’t PANIC”…

Quando estas premissas são cumpridas, significa que os coeficientes obtidos possuem a menor variância possível entre todos os estimadores LINEARES e NÃO VIESADOS. Funciona como uma GARANTIA DE QUALIDADE dos estimadores, possibilitando análises inferenciais mais robustas, mais precisas.

Ao todo são cinco premissas de Gauss-Markov:

  1. Linearidade em relação aos parâmetros
  2. Amostras aleatórias
  3. Ausência de Multicolinearidade perfeita
  4. Média condicional do termo de erro é zero
  5. Homocedasticidade

Nos tópicos a seguir, são detalhadas cada uma delas.

Premissa 1: Linearidade em relação aos parâmetros

Esta primeira premissa vem do próprio nome do modelo. Em “Regressão Linear”, o termo “Linear” significa que há uma linearidade nos parâmetros Beta, não entre variável dependente e independente.

Ou seja, para haver a linearidade nos parâmetros cada coeficiente beta multiplica uma variável X_i ou uma transformação de X_i. Sim, você não leu errado, as variáveis independentes podem ser transformadas de maneira não linear.

A seguir estão alguns exemplos de situações em que os coeficientes são multiplicados por transformações não lineares das variáveis explicativas e a linearidade nos parâmetros NÃO é respeitada:

Caso 1: Coeficiente como expoente de uma variável independente

Fonte: Próprio autor

Caso 2: Produto de coeficientes

Fonte: Próprio autor

Caso 3: Coeficiente como parâmetro da função seno

Fonte: Próprio autor

Caso 4: Coeficiente elevado à multiplicação de um outro coeficiente por uma variável explicativa

Fonte: Próprio autor

Caso 5: Coeficientes presentes em Logaritmos

Fonte: Próprio autor

Agora são apresentados alguns casos em que os coeficientes são multiplicados por transformações não lineares das variáveis explicativas e a linearidade nos parâmetros É respeitada:

Caso 1: Variáveis independentes elevadas à um expoente maior que 1

Fonte: Próprio autor

Caso 2: Logaritmo de uma variável

Fonte: Próprio autor

Caso 3: Inverso de uma variável

Fonte: Próprio autor

Caso 4: Raiz quadrada

Fonte: Próprio autor

Caso 5: Logaritmo da variável dependente

Fonte: Próprio autor

Premissa 2: Amostras aleatórias

Esta premissa está relacionada a necessidade de se trabalhar com amostragem aleatória, afim de representar toda uma população. Isto é importante para o modelo de regressão não estar relacionado apenas à um grupo restrito, a amostra precisa ser REPRESENTATIVA.

Se a amostra NÃO FOR ALEATÓRIA:

  1. Os resultados amostrais não poderão ser generalizados para populações, o que de certa forma inviabiliza estes estudos estatísticos. Quando este tipo de estudo é realizado, sempre espera-se generalizar os resultados.
  2. Ou determinados padrões/características vão aparecer demais ou vão aparecer de menos. Desta forma, a conclusão obtida será cheia de viéses, totalmente o contrário do desejado. Lembrando que o DESEJADO é obter os melhores parâmetros lineares e NÃO VIESADOS.

Consequentemente, se a amostra FOR ALEATÓRIA:

  1. Há menos chances de amostras padronizadas ou correlacionadas. Com isso, há menos chances dos termos de erro do modelo de regressão serem correlacionados, ou seja, há mais chances de SEREM INDEPENDENTES.
  2. Os termos de erro de cada uma das amostras também devem representar os erros da população, então pode-se dizer que os termos de erro são IDENTICAMENTE DISTRIBUÍDOS (i.i.d).

Premissa 3: Ausência de Multicolinearidade Perfeita

A multicolinearidade significa que uma variável independente pode ser obtida através de uma combinação linear de outras variáveis. Ou seja, quando é possível explicar o comportamento de uma variável através de uma ou mais variáveis.

Neste caso, esta premissa exige que NÃO DEVE HAVER UMA MULTICOLINEARIDADE PERFEITA no modelo. Sim, as variáveis podem ser correlacionadas, mas nenhuma das variáveis independentes deverá ser uma combinação linear EXATA das outras, não deve ser uma correlação perfeita.

Exemplos — Casos de multicolinearidade (ou não) para se prestar atenção

Caso 1 — Variáveis medidas em unidades diferentes

Por exemplo, um caso muito simples de variáveis totalmente correlacionadas é uma renda medida em reais e a mesma renda medida em euros.

Fonte: https://www.remessaonline.com.br/blog/real-x-euro-7/

Há um fator de conversão entre as duas medidas e, sendo assim, não faz sentido manter as duas no mesmo modelo.

Desta forma, não se deve incluir no modelo uma mesma variável medida em diferentes unidades

Caso 2 — Funções não lineares de uma mesma variável

Um caso que não deve ser confundido com multicolinearidade são as funções não lineares de uma mesma variável.

Por exemplo, no caso a seguir a primeira variável explicativa é X_1 e a segunda é X_1 ao quadrado.

Fonte: Próprio autor

Há claramente uma relação entre estas duas variáveis, mas não é uma relação linear e sim QUADRÁTICA.

Caso 3 — Variáveis DUMMIES

Normalmente, quando há uma variável categórica há a necessidade de tratá-la antes de ajustar um modelo de regressão aos dados. Uma das formas mais comuns de fazer isto é através das variáveis DUMMIES.

Por exemplo, imagine uma variável categórica chamada “cor”, que contém três categorias: azul, laranja e verde.

Nesta situação, caso fossem criadas 3 variáveis dummies haveria o seguinte problema:

Pode-se observar que a soma das dummies em cada uma das linhas será sempre igual a 1, ou seja, sempre é possível obter uma variável a partir de outras duas, o que caracteriza multicolinearidade perfeita. Sendo assim, a presença de uma terceira dummie torna-se redundante.

Para solucionar este problema, sempre que haver uma variável categórica e for utilizar as dummies para seguir com o ajuste do modelo, é necessário excluir uma das dummies. Ou seja, para esta situação seria adequado a presença de:

‘COR_AZUL e COR_LARANJA’, ou

‘COR_AZUL e COR_VERDE’ , ou

‘COR_LARANJA e COR_VERDE’

Problemas da multicolinearidade perfeita

Caso um modelo de regressão possua multicolinearidade perfeita, alguns problemas podem surgir, como por exemplo:

  1. A matriz X, das variáveis explicativas, não terá colunas que sejam linearmente independentes entre si
  2. Isso faz com que a matriz X’X ( transposta de X multiplicada por X) seja na verdade uma matriz singular.
  3. Como matriz singular não pode ser inversível e a obtenção da inversa de X’X é necessária para calcular os estimadores, então os coeficientes não poderão ser obtidos pelo método dos mínimos quadrados
  4. Haverá uma maior dificuldade em determinar a contribuição de cada variável independente para o resultado do modelo, já que estarão combinadas

Como fazer para verificar a multicolinearidade em um modelo?

Para detectar a multicolinearidade em modelos é utilizada uma métrica chamada Fator de Inflação da Variância (VIF, do inglês Variance Inflation Factor), que nada mais é do que uma maneira de verificar o quanto cada variável explicativa é explicada pelas demais.

Na prática, para cada uma das variáveis independentes do modelo é ajustada uma regressão, contra todas as outras variáveis.

Por exemplo, considere uma regressão linear múltipla dada pela expressão a seguir:

Fonte: Próprio autor

Há 4 variáveis independentes e, para obter o VIF para cada uma delas, são ajustadas 4 novas regressões, uma para cada variável, como é ilustrado a seguir:

  • Regressão para a variável X_1
Fonte: Próprio autor

Obtém X_1 em função de X_2, X_3 e X_4.

  • Regressão para a variável X_2
Fonte: Próprio autor

Obtém X_2 em função de X_1, X_3 e X_4.

  • Regressão para a variável X_3
Fonte: Próprio autor

Obtém X_3 em função de X_1, X_2 e X_4.

  • Regressão para a variável X_4
Fonte: Proprio autor

Obtém X_4 em função de X_1, X_2 e X_3.

Desta forma, para cada uma destas regressões o VIF pode ser calculado utilizando o coeficiente de determinação (R quadrado), da seguinte forma:

Fonte: Próprio autor

Com base na expressão do VIF, pode-se montar alguns cenários utilizando o R quadrado:

  • R-quadrado baixo: Neste primeiro cenário, as variáveis independentes não explicam bem a variância da variável dependente. Isso ocasiona um VIF baixo, próximo de 1, onde não há multicolinearidade.
  • R-quadrado médio/moderado: Aqui, tem-se uma situação em que o R-quadrado é um pouco maior, as variáveis independentes explicam razoavelmente a variável dependente e o VIF será um pouco maior. Uma regra prática bastante utilizada é que se o VIF é ≤ 5, então a multicolinearidade é moderada e aceitável.
  • R-quadrado alto: Neste último caso, o R-quadrado é elevado, ou seja, as variáveis independentes explicam a grande parte da variância da variável dependente e a própria variável dependente analisada não está trazendo informação única para o modelo. O VIF nesta situação potencialmente será > 5, o que pode ser algo problemático, abrindo a possibilidade para a remoção de algumas variáveis do modelo. Em uma situação de VIF ≥ 10 (R-quadrado a partir de 0.9), considera-se uma multicolinearidade alta. Caso o R-quadrado seja exatamente 1, o VIF será definido como infinito, ou seja, uma situação de muticolinearidade perfeita.

Desta forma, caso seja obtido um VIF alto para uma das variáveis analisadas, deve-se seguir com a exclusão desta variável do modelo de regressão, pois é um indicativo de que esta variável está fortemente correlacionada com as outras, já é bastante explicada pelas demais.

Como verificar a Multicolinearidade em python?

Aqui trata-se de um exemplo fictício para cálculo do VIF, sendo executado da mesma maneira para casos reais.

Primeiramente são importadas as bibliotecas:

# Importando biblioteca de manipulação de dados
import pandas as pd

# Importando biblitoeca de manipulação algébrica
import numpy as np

# Importando a função que calcula o VIF
from statsmodels.stats.outliers_influence import variance_inflation_factor

# Importando a função que adiciona uma constante no dataframe
from statsmodels.tools.tools import add_constant

Em seguida, é definido o dataframe que será utilizado para análise de multicolinearidade:

# Gerando dados fictícios

# Garante que sejam gerados sempre os mesmos números aleatórios
np.random.seed(0)

# Criando um dicionário com 4 chaves, que indicam as 3 variáveis independentes
# e a variável dependente 'y'

data = {
'X1': np.random.rand(100) * 100,
'X2': np.random.rand(100) * 100,
'X3': np.random.rand(100) * 100,
'y': np.random.rand(100) * 300
}

# Transformando "data" em um DataFrame
df = pd.DataFrame(data)

# Adicionando uma constante ao modelo, essencial para o cálculo do VIF
df = add_constant(df)

Em casos reais, esta etapa acima não precisaria ser executada (com excessão da adição da constante), pois o dataframe já existiria.

Desta forma, os dados do dataframe df têm a seguinte aparência:

Fonte: Próprio autor

Assim, é possível fazer o calculo do VIF:

# Calculando o VIF para cada variável

# Defindo um dataframe vazio
vif_data = pd.DataFrame()

# Separando a constante e as variáveis independentes
X = df[['X1', 'X2', 'X3','const']]

# Defindo a primeira coluna do dataframe como sendo o nome das variáveis
vif_data["feature"] = X.columns

# Calculando o VIF para cada variável e adicionando no dataframe
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]

Como resultado, o dataframe “vif_data” ficou da seguinte forma:

Fonte: Próprio autor

Como o VIF para as três variáveis ‘X1, X2 e X3’ está muito próximo de 1, significa que a variância de cada uma delas não é bem explicada pelas outras, ou seja, característico da AUSÊNCIA DE MULTICOLINEARIDADE.

Premissa 4: Média condicional do termo de erro é zero

Ao longo do artigo você já se deparou diversas vezes com a expressão da regressão a seguir:

Na expressão acima, o termo de erro (ou perturbação) dado por “ϵ’’ representa todos os fatores além das variáveis independentes ‘X_1, X_2,…X_n’ que impactam na variável dependente ‘Y’.

Sabendo disso, esta premissa afirma que a “média condicional do termo de erro é igual a zero”:

Fonte: Próprio autor

Ou seja, para QUALQUER valor das variáveis independentes a média dos termos de erro será zero, os erros NÃO ESTÃO ASSOCIADOS às variáveis independentes, o que leva a conclusão de que NÃO ESTÃO CORRELACIONADOS.

Desta forma, nesta premissa os erros não têm um padrão definido. Caso houvesse um padrão, significaria que os erros possuem informações importantes que não estão sendo captadas pelo modelo, estariam faltando variáveis independentes para serem definidas, ou seja, trata-se de um modelo mal especificado.

Com esta premissa satisfeita:

  • Os termos de erro serão minimizados
  • Mais efeitos estarão sendo capturados pelas variáveis independentes
  • Os coeficientes obtidos pelo Método do Mínimos Quadrados serão melhor ajustados, já que são baseados na minimização dos termos de erro

Os itens acima contribuem diretamente para construir um estimador NÃO VIESADO, sem viéses, ou seja, que reflete o efeito real das variáveis independentes sobre a variável dependente.

Premissa 5: Homocedasticidade

A última premissa para garantir os estimadores BLUE é a Homocedasticidade.

Sim, esse PALAVRÃO aí. Mas o que significa isso?

Fonte: https://br.pinterest.com/pin/683210205942317327/

Basicamente é uma premissa que afirma…

Independentemente dos valores preditos pelo modelo, a variância dos termos de erro é CONSTANTE.

Que poderia ser expresso por:

Fonte: Próprio autor

Isso significa que, se fossem analisados todos os registros, comparando a diferença entre os valores observados (reais) com os valores ajustados pelo modelo, esta diferença teria variância CONSTANTE, não importa quais fossem os valores ajustados para a variável resposta.

Caso esta premissa seja a única a não ser satisfeita, o estimador ainda será LINEAR e NÃO VIESADO, mas já não será mais o MELHOR. Não fornecerá os coeficientes com a MENOR variância, em comparação com todos os estimadores.

Já quando a homocedasticidade é atendida, então tem-se a situação contrária, com os coeficientes com a MENOR variância. Isso significa que o estimador é CONFIÁVEL, certo? Se varia pouco então é confiável.

Mas confiável em que?

Confiável em relação ao teste t e ao teste f, dois testes realizados com base nos coeficientes obtidos. Com esta premissa pode-se confiar mais nestes dois testes.

Como já visto na primeira PARTE 1 deste artigo:

teste t: identifica a significância de cada variável independente

teste f: identifica a significância do modelo como um todo

Como verificar a homocedasticidade em python?

Aqui será construído um exemplo de como entender de a homocedasticidade é cumprida quando haver o interesse de verificar as premissas de Gauss-Markov para um determinado modelo.

Primeiro são importadas as bibliotecas:

# Importando biblioteca de manipulação algébrica
import numpy as np

# Importando biblioteca de manipulação de bases de dados
import pandas as pd

# Importando biblioteca que contém a função OLS
import statsmodels.formula.api as smf

# Biblioteca de análise exploratória
import matplotlib.pyplot as plt

Em seguida, é criado o dataframe que será utilizado para o exemplo:

# Definindo a semente para reprodutividade de resultados
np.random.seed(1)

# Definindo um ruído a ser adicionado no eixo Y
noise = np.random.normal(0, 1, size = 200)
df = pd.DataFrame({
'X': np.linspace(1, 20, 200),
'Y': np.linspace(2, 9, 200) + noise
})

O dataframe ‘df’ tem o seguinte formato

Fonte: Próprio autor

Como próximo passo, é construído o modelo de regressão, além de serem calculados os resíduos do modelo:

# Construindo o modelo de regressão
modelo = smf.ols('Y ~ X', data = df).fit()

# Calculando os resíduos
residuos= modelo.resid

# Valores ajustados (ou previstos)
valores_ajustados = modelo.fittedvalues

Assim, podemos obter o gráfico de resíduos e valores ajustados:

# Criando o gráfico de resíduos vs. valores ajustados

plt.scatter(valores_ajustados, residuos, edgecolors='k', facecolors='b')
plt.axhline(y=0, color='r', linestyle='--')
plt.xlabel('Valores Ajustados')
plt.ylabel('Resíduos')
plt.title('Gráfico de Resíduos vs. Valores Ajustados')
plt.show()

O código acima gera a seguinte visualização:

Fonte: Próprio autor

Observando o gráfico, como os pontos estão distribuídos de forma aleatória em torno da linha horizontal (y=0), sem formar qualquer tipo de padrão, então é um indicativo de que a HOMOCEDASTICIDADE foi cumprida para este modelo.

Caso os resíduos aumentassem ou diminuíssem conforme os valores ajustandos vão aumentando, isso seria um indício de HETEROCEDASTICIDADE.

Além disso, adicionando a linha horizontal y=0, é possível analisar a validade da premissa anterior. Caso os resíduos estejam distribuídos em torno de y=0, então significa que a média condicional do termo de erro é zero.

O modelo cumpre todas as premissas… E AGORA?

Fonte: https://media.giphy.com/media/jPAdK8Nfzzwt2/giphy.gif?cid=790b76114mhol1e7b0qc09b4jyljo0dvl6d9fejr9pc38o0x&ep=v1_gifs_search&rid=giphy.gif&ct=g

Conforme já foi dito anteriormente, já se sabe que quando o modelo está de acordo com todas as premissas de Gauss-Markov, pode-se dizer que o estimador OLS é um BLUE. Ou seja, o método utilizado para obter os coeficientes é TÃO BOM, MAS TÃO BOM, que tem a menor variância possível para os estimadores (coeficientes) obtidos.

Ainda não entendeu? Vamos lá…

Quando um modelo de regressão se ajusta aos dados, estes dados são considerados como amostrais (são amostras de uma população maior).

Com isso, cada um dos coeficientes beta obtidos são variáveis aleatórias, já que podem variar de acordo com a amostra escolhida.

Além disso, quando é dito que o estimador é NÃO VIESADO (na palavra “BLUE” corresponde à letra U, equivalente à “Unbiased”), quer dizer que a média dos coeficientes para N amostras seria igual ao próprio valor do parâmetro na população.

Por fim, ao dizer que o estimador tem a menor variância possível, significa que os coeficientes beta obtidos são os mais próximos dos parâmetros populacionais, têm a menor dispersão em torno destes valores, comparando para diferentes amostras.

Então quando é dito que o estimador é o MELHOR, tem tudo a ver com o fato dele gerar coeficientes LINEARES, NÃO VIESADOS e com a MENOR variância. Não há outros estimadores que, nestas condições, gere coeficientes com variância menor.

Desta forma, quando o estimador é BLUE, há uma confiança maior por trás dos coeficientes obtidos, são mais consistentes.

E se o modelo não cumpre todas as premissas?…

Fonte: https://media.giphy.com/media/M28rUlcjueKUE/giphy.gif

Quando o modelo não cumpre todas as premissas, não necessáriamente ele precisa ser descartado.

Para situações que visam a previsão de valores contínuos, métricas de erro como MSE (Mean Squared Error), RMSE (Root Mean Squared Error) e MAE (Mean Absolute Error) são preferidas, mais críticas para medir o desempenho do modelo.

Prevendo valores contínuos espera-se fazer previsões precisas, que o modelo ajustado aos dados consiga realmente aprender os padrões do conjunto de treinamento e ERRE POUCO, ou seja, baixos níveis de MSE, MAE e RMSE.

Mesmo tendo premissas QUEBRADAS, as três métricas acima podem apresentar indicadores de um modelo com uma boa capacidade de predição.

Portanto, nesta situação as métricas de erro são mais mandatórias do que as premissas da regressão.

Ainda não me segue no Medium? Aproveite e me siga para ficar sabendo toda vez que sair um artigo novo do forninho!!

LinkedIn: https://www.linkedin.com/in/edson-junior/

GitHub: https://github.com/ejunior029

Referências

  1. Clube de Assinaturas — André Yukio
  2. Formação Completa em Ciência de Dados — Anwar Hermuche
  3. P.E.D (Preparatório para Entrevistas em Dados) — Por Professora Renata Biaggi
  4. Canal do YouTube da Profª Fernanda Maciel
  5. Livro: Introdução à Econometria — por Jeffrey Wooldridge

--

--