Correlação: direto ao ponto.

Rodrigo Salles
BrData
Published in
8 min readJun 7, 2018

--

Correlação: interdependência entre duas ou mais variáveis. (Dicionário Priberam da Língua Portuguesa)

O que é correlação? O que são índices de correlação? Como interpretá-los? Como utilizar o Pandas do Python para calcular a correlação?

Essas são algumas perguntas que pretendo responder nesse pequeno estudo, de forma clara e direta. Não vou aprofundar conceitos estatísticos. Esses conceitos são muito importantes, mas não é meu objetivo nesse momento. A ideia dessa pesquisa é fazer um “direto ao ponto”, em que vou preparar o mínimo necessário para utilizar o Pandas e interpretar os resultados, agregando importantes informações ao seu projeto.

Este estudo encontra-se disponível no Github. Acesse clicando aqui.

O que é correlação?

A definição inicial resume bem a ideia: a correlação indica a interdependência entre duas ou mais variáveis.

Em certos casos essa interdependência é clara:

  • Massa corporal e altura;
  • Consumo de combustível e distância percorrida;
  • Número de anúncios e produtos vendidos;
  • Tempo de estudo e desempenho na avaliação(nem sempre…rs).

Mas em muitos casos essa relação não é aparente, e assim devemos recorrer a métodos mais confiáveis de detecção. Dentre os métodos mais comuns temos os índices de Pearson, Spearman e Kendall. Vamos falar um pouco sobre esses índices.

Coeficiente de Correlação de Pearson

Também chamado de “coeficiente de correlação produto-momento” ou simplesmente de “ρ de Pearson” mede o grau da correlação (e a direção dessa correlação — se positiva ou negativa) entre duas variáveis. Este coeficiente, normalmente representado por ρ assume apenas valores entre -1 e 1.

A formula desenvolvida por Karl Pearson, há mais de 120 anos, continua a ser a mais utilizada para o cálculo da correlação.

Calcula-se o coeficiente de correlação de Pearson pela seguinte fórmula:

A correlação de Pearson mede a associação linear entre variáveis contínuas. É o valor que indica o quanto a relação entre as variáveis pode ser descrita por uma reta.

Interpretando o valor de ρ

  • 0.9 a 1 positivo ou negativo indica uma correlação muito forte.
  • 0.7 a 0.9 positivo ou negativo indica uma correlação forte.
  • 0.5 a 0.7 positivo ou negativo indica uma correlação moderada.
  • 0.3 a 0.5 positivo ou negativo indica uma correlação fraca.
  • 0 a 0.3 positivo ou negativo indica uma correlação desprezível.

Existem várias possibilidades de interpretação da correlação. Pode-se considerar a inclinação da reta que representa a relação entre as variáveis, pode-se considerar as séries de valores como vetores, e o ρ, em uma interpretação geométrica, representaria o cosseno do ângulo formado entre os vetores, etc. Algumas informações interessantes podem ser encontradas no artigo “Thirteen ways to look at the correlation coefficient”.

Coeficiente de Correlação de Spearman

O coeficiente de correlação de Spearman é indicado para o cálculo da correlação entre variáveis aleatórias x e y relacionadas monotonicamente entre si, mas não necessariamente de maneira linear. Se a relação é linear o método de Pearson é o mais indicado.

Em uma relação monotônica, as variáveis tendem a mudar juntas mas não necessariamente a uma taxa constante (Fonte: data Analysis — Bui Tram).

Se as variáveis aleatórias seguirem, à perfeição, a função y = log(x), o coeficiente de correlação de Pearson não será igual a 1. Já o coeficiente de Spearman será 1, pois reflete a relação que não é linear.

A forma deste coeficiente de correlação é a mesma do coeficiente de Pearson, mas as variáveis x e y não são mais os valores originais coletados. No lugar dos valores de x e y, utiliza-se o posto de cada variável. O posto nada mais é do que o valor que cada variável possui em um ordenamento numérico. O menor valor é o número um, o segundo menor valor será o número dois, e dessa forma todas as variáveis terão novos valores.

Se os conjuntos de dados não possuem valores repetidos o coeficiente de correlação de Spearman pode ser calculado com o auxílio da seguinte fórmula:

Caso existam valores repetidos deve-se recorrer à seguinte fórmula:

As fórmulas são grandes, mas a forma de calcular é simples. Aqui você encontra um exemplo prático, com os cálculos, sobre a correlação entre o QI de uma pessoa e o número de horas em que assiste televisão por semana.

Coeficiente de correlação tau de Kendall

É uma medida de correlação de postos, ou seja, verifica a semelhança entre as ordens dos dados quando classificados por cada uma das quantidades. Recebe este nome em homenagem ao estatístico britânico Maurice Kendall, que o desenvolveu em 1938.

A correlação de Kendall leva em consideração apenas a concordância direcional dos chamados pares concordantes e discordantes.

Para ficar claro o conceito de pares concordantes e discordantes vou reproduzir um exemplo simples encontrado no estudo Introdução à correlação, de Ruslana Dalinina.

Considere os seguintes valores:

Pares concordantes (x1,y1),(x2,y2) são os pares que obedecem às seguintes regras: x1< x2 e y1 < y2, ou x1 > x2 e y1 > y2. No exemplo os pares (4,6) e (5,9) nas linhas 3 e 4 são pares concordantes. Os pares (1,7) e (2,5), das linhas 0 e 1, não obedecem às regras e são chamados de discordantes.

Todos os pares são comparados, contados, e na sequência é só aplicar a fórmula.

