Como realizar um teste de correlação em python (com exemplo)
Uma forma de quantificar a relação entre duas variáveis é utilizar o coeficiente de correlação de Pearson , que mede a associação linear entre duas variáveis .
Sempre assume um valor entre -1 e 1 onde:
- -1 indica uma correlação linear perfeitamente negativa
- 0 indica nenhuma correlação linear
- 1 indica uma correlação linear perfeitamente positiva
Para determinar se um coeficiente de correlação é estatisticamente significativo, você pode calcular a pontuação t e o valor p correspondentes.
A fórmula para calcular o escore t de um coeficiente de correlação (r) é:
t = r * √ n-2 / √ 1-r 2
O valor p é então calculado como o valor p bicaudal correspondente para a distribuição t com n-2 graus de liberdade.
Exemplo: teste de correlação em Python
Para determinar se o coeficiente de correlação entre duas variáveis é estatisticamente significativo, você pode realizar um teste de correlação em Python usando a função pearsonr da biblioteca SciPy .
Esta função retorna o coeficiente de correlação entre duas variáveis, bem como o valor p bicaudal.
Por exemplo, suponha que temos as duas tabelas a seguir em Python:
#create two arrays
x = [3, 4, 4, 5, 7, 8, 10, 12, 13, 15]
y = [2, 4, 4, 5, 4, 7, 8, 19, 14, 10]
Podemos importar a função Pearsonr e calcular o coeficiente de correlação de Pearson entre as duas tabelas:
from scipy. stats . stats import pearsonr #calculation correlation coefficient and p-value between x and y pearsonr(x, y) (0.8076177030748631, 0.004717255828132089)
Veja como interpretar o resultado:
- Coeficiente de correlação de Pearson (r): 0,8076
- Valor p bilateral: 0,0047
Sendo o coeficiente de correlação próximo de 1, isso nos diz que existe uma forte associação positiva entre as duas variáveis.
E como o valor p correspondente é inferior a 0,05, concluímos que existe uma associação estatisticamente significativa entre as duas variáveis.
Observe que também podemos extrair o coeficiente de correlação individual e o valor p da função de Pearson :
#extract correlation coefficient (rounded to 4 decimal places) r = round(pearsonr(x, y)[ 0 ], 4) print (r) 0.8076 #extract p-value (rounded to 4 decimal places) p = round(pearsonr(x, y)[ 1 ], 4) print (p) 0.0047
Esses valores são um pouco mais fáceis de ler em comparação com a saída da função Pearsonr original.
Recursos adicionais
Os tutoriais a seguir fornecem informações adicionais sobre coeficientes de correlação:
Uma introdução ao coeficiente de correlação de Pearson
O que é considerado uma correlação “forte”?
As cinco hipóteses da correlação de Pearson