Correlación de Spearman (spearman) artículo de análisis de correlación explicación detallada + código de ejemplo de Python


prefacio

El análisis de correlación es uno de los conocimientos básicos de muchos algoritmos y modelado, muy clásico. El análisis de correlación se puede utilizar para calcular y expresar muchas correlaciones de características y tendencias relacionadas. Entre ellos, hay tres coeficientes de correlación comunes: el coeficiente de correlación de la persona, el coeficiente de correlación de Spearman y el coeficiente de correlación de rango tau-b de Kendall. Cada uno tiene su propio uso y escenarios de uso. Por supuesto, escribiré todos los algoritmos y principios de cálculo + códigos de los tres coeficientes de correlación anteriores en mi columna. En la actualidad, la columna sobre modelado matemático ha escrito sobre algoritmos de predicción de aprendizaje automático tradicionales, algoritmos de dimensión, algoritmos de predicción de series temporales y algoritmos de peso. Los estudiantes que estén interesados ​​en esta necesidad pueden ir y echar un vistazo.

Explicación detallada del análisis de correlación de Pearson + código de ejemplo de Python


1. Definición

A menudo se representa con la letra griega ρ. Es una medida no paramétrica de la dependencia de dos variables. Evalúa la correlación de dos variables estadísticas utilizando una ecuación monótona. Si no hay valores repetidos en los datos, y cuando dos variables están perfectamente correlacionadas de forma monótona, el coeficiente de correlación de Spearman es +1 o −1. El coeficiente de correlación de Spearman se definió como el coeficiente de correlación de Pearson entre las variables de rango. Para una muestra con un tamaño de muestra de n , donde n datos sin procesar se transforman en datos de clasificación, el coeficiente de correlación ρ es:

 En aplicaciones prácticas o problemas específicos, la conexión entre variables es irrelevante, y se restan los elementos correspondientes de las dos variables observadas para obtener una diferencia d, entonces la fórmula anterior también se puede transformar en:

 donde d_ies la diferencia de grado entre y X_{yo}.Y_{i}

d_ise calcula como:

2. Escenarios de uso relacionados con Spearman

Las condiciones aplicables del coeficiente de correlación de Spearman son más amplias que las del coeficiente de correlación de Pearson, siempre que los valores observados de las dos variables sean datos de calificación emparejados, o los datos de calificación obtenidos al transformar los datos observados de la variable continua, independientemente de las dos variables La forma de distribución general y el tamaño del tamaño de la muestra se pueden estudiar con el coeficiente de correlación de rango de Spearman. Se puede usar siempre que los datos satisfagan una relación monótona (como función lineal, función exponencial, función logarítmica, etc.).

El coeficiente de correlación de Spearman es menos sensible a los valores atípicos porque se calcula en función de la clasificación y la diferencia entre los valores reales no tiene un impacto directo en los resultados del cálculo.

3. Cálculo del coeficiente de correlación de Spearman

Al igual que la función utilizada en el artículo anterior, puede utilizar la función pandas corr:

DataFrame.corr(method='pearson', 
               min_periods=1,
               numeric_only=_NoDefault.no_default)

 Descripción de parámetros:

método: {'pearson', 'kendall', 'spearman'} or callable。Método de correlación。

  • pearson : coeficiente de correlación estándar, coeficiente de Pearson

  • kendall : coeficiente de correlación Tau de Kendall, coeficiente de Kendall

  • spearman : correlación de rango de Spearman, coeficiente de Spearman

min_periods : int, opcional. El número mínimo de muestras requeridas para cada par de columnas. Actualmente solo disponible para correlaciones de Pearson y Spearman.

numeric_only : bool, por defecto True. Solo contiene datos de coma flotante, enteros o booleanos.

Es simple de implementar:

rho =df_test.corr(method='spearman')
rho

Mapa de calor:

plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
sns.heatmap(rho, annot=True)
plt.title('Heat Map', fontsize=18)

 

O use la función de estado de scipy, el efecto es el mismo:

import numpy as np
from scipy import stats
 
stats.spearmanr(data1,data2)

 4. Prueba de hipótesis del coeficiente de correlación de Spearman

Dividido en dos casos: muestra pequeña y muestra grande

En el caso de muestras pequeñas (n ≤ 30), comprobar directamente la tabla de valores críticos
H0: rs = 0; H1: rs ≠ 0
Utilizar el coeficiente de correlación de Spearman r obtenido para comparar con el valor crítico correspondiente.

 En el caso de muestras grandes, la estadística

 H0: rs = 0; H1: rs ≠ 0, calcule el valor de prueba z*, encuentre el valor p correspondiente y compárelo con 0.05.


Preste atención para evitar perderse, si hay algún error, deje un mensaje para recibir asesoramiento, muchas gracias.

Eso es todo por este tema. Estoy atascado, si tiene alguna pregunta, no dude en dejar un mensaje para discutir, hasta la próxima

 Referirse a

Modelado matemático - coeficiente de correlación (4) - Coeficiente de correlación de Spearman (spearman)

 

Supongo que te gusta

Origin blog.csdn.net/master_hunter/article/details/128609473
Recomendado
Clasificación