热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

matlab皮尔逊和斯皮尔曼,利用matlab计算Pearson和Spearman相关系数

Pearson相关系数考察两个事物(在数据里我们称之为变量)之间的相关程度,简单来说就是衡量两个数据集合是否在一条线上面。其计算公式为:或或N表示变量取

Pearson相关系数

考察两个事物(在数据里我们称之为变量)之间的相关程度,简单来说就是衡量两个数据集合是否在一条线上面。其计算公式为:

763b0133ba98a8a1bf263eb1e234f2de.pngc9bc44c02b551b218490a3ba2667b4bc.pngb5d54a87ffedd2a8988add2c13fa7c93.png

N表示变量取值的个数。

相关系数r的值介于–1与+1之间,即–1≤r≤+1。其性质如下:

当r>0时&#xff0c;表示两变量(当X的值增大(减小)&#xff0c;Y值增大(减小))正相关&#xff0c;r<0时&#xff0c;两变量为负相关(当X的值增大(减小)&#xff0c;Y值减小(增大))。

当|r|&#61;1时&#xff0c;表示两变量为完全线性相关&#xff0c;即为函数关系。

当r&#61;0时&#xff0c;表示两变量间无线性相关关系。

当0

当两个变量的标准差都不为零时&#xff0c;相关系数才有定义&#xff0c;皮尔逊相关系数适用于&#xff1a;

两个变量之间是线性关系&#xff0c;都是连续数据。

两个变量的总体是正态分布&#xff0c;或接近正态的单峰分布。

两个变量的观测值是成对的&#xff0c;每对观测值之间相互独立。

一个具体的计算例子&#xff1a;

X Y

1 2

2 5

3 6

15389d67cbe2ad856fea4e929e040f84.png

而利用matlab计算的话则可以使用函数 corrcoef或corr

先看一下help corrcoef的内容&#xff1a;

57bbceaa3d15822a4ca4100cc0aea434.png

再看一下help corr的内容

c9fe5237184bf0df742283690c12abca.png

对于前面提到的具体的计算例子&#xff0c;可以在matlab中实现如下&#xff1a;

x&#61;[1;2;3];

y&#61;[2;5;6];

r1&#61;corr(x,y,&#39;type&#39;,&#39;pearson&#39;);

r2&#61;corrcoef(x,y);最后可以看到

r1&#61;0.9608

r2&#61;

1.0000 0.9608

0.9608 1.0000

均与前面的计算结果相符。需要注意的是&#xff0c;使用corr函数时默认计算皮尔逊相关系数

Spearman相关系数

斯皮尔曼相关系数用来估计两个变量X、Y之间的相关性&#xff0c;其中变量间的相关性可以使用单调函数来描述。如果两个变量取值的两个集合中均不存在相同的两个元素&#xff0c;那么&#xff0c;当其中一个变量可以表示为另一个变量的很好的单调函数时(即两个变量的变化趋势相同)&#xff0c;两个变量之间的相关系数可以达到&#43;1或-1。

假设两个随机变量分别为X、Y(也可以看做两个集合)&#xff0c;它们的元素个数均为N&#xff0c;两个随机变量取的第i(1<&#61;i<&#61;N)个值分别用Xi、Yi表示。对X、Y进行排序(同时为升序或降序)&#xff0c;得到两个元素排行集合x、y&#xff0c;其中元素xi、yi分别为Xi在X中的排行以及Yi在Y中的排行。将集合x、y中的元素对应相减得到一个排行差分集合d&#xff0c;其中di&#61;xi-yi&#xff0c;1<&#61;i<&#61;N。随机变量X、Y之间的斯皮尔曼相关系数可以由x、y或者d计算得到&#xff0c;其计算方式如下所示&#xff1a;

由排行差分集合d计算而得(公式一)&#xff1a;

055f00b181f13ee88d28e3b30a1bdc26.png

