常用的相关系数(在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)
是实数对于每一个(wlog你可以认为它是一个整数。)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
。