El coeficiente de correlación habitual (en 2d) mide qué tan bien se puede describir un conjunto de puntos por una línea, y en caso afirmativo, su signo nos dice si tenemos una correlación positiva o negativa. Pero esto supone que las coordenadas de los puntos se pueden interpretar cuantitativamente, por ejemplo, como medidas.
Si no puede hacer eso, pero aún puede ordenar las coordenadas, existe el coeficiente de correlación de rango : mide qué tan bien los puntos pueden ser descritos por una función monotónica .
Desafío
Dada una lista de puntos 2d, determine su coeficiente de correlación de rango .
Detalles
- Puede suponer que la entrada son enteros positivos (pero no es necesario) o cualquier otro valor "ordenable".
- Los puntos se pueden tomar como una lista de puntos, o dos listas para las coordenadas X e Y o una matriz o matriz 2D, etc.
- La salida debe ser un punto flotante o de tipo racional, ya que debe representar un número real entre 0 y 1.
Definiciones
Rango: Dada una lista de números X=[x(1),...,x(n)]
, podemos asignar un número positivo rx(i)
llamado rango a cada entrada x(i)
. Lo hacemos ordenando la lista y asignando el índice de x(i)
en la lista ordenada rx(i)
. Si dos o más x(i)
tienen el mismo valor, entonces solo usamos la media aritmética de todos los índices correspondientes como rango. Ejemplo:
List: [21, 10, 10, 25, 3]
Indices sorted: [4, 2, 3, 5, 1]
El número 10
aparece dos veces aquí. En la lista ordenada ocuparía los índices 2
y 3
. La media aritmética de esos es 2.5
que los rangos son
Ranks: [4, 2.5, 2.5, 5, 1]
Coeficiente de correlación de rango : Sean [(x(1),y(1)),(x(2),y(2)),...,(x(n),y(n))]
los puntos dados donde cada x(i)
y y(i)
es un número real (wlog. Puede suponer que es un número entero) Para cada uno i=1,...,n
calculamos el rango rx(i)
y ry(i)
de x(i)
y y(i)
respectivamente.
Sea d(i) = rx(i)-ry(i)
la diferencia de rango y S
sea la suma S = d(1)^2 + d(2)^2 + ... + d(n)^2
. Entonces el coeficiente de correlación de rango rho
viene dado por
rho = 1 - 6 * S / (n * (n^2-1))
Ejemplo
x y rx ry d d^2
21 15 4 5 -1 1
10 6 2&3 -> 2.5 2 0.5 0.25
10 7 2&3 -> 2.5 3 -0.5 0.25
25 11 5 4 1 1
3 5 1 1 0 0
rho = 1 - 6 * (1+0.25+0.25+1)/(5*(5^2-1)) = 0.875
2.5
.