前记

最近在狂找关于相关性的函数及使用,自己总结一下大佬们的理解。

matlab中自带函数

1、xcorr——互相关函数

 r = xcorr(x,y) r = xcorr(x)[r,lags] = xcorr(___)     % r是输出数据,lags是移位量(滑动偏移值)
  • 可以通过该函数对两个有时延的信号进行对齐处理。
  • 其原理在于将被选指标相对于基准指标前后移动若干个时间单位,然后对移动后的序列和基准指标序列求相关系数,最大的相关系数所对应的移动时间就是该指标领先或延迟的时间段
  • 示例可参见—— 序列的相关性与基于Cross-Correlation互相关函数的信号同步方法
  • 参照上博客的第一部分,是将y从左向右平移,遍历所有位移求内积。对应的lags即为滑动偏移值。
  • 注:lags是滞后索引,且xcorr的本质其实为保持x不动,移动y,因此当lags为正时,说明y此时是超前于x的,也即x比y滞后的值是lags,此处可以参考示例中的互相关原理,因此正负值是y相对于x的位置来说的。当为负值时,y位于x左侧,为正值时,y位于x右侧,而且两个序列都是从0开始的,无法向右移动,所以当lags为正,将x向左移进行对齐,lags为负时,将y向左移对齐。(个人理解,有错误请指正)
  • 关于该函数,也可以进行归一化来进行:
% 来自官方程序
n = 0:15;
x = 0.84.^n;
y = circshift(x,5);
[c,lags] = xcorr(x,y,10,'normalized');
stem(lags,c)

以下图片来自—— 序列的相关性

2、corrcoef——相关系数

  R = corrcoef(A) R = corrcoef(A,B)
  • 该函数的输出

    • 对于两个输入参数,R 是 2×2 矩阵,其中对角线元素为 1,非对角线元素为相关系数。具体可见官方函数介绍。
  • 示例及代码可参见——皮尔逊相关分析的MATLAB实现,corr(),corrcoef()函数使用

3、corr函数——线性或秩相关性

 rho = corr(X) rho = corr(X,Y) [rho,pval] = corr(X,Y)[rho,pval] =corr(___,Name,Value)
  • 该函数中可以加入计算相关性的类型(‘Type’),有:

    • ’Pearson’ (默认) | ‘Kendall’ | 'Spearman’
    • 示例如下:
 corr(X,Y,'Type','Kendall','Rows','complete')
  • 该函数中可以加入备择假设(‘Tail’),有:

    • ’both’ 检验相关性不为 0 的备择假设。
    • ’right’ 检验相关性大于 0 的备择假设
    • ’left’ 检验相关性小于 0 的备择假设。
    • 示例如下:
    • 注:一般认为,当P值小于0.05时,说明两个序列与‘’Tail‘’中假设内容显著相关。
      • p 为非零相关的假设检验值(位置与 r 对应),如果值小于 0.05 则相关性显著。
  [rho,pval] = corr(X,Y,'Tail','left')% 对应的p值为0,低于显著性水平0.05。同样,这些结果表明拒绝原假设,并得出相关性小于零的结论。% 输出的r对应的是某类型(默认皮尔逊系数)的相关性值,p为备择假设的值。

几个常见的显著水平的参数设置:

注:

  • 使用corr函数的两个变量X、Y,必须是列向量,而不能是行向量。(会跳一个NaN的矩阵)
  • 关于相关性参数的问题:
    • Pearson相关系数:最常使用,当数据满足正态分布时会使用该系数。两个连续变量间呈线性相关时,使用Pearson积差相关系数。由于其是在原始数据的方差和协方差基础上计算得到,所以对离群值比较敏感

      • 两个变量的标准差都不为零
      • 两个变量之间是线性关系,都是连续数据。
      • 两个变量的总体是正态分布,或接近正态的单峰分布。
      • 两个变量的观测值是成对的,每对观测值之间相互独立
      • 样本中存在的极端值对Pearson积差相关系数的影响极大
    • Spearman相关系数:当数据不满足正态性时使用。对原始变量的分布不做要求,属于非参数统计方法

      • 异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以异常值对Spearman相关性系数的影响也非常小
      • 对于服从Pearson相关系数的数据也可以计算Spearman相关系数,但统计效能比Pearson相关系数要低一些(不容易检测出两者事实上存在的相关关系)。
    • Kendall相关系数:用于判断数据一致性,比如裁判打分。同样是一种秩相关系数,用于反映分类变量相关性的指标,适用于两个变量均为有序分类(有序分类表示类间有强度的逐级递增关系)的情况
      下图来自知乎:相关性分析

相关性值的解释:

