python 利用Scipy计算person 和spearman相关系数
python 利用Scipy计算person 和spearman相关系数
觉得有用的话,欢迎一起讨论相互学习~
- 学习以下两位大佬的讲解
(Pearson)皮尔逊相关系数和spearman相关系数(附python实现)
相关性系数及其python实现
皮尔逊相关系数
- 下面是皮尔逊相关系数的计算公式,只需要将(X和Y的协方差)/(X的标准差*Y的标准差)
spearman相关系数
简单的相关系数的分类
那么对于这两个系数,怎样的值才是好的呢,遵循下面的关系
0.8-1.0:极强相关
0.6-0.8:强相关
0.4-0.6:中等强度相关
0.2-0.4:弱相关
0.0-0.2:极弱或者无相关
区别
- 那么有个问题,是所有的变量都可以用这两个系数吗,这两个变量当然是有区别的,区别如下。
- 连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用spearman相关系数也可以,效率没有pearson相关系数高。
- 上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。
- 两个定序测量数据(顺序变量)之间也用spearman相关系数,不能用pearson相关系数。
- Pearson相关系数的一个明显缺陷是,作为特征排序机制,他只对线性关系敏感。如果关系是非线性的,即便两个变量具有一一对应的关系,Pearson相关性也可能会接近0。
Code
import scipy.stats# Create two lists of random values
x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
y = [2, 1, 2, 4.5, 7, 6.5, 6, 9, 9.5]
print(scipy.stats.pearsonr(x, y)[0])
# 0.9412443251336238
print(scipy.stats.spearmanr(x, y)[0])
# 0.903773601456181
Code-检验spearman和pearson之间的关系
# Create two lists of random values
x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
y = [2, 1, 2, 4.5, 7, 6.5, 6, 9, 9.5]# Calculate Spearman’s Rank Correlation
# Spearman’s rank correlation is the Pearson’s correlation coefficient of the ranked version of the variables.# Create a function that takes in x's and y's
def spearmans_rank_correlation(xs, ys):# Calculate the rank of x'sxranks = pd.Series(xs).rank()# Caclulate the ranking of the y'syranks = pd.Series(ys).rank()# Calculate Pearson's correlation coefficient on the ranked versions of the datareturn scipy.stats.pearsonr(xranks, yranks) # 计算pearson系数print(spearmans_rank_correlation(x, y)[0])
# 0.9037736014561808# Calculate Spearman’s Correlation Using SciPy
# 计算spearman秩相关系数
# Just to check our results, here it Spearman's using Scipy
print(scipy.stats.spearmanr(x, y)[0])
# 0.903773601456181
python 利用Scipy计算person 和spearman相关系数相关推荐
- python利用近似公式计算π_python如何利用公式计算π
python利用公式计算π的方法:首先导入数学模块及时间模块:然后计算Pi精确到小数点后几位数,代码为[print('n{:=^70}'.format('计算开始'))]:最后完成计算,代码为[pri ...
- python利用列表计算斐波那契数列前30项_python斐波那契数列的计算方法
题目: 计算斐波那契数列.具体什么是斐波那契数列,那就是0,1,1,2,3,5,8,13,21,34,55,89,144,233. 要求: 时间复杂度尽可能少 分析: 给出了三种方法: 方法1:递归的 ...
- python利用公式计算_从零开始用Python构造决策树(附公式、代码)
来源:Python中文社区 作者:weapon 本文长度为700字,建议阅读5分钟 本文介绍如何不利用第三方库,仅用python自带的标准库来构造一个决策树. 起步 熵的计算: 根据计算公式: 对应的 ...
- python利用公式计算_Python利用openpyxl处理Excel文件(公式实例)
前面我们学习了Python使用openpyxl模块处理Excel文件的大部分内容,今天,我们通过一个例子来学习Python使用Excel公式的方法,引出今天的主题利用openpyxl处理Excel公式 ...
- python利用列表计算斐波那契数列前30项并输出_python分享斐波那契数列示例分享 Python 分享斐波那契数列前20项和...
分享助python大神.斐波那契数列,编写程序,利用列具体内容 拜托拜托有时候,最痛苦的其实不是失去,而是你得到以后其实不快乐. ##缩进格式看图 l=[1,1] for i in range(28) ...
- python利用近似公式计算π_Excel函数公式大全之利用SUMSQ函数快速计算多个数据的平方和...
各位Excel天天学的小伙伴们大家好,欢迎收看Excel天天学出品的excel2019函数公式大全课程.今天我们要学习的函数是数学函数中的SUMSQ函数,SUMSQ函数的功能是快速计算多个数据的平方和 ...
- python利用scipy.integrate中的odeint方法解微分方程
一阶微分方程 dxdt+x=sin(t)\frac{\mathrm{dx}}{\mathrm{dt}}+x=\mathrm{sin}\left(t\right) dtdx+x=sin(t) from ...
- python利用列表计算斐波那契数列前30项并输出_python 题目:斐波那契数列计算;题目:站队顺序输出;题目:合法括号组合的生成;题目:用户登录(三次机会)...
斐波那契数列计算 B 描述 斐波那契数列如下: F(0) = 0, F(1) = 1 F(n) = F(n-1) + F(n-2) 编写一个计算斐波那契数列的函数,采用递归方式,输出不超过n的所有斐波 ...
- python利用公式计算e的值
目录 题目 思路 代码 结果 题目 思路 先创一个i=n=1,然后让i的范围取(1,1001 + x * 1000),然后通过循环利用i的值取值内来给这个 n *= 1 / i来赋值 最后把让e += ...
最新文章
- 使用Python从PDF导出数据
- java io字符输出流_【Java的IO流之文件字符输入输出流 25】
- SpringBoot使用security和jwt进行鉴权设计
- java编程实践开发项目,帮你突破瓶颈
- Altium Designer Exception ESocketError in module X2.EXE at 001B15CF (10107) on API 'Socket'
- 【剑指offer】_04 重建二叉树
- python爬取暖享图片
- springcloud灰度发布实现方案
- Markdown中跳转,锚点操作浅析
- MongoDB 自动分片 auto sharding
- java基础标识符,关键字,常量
- 王家林Spark视频
- 超级鸡马虚拟服务器,超级鸡马按键操作图文教程_超级鸡马怎么玩_牛游戏网
- 小学生数量成为楼市风向标?
- JS 日历插件 实现农历、节气 可自定义加班和休假
- 图片怎么压缩?这些方法值得收藏
- QMS-云质-质量管理软件-闲聊霍尼韦尔用13亿美元收购一家质量管理软件(QMS)小公司
- Ubuntu mirror source modify
- gdal_遥感影像配准
- 新浪企业邮箱服务器怎么设置,新浪企业邮箱|客户端使用