由排行集合x、y计算而得(斯皮尔曼相关系数同时也被认为是经过排行的两个随机变量的皮尔逊相关系数&#xff0c;以下实际是计算x、y的皮尔逊相关系数)(公式二)&#xff1a;

9e8d53b46d5665958064d2a19d9cd221.png

以下是一个计算集合中元素排行的例子(仅适用于斯皮尔曼相关系数的计算)

338b0b36eb9306e063b2247c587bef85.png

这里需要注意&#xff1a;当变量的两个值相同时&#xff0c;它们的排行是通过对它们位置进行平均而得到的。

斯皮尔曼相关系数对数据条件的要求没有皮尔逊相关系数严格&#xff0c;只要两个变量的观测值是成对的&#xff0c;或者是由连续变量观测资料转化得到的&#xff0c;不论两个变量的总体分布形态、样本容量的大小如何&#xff0c;都可以用斯皮尔曼相关系数来进行研究。

使用matlab计算spearman相关系数则比较简单&#xff0c;也是使用corr函数&#xff0c;如下&#xff1a;

r&#61; corr(x, y, &#39;type&#39; , &#39;Spearman&#39;);

对于上面的例子&#xff0c;则可以计算出r&#61;1。

注意&#xff1a;使用Matlab自带函数计算斯皮尔曼相关系数时&#xff0c;需要保证X、Y均为列向量&#xff1b;Matlab自带的函数是通过公式二计算序列的斯皮尔曼相关系数的。



推荐阅读
  • 本文介绍了如何通过ARM编译器组件重定向标准C运行时库的I/O函数,以适应不同的硬件平台。原文链接:https://www.keil.com/pack/doc/compiler/RetargetIO/html/retarget_overview.html ... [详细]
  • 在使用高德地图内置导航功能时遇到AMapNavi组件出现空指针异常,经过多次排查发现问题是由于so库的兼容性引起的。本文将详细介绍如何通过调整项目配置来解决这一问题。 ... [详细]
  • 在树莓派Ubuntu(ARM64)上安装Node.js
    本文详细介绍了如何在树莓派Ubuntu系统(ARM64架构)上安装Node.js,包括下载、解压、移动文件以及创建软链接等步骤。 ... [详细]
  • 深入理解Docker网络管理
    本文介绍了Docker网络管理的基本概念,包括为什么需要Docker网络管理以及Docker提供的多种网络驱动模式。同时,文章还详细解释了Docker网络相关的命令操作,帮助读者更好地理解和使用Docker网络功能。 ... [详细]
  • 本文介绍了在Windows 7操作系统中设置电脑自动启动的步骤,包括通过BIOS设置来电启动以及使用任务计划程序实现定时开机的功能。此外,还提供了通过键盘、鼠标和网络唤醒等方式实现自动开机的多种方法。 ... [详细]
  • 高效检测与修复:安卓手机屏幕测试工具
    一款名为Display Tester的软件不仅能帮助用户检测手机屏幕的多种问题,还能尝试修复AMOLED屏幕的烧屏现象,为用户提供全面的屏幕健康管理方案。 ... [详细]
  • 2015款Chromebook Pixel评测:高端Chrome OS笔记本体验
    在笔记本电脑领域,Chromebook Pixel凭借其精致的铝合金外壳、细腻的显示屏和舒适的键盘,成为了外观设计的佼佼者。然而,尽管外观出众,它是否值得购买仍需考量。 ... [详细]
  • 近期遇到 M1 Mac Mini 在休眠状态下频繁自动重启的问题,通过日志分析尝试找出可能的原因。 ... [详细]
  • 手的温暖
    随着感恩节的到来,一位小学教师为她的学生们设计了一个特别的作业——描绘出他们心中感激的事物。这项作业不仅激发了孩子们的创造力,也揭示了他们内心深处的感激之情。 ... [详细]
  • Vue 项目构建与部署指南
    本文将指导您完成Vue项目的构建和部署过程,包括环境搭建、项目初始化及配置、以及最终的部署步骤。 ... [详细]
  • 探讨在C语言编程中,当头文件中声明了一个const变量,但在实现文件中却将其定义为非const变量时,编译器如何处理这一冲突。 ... [详细]
  • 余承东:美国制裁影响华为5G技术应用
    2021年7月29日,华为在线上发布会上发布了P50系列手机。华为消费者业务CEO余承东指出,由于美国实施的多轮制裁,华为面临5G技术受限的挑战,目前5G芯片仅能支持4G网络。尽管如此,华为仍致力于通过技术创新提供优质的用户体验。 ... [详细]
  • 开始之前CompositionAPI可以说是Vue3的最大特点,那么为什么要推出CompositionApi,解决了什么问题?通常使用 ... [详细]
  • 本文探讨了在使用MySQL数据库时遇到的一些基本问题,如连接失败和语句执行错误,并提供了多个有效的解决方案。 ... [详细]
  • 斯坦福区块链精英:从辍学到创业的传奇故事
    斯坦福大学的Griffin 304宿舍曾孕育了一批区块链领域的杰出人物。本文深入探讨了这些年轻人如何在校园内通过不懈努力和创新思维,逐步成长为行业领袖的故事。 ... [详细]
author-avatar
淡漠初夏0_176
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有