Pares concordantes:

  • (1,7) e (5,9)
  • (2,5) e (4,6)
  • (2,5) e (5,9)
  • (3,1) e (4,6)
  • (3,1) e (5,9)
  • (4,6) e (5,9)

Pares discordantes:

  • (1,7) e (2,5)
  • (1,7) e (3,1)
  • (1,7) e (4,6)
  • (2,5) e (3,1)

A correlação encontrada para esse exemplo foi de 0.2.

O coeficiente de correlação de Kendall é particularmente eficiente para dados discretos.

Correlação não implica causa!

É muito importante observar que mesmo uma correlação forte não implica que x “causa” y! Um ótimo exemplo para ilustrar esse conceito pode ser encontrado no livro “A Basic Course in Statistics”(Clarke & Cooke): um estudante tem boas notas em física e química. Mas o bom desempenho em química não pode ser explicado pelo bom desempenho em física. As boas notas nessas disciplinas poderiam ser explicadas pelo bom desempenho em matemática, fator não considerado no primeiro momento.

Um exemplo real interessante pode ser encontrado no artigo Correlação não implica necessariamente causalidade, de Marco Filipe:

Vários estudos apontavam inicialmente que as mulheres em menopausa que recebiam terapia de substituição hormonal (TSH) tinham também um menor risco de doença coronária, o que levou à ideia de que a TSH conferia proteção contra a doença coronária. No entanto, estudos controlados e randomizados (mais rigorosos), feitos posteriormente, mostraram que a TSH causava na verdade um pequeno mas significativo aumento do risco de doença coronária. Uma reanálise dos estudos revelou que as mulheres que recebiam a TSH tinham também uma maior probabilidade de pertencer a uma classe socioeconômica superior, com melhor dieta e hábitos de exercício. A utilização da TSH e a baixa incidência de doença coronária não eram causa e efeito, mas o fruto de uma causa comum — os benefícios associados a um estatuto socioeconômico elevado.

Fonte: http://comcept.org/cepticismo/correlacao-nao-implica-necessariamente-causalidade

Os gráficos encontrados no site Spurious correlations reforçam a ideia de que correlação não implica necessariamente causalidade. Temos que ter cuidado pois “nem tudo que parece é”:

Fonte: https://www.tylervigen.com/spurious-correlations
Fonte: https://www.tylervigen.com/spurious-correlations
Fonte: https://www.tylervigen.com/spurious-correlations

Cuidado para não errar na interpretação.

Calculando a Correlação com o Pandas

Já sabemos o básico sobre correlação, agora vamos ao cálculo direto com o auxílio do Pandas. Vou utilizar o exemplo encontrado no artigo “Introduction to Correlation”, de Ruslana Dalinina, com algumas pequenas modificações.

O conjunto de dados utilizado “Auto-Mpg Data”, pode ser encontrado aqui.

A ideia é verificar qual característica do veículo está mais associada ao seu consumo de combustível ( mpg: miles per gallon - milhas(1,6 km) por galão( 3,78 litros)).

Observando as primeiras linhas do dataset:

Mais algumas informações:

Pequeno pré-processamento.

Pode-se observar que faltam 6 valores na coluna horsepower. Vamos preencher essas lacunas com a média de potência de acordo com o número de cilindros do motor. Foi a forma que escolhi. Existem várias possibilidades.

Observando a relação entre o número de cilindros e a potência do motor temos:

Vamos substituir os valores ausentes pela média:

A função para atualizar os valores pode ser vista a seguir:

Após a utilização da função de atualização temos o seguinte resultado:

Agora todas as colunas estão completas!

Eu optei por fazer esse processo, mas o pandas consegue trabalhar bem mesmo com alguns dados ausentes.

Agora vamos à correlação.

Pandas

O pandas nos fornece a função corr() para calcular a correlação entre duas colunas. Vamos verificar a correlação entre o peso do veículo e seu desempenho mpg:

Como esperado existe uma forte correlação negativa entre o desempenho e o peso do veículo. Quanto mais pesado menor é o desempenho mpg.

Pode-se verificar todas as correlações de forma simultânea:

O método de Pearson é utilizado por padrão, mas o pandas permite a utilização de outros índices.

Para facilitar a visualização das correlações pode-se recorrer às cores:

Pode-se observar a gradação de cores em relação às correlações positivas e negativas.

Várias informações importantes do conjunto de dados podem ser obtidas simultaneamente com poucas linhas de programação.

Conclusão

A correlação nos indica a interdependência entre duas ou mais variáveis. É uma informação importante, que pode ser aplicada em várias situações.

O pandas nos permite obter a correlação de forma rápida, de acordo com o método desejado, mas devemos ter especial atenção à interpretação dos resultados. Como foi dito, correlação não implica necessariamente uma relação de causalidade.

De forma geral a correlação é mais uma ferramenta que pode nos auxiliar na construção de modelos mais confiáveis.

Referências

https://www.datascience.com/learn-datscience/fundamentals/introduction-to-correlation-python-data-science

https://bloqm.wordpress.com/2013/10/13/coeficiente-de-correlacao-de-postos-de-spearman

https://pt.wikipedia.org/wiki/Coeficiente_de_correla%C3%A7%C3%A3o_de_postos_de_Spearman

http://www.statisticshowto.com/kendalls-tau

http://comcept.org/cepticismo/correlacao-nao-implica-necessariamente-causalidade

--

--

Rodrigo Salles
BrData

Mechatronic Engineer — Physicist — Data Scientist. Always learning.