Pressupostos da Regressão Linear

Como o seu conjunto de dados pode prejudicar o ajuste de seu modelo

João Guilherme Berti Sczip
5 min readNov 7, 2019

Como já explicado no primeiro artigo sobre regressão linear, por ser um modelo simples, acaba sendo bastante influenciado dependendo da forma de como o conjunto de dados está organizado. Esse artigo tem por objetivo explicar alguns pressupostos de um modelo linear e o porquê de seu conjunto de dados precisar seguir essas condições a fim de que obtenha resultados significativos.

Correlação

Ao falar sobre regressão, estamos falando sobre o relacionamento entre duas variáveis (independente(s) e dependente), esse relacionamento, por sua vez, poderá, ou não, predizer de forma acurada novos valores para a variável dependente. Antes de começarmos com a construção do modelo em si, é necessário que pelo menos uma das variáveis independentes (no caso da regressão múltipla) possua de fato uma forte correlação com a variável dependente (y) e, uma das formas de prever isso é através da correlação de Pearson (R). A correlação R é um valor que mede a força da relação entre duas variáveis, esse valor vai de -1 a 1 e, quanto mais próximo de suas extremidades, mais forte é essa correlação, podendo ser positiva, quando o valor de y sobe de forma crescente, e negativa, quando o valor de y decresce em relação a X.

Para os exemplos estarei utilizando Python com suas libs conhecidas para Data Science

A biblioteca Pandas para manipulação de conjunto de dados nos traz várias opções para análise exploratória, iremos utilizá-la para mostrar a correlação entre as variáveis de um dataset coletado no site Kaggle, o dataset escolhido é um contendo a taxa de suicídios entre 1985 a 2016 na europa (https://www.kaggle.com/russellyates88/suicide-rates-overview-1985-to-2016).

Como resultado do código acima, temos a seguinte matriz ilustrando o valor das correlações entre as variáveis.

Correlações do dataset

Digamos que o nosso objetivo aqui é prever o número de suicídios, pode-se afirmar que a variável que mais tem influencia nesse valor é a população, entretanto, devemos ter bastante cuidado com tais afirmações, visto que em nosso caso, essas duas variáveis são auto-explicativas, uma vez que quanto maior a população, maior a chance de termos um número grande de suicídios, variáveis auto-explicativas podem significar um problema ao modelo. Pode-se observar também, que o número de suicídio não possui nenhum forte correlação com nenhuma das outras variáveis.

Relação linear

Após descobrir se de fato as variáveis possuem alguma correlação, é necessário conferir se há relações lineares entre elas, a relação linear vai dizer se uma variável explica a outra e, se um modelo linear poderá ser utilizado. Relações não-lineares ou extremamente baixas, indicam que dificilmente a variável independente poderá ser utilizada para explicar a variação da variável y, outros testes mais formais como a análise da variância podem ser utilizados, mas a utilização de um scatter plot já é bastante útil para essa verificação, além de que, caso o conjunto de dados não cumpra com os pressupostos impostos pela regressão, a utilização de testes mais formais acaba não sendo útil, visto que as análises preliminares já mostram as possíveis dificuldades que serão encontradas no decorrer da construção do modelo.

Utilização da biblioteca seaborn

Com a utilização de bibliotecas como a seaborn, podemos trabalhar com visualizações de dados, o código apresentando ali em cima vai gerar um scatter plot para cada uma das variáveis explicativas (explicativas porquê podem, ou não, explicar o valor de y) em relação a variável y. Passando o parâmetro kind e definindo seu valor como “reg”, a função pairplot se encarregará de traçar a reta que ilustra a relação entre as variáveis.

Relações entre as variáveis

Conforme ilustrado pela imagem acima, é difícil encontrar uma reta que explique bem os relacionamentos, pode ser um forte indício de que um modelo linear não se adequará aos dados.

Distribuição de frequência

A regressão faz parte da estatística paramétrica (quando pode-se inferir sobre a população através de testes e medidas acerca dos parâmetros), com isso, é necessário que o conjunto de dados possua uma distribuição de frequência normal, ou seja, possui uma onda centralizada e vai desde o menos até o mais infinito. Modelos como a regressão podem sofrer muita interferência da assimetria dos dados quando construídos sobre conjuntos que não possuam a distribuição normal.

Na presença de um problema como a distribuição assimétrica, algumas decisões podem ser tomadas, a principal delas é a transformação dos dados, existem diversas técnicas capazes de transformar (ou em alguns casos apenas diminuir a assimetria) a distribuição do conjunto de dados para uma normalizada, os mais conhecidos são as transformações logarítmicas e as de transformação potência (Power Transform).

Segue o código para mostrar a distribuição de frequência do dataset como também a distribuição em si. Com apenas uma única linha é possível mostrar a distribuição diretamente do dataset.

dataset.hist(bins=50, figsize=(10, 10))

E como resultado:

Distribuição de frequência do dataset

Conforme ilustrado, nenhuma das variáveis possui uma distribuição normalizada, a grande parte é assimétrica a esquerda, podendo influenciar muito no resultado do modelo, não sendo possível afirmar a acurácia do mesmo.

Para tentar efetuar a normalização do conjunto de dados, será realizado a transformação de Box-Cox, essa é uma das transformações pertencentes a família das transformações potência e, pode ser facilmente implementada a partir do módulo de pré-processamento da biblioteca scikit-learn.

Aplicando transformação de Box-Cox no dataset

E como resultado dessa operação obtemos:

Dados transformados

Pode-se observar que de fato, em comparação com a primeira distribuição de frequência, os dados estão muito mais normalizados do que antes graças a transformação, entretanto, algumas das variáveis ainda não estão cumprindo com o pressuposto, porém, como não possuem mais uma assimetria tão forte, o modelo pode não ser tão influenciado assim como seria se os dados não tivessem sido transformados.

Variância dos resíduos (Homocedasticidade)

Outro forte pressuposto do modelo de regressão linear é que a variância dos resíduos deve se manter constante, também conhecido como a homocedasticidade. Os resíduos da regressão devem se manter constantes ao longo de toda a variável y, visto que, em casos aonde não for cumprido, como por exemplo, uma cauda mais larga do que no início, indica que o modelo está errando mais conforme aumentam os valores de y, por isso a variação deve ser constante, ilustrando que modelo errou da mesma forma tanto no início como no final de suas predições.

Para plot dos resíduos é necessário que o modelo já tenha sido construído e algumas predições já tenham sido realizadas, por conta disso, ficará para um próximo artigo, aonde buscarei treinar o modelo e mostrar algumas medidas de avaliação, como o R².

--

--