第一种解释—— 出自相关性分析

  • |r|>0.95 存在显著性相关;
  • |r|≥0.8 高度相关;
  • 0.5≤|r|<0.8 中度相关;
  • 0.3≤|r|<0.5 低度相关;
  • |r|<0.3 关系极弱,认为不相关

第二种解释: ——出自Matlab计算皮尔逊相关系数corr、互相关系数xcorr

  • 取绝对值后0-0.09为没有相关性,0.3-弱,0.1-0.3为弱相关,0.3-0.5为中等相关,0.5-1.0为强相关。

参考网址

官方corr函数讲解
官方corrcoef函数讲解
官方corr函数讲解
如何用Matlab计算相关系数和偏相关系数
相关性分析
数据的相关性分析
关于相关性的7个最常见问题
皮尔逊相关分析的MATLAB实现,corr(),corrcoef()函数使用——感觉写的较清楚
序列的相关性——xcorr对齐时延信号

关于matlab的相关性函数相关推荐

  1. matlab中xcorr函数详解

    Matlab中xcorr函数详解 引言 在matlab中查找相关函数时,找到了xcov函数和xcorr函数,仔细看了帮助文档,发现虽然计算公式不一样,但是两个函数用法相同,计算出的值也相同,于是在翻了 ...

  2. matlab pup,matlab利用bar函数画不同颜色直方图

    matlab利用bar函数画直方图,参考文献[1]是matlab官方提供的help文档.里面提供了bar函数的基本用法,但是没有说明如何在同一张图中,为每个bar设置不同的颜色. 例子代码: myda ...

  3. Matlab中bwmorph函数的使用

    Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...

  4. 9.matlab中repmat函数

    来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...

  5. 如何在Matlab中获取函数参数的数目?

    本图文详细介绍了Matlab中获取函数参数数目的方法.

  6. c++引用matlab类,matlab调用C++函数浅谈(一)

    由于在下才疏学浅,在网上看各高手指南时亦觉云里雾里,遂决定一切说明从最基础说起,一是方便自己(记性奇差),二是方便似我的小白.以下部分是我从各网站论坛等摘抄.重组.改写过的,以求更加详实明朗,由于参考 ...

  7. matlab语言unique,Matlab的unique函数的C++实现

    Matlab中的unique函数,实现的是去除重复元素,只保留一个,且剩下的非重元素按大小排列: C++中stl::unique函数与其不同之处在于:是去除相邻的重复元素,且不改变向量大小,把重复元素 ...

  8. matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first

    matlab中var函数的翻译For N-D arrays, VAR operates along the first matlab中var函数的翻译 For N-D arrays, VAR oper ...

  9. 【 MATLAB 】rem 函数介绍

    rem函数和mod函数很相似,二者认真看一个,另一个看一下区别即可. mod函数介绍:[ MATLAB ]mod 函数介绍 rem Remainder after division Syntax r ...

最新文章

  1. python3.6运行界面_python3.6 +tkinter GUI编程 实现界面化的文本处理工具
  2. java中mymaps_Java MyLocationStyle.myLocationType方法代码示例
  3. 利用SQL索引提高查询速度
  4. Keycloak Spring Security适配器的常用配置
  5. 基于Keras的LSTM多变量时间序列预测
  6. ONE- Open Navigator Engine 开放式浏览器引擎
  7. 那些数学不好的程序员?最后都如何了(文末送书)
  8. 算法(11)-leetcode-explore-learn-数据结构-链表的经典问题
  9. 李迟2022年3月工作生活总结
  10. gstat | 空间插值(三)——克里金插值之泛克里金和简单克里金
  11. The package lists or status file could not be parsed or opened.
  12. 《DSP using MATLAB》示例Example 8.5
  13. Visio 2019中文版软件下载和安装教程
  14. matlab int 求定积分
  15. Android之开发者模式配置全面(解决打开了开发者模式,程序还是不能烧进手机问题)
  16. APISpace IP归属地API
  17. QQ公众号微信公众号,左右互搏?
  18. 计算机工作理想湿度,计算机理想的工作温度七月的盛夏,碧空中没有一丝云彩,只剩下纯(9)...
  19. 那些看过一次后,就令人心里一动的美好词汇
  20. 大数据新时代依然需要古老的磁带存储技术

热门文章

  1. JMeter直连数据库报错Uncaught Exception java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z
  2. 星座图matlab是什么意思,如何理解Matlab星座图16QAM
  3. ORA-06512 问题解决
  4. 关于 AlphaBlend 和 32bpp 的反锯齿图标
  5. HTML_给文本加下划线
  6. layer.open属性详解 layui弹出层
  7. 来!带你深入理解分布式事务:原理与实战!
  8. 使用 MoveIt 控制自己的真实机械臂【4】——了解 MoveIt 的轨迹规划实现机制
  9. switch语句 while循环 do-while循环
  10. python 正则去除括号以及里边的内容