Como calcular a correlação de classificação de spearman em python
Nas estatísticas, a correlação refere-se à força e à direção de uma relação entre duas variáveis. O valor de um coeficiente de correlação pode variar de -1 a 1, com as seguintes interpretações:
- -1: uma relação negativa perfeita entre duas variáveis
- 0: nenhuma relação entre duas variáveis
- 1: uma relação positiva perfeita entre duas variáveis
Um tipo especial de correlação é chamado de correlação de classificação de Spearman , que é usada para medir a correlação entre duas variáveis classificadas. (por exemplo, a classificação da pontuação no exame de matemática de um aluno em relação à classificação da pontuação no exame de ciências em uma turma).
Este tutorial explica como calcular a correlação de classificação de Spearman entre duas variáveis em Python
Exemplo: correlação de classificação de Spearman em Python
Suponha que temos o seguinte DataFrame do pandas que contém a pontuação do exame de matemática e a pontuação do exame de ciências de 10 alunos em uma turma específica:
import pandas as pd #createDataFrame df = pd. DataFrame ({'student': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], 'math': [70, 78, 90, 87, 84, 86, 91, 74, 83, 85], 'science': [90, 94, 79, 86, 84, 83, 88, 92, 76, 75]})
Para calcular a correlação do Spearman Rank entre as pontuações de matemática e ciências, podemos usar a função spearmanr() em scipy.stats :
from scipy. stats import spearmanr
#calculate Spearman Rank correlation and corresponding p-value
rho, p = spearmanr(df[' math '], df[' science '])
#print Spearman rank correlation and p-value
print (rho)
-0.41818181818181815
print (p)
0.22911284098281892
A partir do resultado, podemos ver que a correlação de classificação de Spearman é -0,41818 e o valor p correspondente é 0,22911 .
Isso indica que há uma correlação negativa entre as notas dos exames de ciências e matemática.
No entanto, como o valor p da correlação não é inferior a 0,05, a correlação não é estatisticamente significativa.
Observe que também poderíamos usar a seguinte sintaxe para simplesmente extrair o coeficiente de correlação ou valor p:
#extract Spearman Rank correlation coefficient
spearmanr(df[' math '], df[' science '])[0]
-0.41818181818181815
#extract p-value of Spearman Rank correlation coefficient
spearmanr(df[' math '], df[' science '])[1]
0.22911284098281892
Recursos adicionais
Como calcular a correlação de classificação de Spearman em R
Como calcular a correlação de classificação de Spearman no Excel
Como calcular a correlação de classificação de Spearman no Stata