数学建模学习笔记(十一)三大相关系数(pearson[皮尔森]、spearman[斯皮尔曼] 和 kendall[肯德尔])

举报
zstar 发表于 2022/08/06 02:01:58 2022/08/06
【摘要】 三大相关系数分别是pearson[皮尔森]、spearman[斯皮尔曼] 和 kendall[肯德尔] 反应的都是两个变量之间变化趋势的方向以及程度,其值范围为-1到+1,0表示两个变量不相关,正值表示正...

三大相关系数分别是pearson[皮尔森]、spearman[斯皮尔曼] 和 kendall[肯德尔]
反应的都是两个变量之间变化趋势的方向以及程度,其值范围为-1到+1,0表示两个变量不相关,正值表示正相关,负值表示负相关,值越大表示相关性越强。

三大相关公式参考:公式链接

翻阅资料,文字说明简直让人头晕雾绕,在此写下我对它们的简单理解,如有不正确的地方烦请指出

pearson相关系数是考察数据间的线性相关性,数值为[-1,1],1代表它们正线性相关,-1代表它们负线性相关。

spearman秩相关系数,秩代表顺序,比如序列A:1,2,3,4,5,序列B:-1,0,1,4,5,大小顺序一样,则该相关系数为1

kendall秩相关系数:也是顺序,和spearman相比,所计算的对象是分类变量。举个例子。比如评委对选手的评分(优、中、差等),我们想看两个(或者多个)评委对几位选手的评价标准是否一致;或者医院的尿糖化验报告,想检验各个医院对尿糖的化验结果是否一致,这时候就可以使用肯德尔相关性系数进行衡量。

pandas代码:

# coding: utf-8
import numpy as np
import pandas as pd
 
def Pearson(df): # 计算 Pearson 相关系数
    return df.corr()
 
def Kendall(df): # 计算 Kendall Tau 相关系数
    return df.corr('kendall')
 
def Spearman(df): # 计算 Spearman 秩相关
    return df.corr('spearman')
 
if __name__ == "__main__":
    df = pd.DataFrame({'A': np.random.randint(1, 100, 10),  # low、high、size
                       'B': np.random.randint(1, 100, 10),
                       'C': np.random.randint(1, 100, 10)})
    print df
    print "Pearson"
    print Pearson(df)
    print "Kendall Tau"
    print Kendall(df)
    print "Spearman:"
    print Spearman(df)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

文章来源: zstar.blog.csdn.net,作者:zstar-_,版权归原作者所有,如需转载,请联系作者。

原文链接:zstar.blog.csdn.net/article/details/113141731

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。