Звичайний коефіцієнт кореляції (в 2d) вимірює, наскільки добре набір точок можна описати рядком, і якщо так, то його знак говорить нам, чи є у нас позитивна чи негативна кореляція. Але це передбачає, що координати точок насправді можуть інтерпретуватися кількісно, наприклад, як вимірювання.
Якщо ви не можете цього зробити, але ви все одно можете замовити координати, є коефіцієнт кореляції рангів : він вимірює, наскільки добре точки можна описати монотонною функцією.
Виклик
Давши перелік 2d балів, визначте їх коефіцієнт кореляції рангів .
Деталі
- Ви можете вважати, що вхід є цілими натуральними числами (але цього не потрібно) або будь-якими іншими "відсортованими" значеннями.
- Точки можна сприймати як список точок або два списки для x- і y-координат або матриці або 2d-масиву тощо.
- Вихід повинен бути з плаваючою точкою або раціональним типом, оскільки він повинен представляти реальне число між 0 і 1.
Визначення
Ранг: Даючи список номерів, X=[x(1),...,x(n)]
ми можемо призначити позитивне число, яке rx(i)
називається рангом, для кожного запису x(i)
. Ми робимо це шляхом сортування списку та присвоєння індексу x(i)
у відсортованому списку rx(i)
. Якщо два або більше x(i)
мають однакове значення, то ми просто використовуємо середнє арифметичне всіх відповідних індексів як ранг. Приклад:
List: [21, 10, 10, 25, 3]
Indices sorted: [4, 2, 3, 5, 1]
Тут 10
з'являється два рази. У відсортованому списку він займав би індекси 2
та 3
. Середнє арифметичне серед них 2.5
так, чини є
Ranks: [4, 2.5, 2.5, 5, 1]
Ранг Коефіцієнт кореляції : Нехай [(x(1),y(1)),(x(2),y(2)),...,(x(n),y(n))]
бути задані точки , де кожен x(i)
і y(i)
дійсне число для кожного (без втрати спільності можна вважати , що це ціле число.) i=1,...,n
Обчислимо ранг rx(i)
і ry(i)
з x(i)
і y(i)
відповідно.
Нехай d(i) = rx(i)-ry(i)
буде різниця в рангу і нехай S
буде сума S = d(1)^2 + d(2)^2 + ... + d(n)^2
. Тоді коефіцієнт кореляції рангів rho
задається числом
rho = 1 - 6 * S / (n * (n^2-1))
Приклад
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
.