Hay dos vectores booleanos, que contienen solo 0 y 1. Si calculo la correlación de Pearson o Spearman, ¿son significativas o razonables?
Hay dos vectores booleanos, que contienen solo 0 y 1. Si calculo la correlación de Pearson o Spearman, ¿son significativas o razonables?
Respuestas:
La correlación de Pearson y Spearman se define siempre que tenga unos sy algunos s para las dos variables binarias, digamos y . Es fácil tener una buena idea cualitativa de lo que significan al pensar en un diagrama de dispersión de las dos variables. Claramente, solo hay cuatro posibilidades (por lo que es una buena idea temblar para sacudir puntos idénticos para la visualización). Por ejemplo, en cualquier situación en la que los dos vectores son idénticos, sujetos a tener unos 0 y unos 1 en cada uno, entonces, por definición, y la correlación es necesariamente . Del mismo modo, es posible quey luego la correlación es .
Para esta configuración, no hay margen para relaciones monótonas que no sean lineales. Al tomar rangos de sy s según la convención habitual de midrank, los rangos son solo una transformación lineal de los sy sy originales, y la correlación de Spearman es necesariamente idéntica a la correlación de Pearson. Por lo tanto, no hay ninguna razón para considerar la correlación de Spearman por separado aquí, o de hecho en absoluto.
Las correlaciones surgen naturalmente para algunos problemas que involucran sy s, por ejemplo, en el estudio de procesos binarios en el tiempo o el espacio. En general, sin embargo, habrá mejores formas de pensar sobre tales datos, dependiendo en gran medida del motivo principal de dicho estudio. Por ejemplo, el hecho de que las correlaciones tengan mucho sentido no significa que la regresión lineal sea una buena forma de modelar una respuesta binaria. Si una de las variables binarias es una respuesta, la mayoría de las personas estadísticas comenzarían considerando un modelo logit.
Existen métricas de similitud especializadas para vectores binarios, como:
etc.
Para más detalles, ver aquí .
No recomendaría usar el coeficiente de correlación de Pearson para datos binarios, vea el siguiente contraejemplo:
set.seed(10)
a = rbinom(n=100, size=1, prob=0.9)
b = rbinom(n=100, size=1, prob=0.9)
en la mayoría de los casos ambos dan un 1
table(a,b)
> table(a,b)
b
a 0 1
0 0 3
1 9 88
pero la correlación no muestra esto
cor(a, b, method="pearson")
> cor(a, b, method="pearson")
[1] -0.05530639
Sin embargo, una medida de similitud binaria como el índice Jaccard muestra una asociación mucho más alta:
install.packages("clusteval")
library('clusteval')
cluster_similarity(a,b, similarity="jaccard", method="independence")
> cluster_similarity(a,b, similarity="jaccard", method="independence")
[1] 0.7854966
¿Por qué es esto? Vea aquí la regresión bivariada simple
plot(jitter(a, factor = .25), jitter(b, factor = .25), xlab="a", ylab="b", pch=15, col="blue", ylim=c(-0.05,1.05), xlim=c(-0.05,1.05))
abline(lm(a~b), lwd=2, col="blue")
text(.5,.9,expression(paste(rho, " = -0.055")))
gráfico a continuación (pequeño ruido agregado para aclarar el número de puntos)