tipos tabla spearman ejemplo correlacion coeficiente r correlation

tabla - Correlación de spearman y lazos.



tabla de correlacion de spearman (6)

Bueno, Kendall tau rank correlation es también una prueba no paramétrica para la dependencia estadística entre dos variables ordinales (o transformadas por rango), como Spearman''s, pero a diferencia de Spearman, puede manejar los empates .

Más específicamente, hay tres estadísticas tau de Kendall: tau-a, tau-b y tau-c. tau-b está específicamente adaptado para manejar lazos.

El estadístico tau-b maneja los lazos (es decir, ambos miembros del par tienen el mismo valor ordinal) por un término divisor, que representa la media geométrica entre el número de pares no vinculados en x y el número no vinculado en y.

La tau de Kendall no es de Spearman, no son lo mismo, pero también son bastante similares. Deberá decidir, según el contexto, si los dos son lo suficientemente similares para que uno pueda ser sustituido por el otro.

Por ejemplo, tau-b :

Kendall_tau_b = (P - Q) / ( (P + Q + Y0)*(P + Q + X0) )^0.5

P : número de pares concordantes (''concordante'' significa los rangos de cada miembro del par de puntos de datos de acuerdo)

Q : número de pares discordantes

X0 : número de pares no empatados en x

Y0 : número de pares no empatados en y

De hecho, hay una variante del rho de Spearman que explícitamente explica los lazos. En situaciones en las que necesitaba una estadística de correlación de rango no paramétrica, siempre he elegido tau sobre rho. La razón es que rho suma los errores al cuadrado , mientras que tau suma las discrepancias absolutas . Dado que tanto tau como rho son estadísticas competentes y nos queda por elegir, siempre me ha parecido una penalización lineal en las discrepancias (tau), una forma más natural de expresar la correlación de rango. Eso no es una recomendación, su contexto podría ser muy diferente y dictar lo contrario.

Estoy calculando la rho de Spearman en pequeños conjuntos de clasificaciones pareadas. Spearman es bien conocido por no manejar los lazos adecuadamente. Por ejemplo, tomando 2 conjuntos de 8 clasificaciones, incluso si 6 son empates en uno de los dos conjuntos, la correlación es muy alta:

> cor.test(c(1,2,3,4,5,6,7,8), c(0,0,0,0,0,0,7,8), method="spearman") Spearman''s rank correlation rho S = 19.8439, p-value = 0.0274 sample estimates: rho 0.7637626 Warning message: Cannot compute exact p-values with ties

Y el valor p <.05, que parece ser un significado estadístico bastante alto para estos datos. ¿Hay una versión corregida de empates de Spearman en R? ¿Cuál es la mejor fórmula hasta la fecha para calcularla con muchos vínculos?


Creo que exact=FALSE hace el truco.

cor.test(c(1,2,3,4,5,6,7,8), c(0,0,0,0,0,0,7,8), method="spearman", exact=FALSE) Spearman''s rank correlation rho data: c(1, 2, 3, 4, 5, 6, 7, 8) and c(0, 0, 0, 0, 0, 0, 7, 8) S = 19.8439, p-value = 0.0274 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.7637626


El documento "Un nuevo coeficiente de correlación de rango con aplicación al problema de clasificación de consenso" tiene como objetivo resolver el problema de clasificación con empate. También menciona que Tau-b no debe utilizarse como una medida de correlación de clasificación para medir el acuerdo entre los ordenamientos débiles.

Emond, EJ y Mason, DW (2002), Un nuevo coeficiente de correlación de rangos con aplicación al problema de clasificación por consenso. J. Multi-Crit. Decis. Anal., 11 : 17-28. doi: 10.1002 / mcda.313


Estaba teniendo un problema similar y al leer las respuestas aquí y el archivo de ayuda en RI vi que, cuando tiene vínculos, debe agregar el parámetro exact = FALSE ) a la función cor.test() . Al agregar esto, no intenta calcular un valor de P exacto, sino que "el estadístico de prueba es la estimación escalada a la media de la varianza y la variación de la unidad, y se distribuye aproximadamente con normalidad". El resultado, en mi caso, fue exactamente el mismo, pero sin la advertencia sobre los empates.

cor.test(x, y, method = "spearm", exact = FALSE)


cor.test con method = "spearman" en realidad calcula el coeficiente de Spearman corregido para los empates. Lo verifiqué calculando "manualmente" los coeficientes de Spearman corregidos y no corregidos a partir de las ecuaciones en Zar 1984, Análisis bioestadístico. Aquí está el código: simplemente sustituya sus propios nombres de variables para comprobarlo usted mismo:

ym <- data.frame(lousy, dors) ## my data ## ranking variables ym$l <- rank(ym$lousy) ym$d <- rank(ym$dors) ## calculating squared differences between ranks ym$d2d <- (ym$l-ym$d)^2 ## calculating variables for equations 19.35 and 19.37 in Zar 1984 lice <- as.data.frame(table(ym$lousy)) lice$t <- lice$Freq^3-lice$Freq dorsal <- as.data.frame(table(ym$dors)) dorsal$t <- dorsal$Freq^3-dorsal$Freq n <- nrow(ym) sum.d2 <- sum(ym$d2d) Tx <- sum(lice$t)/12 Ty <-sum(dorsal$t)/12 ## calculating the coefficients rs1 <- 1 - (6*sum.d2/(n^3-n)) ## "standard" Spearman cor. coeff. (uncorrected for ties) - eq. 19.35 rs2 <- ((n^3-n)/6 - sum.d2 - Tx - Ty)/sqrt(((n^3-n)/6 - 2*Tx)*((n^3-n)/6 - 2*Ty)) ## Spearman cor.coeff. corrected for ties - eq.19.37 ##comparing with cor.test function cor.test(ym$lousy,ym$dors, method="spearman") ## cor.test gives tie-corrected coefficient!


  • Lanza corregida por lazos

    Usar method="spearman" te da el Spearman corregido por los lazos. La rho de Spearman, según la definición, es simplemente el coeficiente de correlación muestral de Pearson calculado para los rangos de datos muestrales. Así funciona tanto en presencia como en ausencia de vínculos. Puedes ver que después de reemplazar tus datos originales con sus rangos (midranks para empates) y usar method="pearson" , obtendrás el mismo resultado:

    > cor.test(rank(c(1,2,3,4,5,6,7,8)), rank(c(0,0,0,0,0,0,7,8)), method="pearson") Pearson''s product-moment correlation data: rank(c(1, 2, 3, 4, 5, 6, 7, 8)) and rank(c(0, 0, 0, 0, 0, 0, 7, 8)) t = 2.8983, df = 6, p-value = 0.0274 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.1279559 0.9546436 sample estimates: cor 0.7637626

    Tenga en cuenta que existe una versión simplificada de Spearman de no vínculos , que de hecho se utiliza en la cor.test() de cor.test() en ausencia de vínculos, pero es equivalente a la definición anterior.

  • Valor de p

    En el caso de vínculos en los datos, los valores p exactos no se calculan ni para Spearman ni para las medidas de Kendall (dentro de la implementación de cor.test() ), de ahí la advertencia. Como se mencionó en la publicación de Eduardo, para no recibir una advertencia, debe establecer exact=FALSE ,