Pressupostos da Regressão Linear
Como o seu conjunto de dados pode prejudicar o ajuste de seu modelo
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.
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.
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.
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:
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.
E como resultado dessa operação obtemos:
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².