Pular para o conteúdo

Como usar o pandas para calcular correlações

[

NumPy, SciPy e pandas: Correlação com Python

por Mirko Stojiljković


Correlação

Os coeficientes de correlação quantificam a associação entre variáveis ou características de um conjunto de dados. Essas estatísticas são de alta importância para a ciência e tecnologia, e o Python possui ótimas ferramentas que você pode usar para calculá-las. Os métodos de correlação do SciPy, NumPy e pandas são rápidos, abrangentes e bem documentados.

Neste tutorial, você aprenderá:

  • O que são os coeficientes de correlação de Pearson, Spearman e Kendall
  • Como usar as funções de correlação do SciPy, NumPy e pandas
  • Como visualizar dados, linhas de regressão e matrizes de correlação com o Matplotlib

Você começará com uma explicação sobre correlação, em seguida, verá três exemplos introdutórios rápidos e, finalmente, mergulhará nos detalhes das correlações do NumPy, SciPy e pandas.

Correlação

Estatísticas e ciência de dados frequentemente estão preocupadas com as relações entre duas ou mais variáveis (ou características) de um conjunto de dados. Cada ponto de dados no conjunto de dados é uma observação, e as características são as propriedades ou atributos dessas observações.

Cada conjunto de dados com o qual você trabalha utiliza variáveis e observações. Por exemplo, você pode estar interessado em entender o seguinte:

  • Como a altura dos jogadores de basquete está correlacionada com sua precisão de arremesso
  • Se existe uma relação entre a experiência de trabalho dos funcionários e seu salário
  • Qual dependência matemática existe entre a densidade populacional e o produto interno bruto de diferentes países

Nos exemplos acima, a altura, precisão de arremesso, anos de experiência, salário, densidade populacional e produto interno bruto são as características ou variáveis. Os dados relacionados a cada jogador, funcionário e país são as observações.

Quando os dados são representados na forma de uma tabela, as linhas desta tabela geralmente são as observações, enquanto as colunas são as características.

Vamos começar com um exemplo rápido para entender melhor como funcionam as correlações usando o NumPy, SciPy e pandas.

Exemplo: Cálculo de Correlação com NumPy

Vamos usar o NumPy para calcular o coeficiente de correlação de Pearson entre duas listas de valores. Primeiro, importe o NumPy:

import numpy as np

Em seguida, defina duas listas de valores que serão correlacionadas:

x = [1, 2, 3, 4, 5]
y = [1, 3, 5, 7, 9]

Agora, use a função np.corrcoef() do NumPy para calcular o coeficiente de correlação de Pearson:

correlation_matrix = np.corrcoef(x, y)
correlation_coefficient = correlation_matrix[0, 1]

O resultado será o coeficiente de correlação de Pearson entre as duas listas de valores.

Exemplo: Cálculo de Correlação com SciPy

Agora vamos ver como calcular a correlação usando o SciPy. Primeiro, importe o scipy.stats:

from scipy import stats

Novamente, defina duas listas de valores:

x = [1, 2, 3, 4, 5]
y = [1, 3, 5, 7, 9]

Use a função stats.pearsonr() para calcular o coeficiente de correlação de Pearson:

correlation_coefficient, p_value = stats.pearsonr(x, y)

O resultado será o coeficiente de correlação de Pearson e o valor p associado.

Exemplo: Cálculo de Correlação com pandas

Agora, vamos ver como calcular a correlação usando o pandas. Primeiro, importe o pandas:

import pandas as pd

Em seguida, crie um DataFrame com os dados que serão correlacionados:

data = {'x': [1, 2, 3, 4, 5], 'y': [1, 3, 5, 7, 9]}
df = pd.DataFrame(data)

Use o método corr() para calcular a matriz de correlação:

correlation_matrix = df.corr()

Isso retornará uma matriz com os coeficientes de correlação para todas as combinações de colunas do DataFrame.


Este tutorial cobriu o básico das correlações usando NumPy, SciPy e pandas. Agora você está equipado com o conhecimento necessário para calcular e visualizar correlações em seus projetos de ciência de dados com Python.