Estatística: análise de correlação usando Python e R

Amanda Munari Guimarães
omixdata
Published in
5 min readFeb 3, 2021

--

Oi pessoal, hoje vamos falar sobre uma análise estatística bem interessante que é a análise de correlação. Ao longo deste post vamos responder algumas perguntas, tais como: O que é correlação? O que são índices de correlação? Como interpretá-los? Quais bibliotecas do Python podem ser utilizadas para essa análise? Quais pacotes do R podem ser usados para realizar essa análise? Como gerar matriz de correlação? Como criar plots através das matrizes de correlação?

O objetivo desse post é apresentar um panorama geral sobre os conceitos de correlação e uma forma simplificada de código para analisar dados através desse método.

Os dados utilizados neste estudo encontram-se disponíveis clicando aqui!

O que é correlação?

Quando falamos em análise de dados, muitas vezes precisamos entender qual é a associação entre duas ou mais variáveis. Nesse caso, a análise de correlação é uma forma descritiva que mede se há e qual o grau de dependência entre variáveis, ou seja, o quanto uma variável interfere em outra, lembrando que essa relação de dependência pode ou não ser causal. Essa medida de grau de relação é medida através de coeficientes. No caso deste post, nós vamos focar no coeficiente de Pearson.

O coeficiente de Pearson, também chamado de “coeficiente de correlação produto-momento” ou chamado de “ρ de Pearson”, mede o grau de correlação através do cálculo de direção positiva ou negativa. Este coeficiente, normalmente representado por ρ assume apenas valores entre -1 e 1.

A análise de correlação vai retornar três possíveis cenários: (1) correlação positiva; (2) correlação negativa; e (3) não há correlação.

  • Correlação positiva: quando duas variáveis que possuem correlação crescem ou decrescem juntas, ou seja, que possuem uma relação direta;
  • Correlação negativa: quando duas variáveis que possuem correlação mas quando uma variável cresce a outra decresce, ou vice-versa;
  • Não ter correlação: quando o crescimento ou decrescimento de uma variável não tem efeito sobre outra variável.

Como podemos interpretar os valores que ρ pode assumir?

  • ρ = 0,9 a 1 (positivo ou negativo): correlação muito forte;
  • ρ = 0,7 a 09 (positivo ou negativo): correlação forte;
  • ρ = 0,5 a 0,7 (positivo ou negativo): correlação moderada;
  • ρ = 0,3 a 0,5 (positivo ou negativo): correlação fraca;
  • ρ = 0 a 0,3 (positivo ou negativo): não possui correlação.

Análise de correlação usando Python

O primeiro passo é importar as bibliotecas que serão utilizadas. Nesse caso, iremos usar as bibliotecas pandas e seaborn . O pacote pandas é uma poderosa ferramenta na manipulação de dados, tabelas e dataframes. Já o pacote seaborn é excelente para a criação de visualizações gráficas, principalmente em casos de mapeamentos estatísticos.

Agora vamos colocar em prática!

O primeiro passo é chamar no Python as bibliotecas que serão utilizadas, no nosso caso as bibliotecas pandas e seaborn através do seguinte comando:

Em seguida vamos fazer a leitura dos dados utilizando a biblioteca pandas e a função pd.read_csv() através do comando abaixo. Lembre-se que dentro das aspas “” é onde você vai inserir o caminho do diretório no qual seu arquivo de dados se encontra.

Agora vamos visualizar os dados para poder entender o conteúdo da nossa tabela. Para isso, vamos usar o print() e ele vai nos retornar o conteúdo do arquivo .csv.

O dataframe utilizado para o exemplo refere-se aos dados de notificação de tuberculose no ano de 2019, lembre-se que são dados fictícios. Nessa tabela temos dados sobre o estado da notificação, quantos casos confirmados, quantas mortes, quantos casos ativos, qual o número de leitos disponíveis nos hospitais para atender esses pacientes, porcentagem de hospitalização e as porcentagens de cada grau da doença (leve, moderado e grave). Nesse caso, nós queremos saber qual a relação entre essas variáveis, e entender se há alguma influência no comportamento da outra.

Para a análise de correlação vamos utilizar a função .corr() :

Para visualizarmos a matriz de correlação, vamos utilizar a função .heatmap() do pacote seaborn, essa função vai nos retornar uma forma gráfica da matriz com uma escala de cor em conjunto com uma escala numérica, as quais vão indicar o grau medido entre as variáveis.

Esta é a matriz gerada, a qual nos permitirá interpretar a relação entre as variávies. Nessa matriz podemos ver uma escala de cores de tonalidades de laranja, vermelho e roxo, e uma escala numérica que vai de 1 a -1. O interessante dessa representação gráfica é que além da barra lateral que demonstra a escala numérica do coeficiente e das cores, há também em cada quadrante o valor e a cor referente da relação. Conforme vimos anteriormente, as variáveis que estão dentro da escala de 1 a 0,7 (+ ou -) e na tonalidade laranja no caso das positivas, e roxo escuro no caso das negativas, possuem uma forte correlação; já as variáveis que estão entre 0,7 a 0,5 (+ ou -) e na tonalidade avermelhada no caso das positivas e roxo médio no caso das negativas, possuem correlação moderada; as variáveis que possuem escala de 0,5 a 0,25 e (+ ou -) possuem baixa; e por fim as variáveis com coeficiente próximo a 0 (+ ou -) e com tonalidade vermelha não possuem correlação.

Análise de correlação usando R

Para análise de correlação usando o R nós vamos utilizar somente uma biblioteca, que se chama corrplot . Essa biblioteca permite calcular o grau de correlção entre variáveis, bem como criar o gáfico da matriz de correlação.

Para entendermos como essa biblioteca funciona nós vamos utilizar o mesmo dataset do exemplo utilizado em Python. Então, primeiramente precisamos chamar qual a biblioteca:

Em seguida, fazemos a leitura dos dados. No R e no Python essa leitura é bem similar, veja como é feito no R através da função read.csv():

Agora iremos calcular a correlação entre as variáveias através da função cor() :

No gráfico gerado podemos ver uma escala de cores que vai do azul (representando coeficientes positivos), vermelho (representando coeficientes negativos), e branco que representa valores próximos a 0; e uma escala numérica que vai de 1 a -1. Da mesma forma que na representação usando o seaborn do Python, há a barra lateral que demonstra a escala numérica do coeficiente e das cores, e ,também, em cada quadrante o valor e a respectiva cor referente da relação.

Resumindo tudo o que vimos até aqui, a correlação é uma medida que indica a interdependência entre variáveis. Importante relembrar que correlação não implica necessariamente uma relação causal.

A partir da análise de correlação, podemos direcionar análises posteriores que estarão ligadas a modelos de projeção de dados, como por exemplo, regressões lineares.

Caso você queira saber mais sobre modelos de projeção, fique ligado nos próximos posts.

--

--