利用Python计算Spearman相关系数,非调用函数,针对array和list的实现

本文介绍了如何不依赖现成函数,手动计算Spearman相关系数。详细讲解了从数据排序、计算秩统计量、处理相等值到最终计算相关系数的全过程,并分别展示了针对array和list的数据类型实现。
摘要由CSDN通过智能技术生成

利用Python计算Spearman相关系数,非调用函数,针对array和list的实现

自己编程实现Spearman相关系数的计算。

Spearman相关系数

Spearman相关系数是一种秩相关系数。数据的秩简单来说就是该样本数据的次序统计量。秩统计量是基于样本值的大小在全体样本中所占位次(秩)的统计量

例:有样本数据-0.8, -3.1, 1.1, -5.2, 4.2,次序统计量的值是-5.2, -3.1, -0.8,1.1, 4.2,则秩统计量的取值是3,2,4,1,5。

若观测数据中两个值相等,则秩取为它们应排序位置的平均值。

例:有样本数据-0.8, -3.1, -0.8,秩为2.5, 1, 2.5。

Spearman相关系数计算公式:

其中,Ri是X的秩统计量,Si是Y的秩统计量,Spearman相关系数定义为这两组秩统计量的相关系数。

拆解任务

  • 读入数据
  • 排序
  • 第一次计算秩统计量
  • 查找是否有相等数据,纠正次序统计量
  • 计算Spearman相关系数

排序

array形式

da2 = pd.read_excel(fb,header = None)
da3 = da2.values                            #将pd格式转换成数组
row = da2.shape[0]
col = da2.shape[1]

sa1 = np.sort(da3[:,0])                     #数据排序
sa2 = np.sort(da3[:,1])
sb1 = da3[:,0]
sb2 = da3[:,1]
pr = np.ones((1,row))
ps = np.ones((1,row))

list形式

wb = xlrd.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值