matlab相关性分析

matlab相关性分析相关性分析一 皮尔逊相关系数 person 计算公式 样本协方差 Cov x y i 1n Xi X Yi Y n 1 Cov x y frac sum i 1 n X i bar X Y i bar Y n 1 Cov x y n 1 i 1n Xi X Yi Y 样本标准差 Sx i 1n Xi X 2n 1 S x sqrt frac sum i 1 n X i bar X 2 n 1 Sx n 1 i 1n X

相关性分析

一、皮尔逊相关系数

(person)

计算公式

样本协方差: C o v ( x , y ) = ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) n − 1 {Cov(x,y)=\frac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})}{n-1}} Cov(x,y)=n1i=1n(XiXˉ)(YiYˉ)

样本标准差 S x = ∑ i = 1 n ( X i − X ˉ ) 2 n − 1 {S_x=\sqrt{\frac{\sum_{i=1}^n(X_i-\bar{X})^2}{n-1}}} Sx=n1i=1n(XiXˉ)2

样本Person相关系数: r x y = C o v ( X , Y ) S x S y {r_{xy}=\frac{Cov(X,Y)}{S_xS_y}} rxy=SxSyCov(X,Y)

1.1 数据间的相关性检验

这里的相关系数指皮尔逊相关系数。

注意:要先进行描述性统计,即在matlab或spass中画出散点图,在线性的前提下进行检验其相关系数。

(SPSS中:图形 – 旧对话框 – 散点图/点图 – 矩阵散点图)

相关系数越接近于1,就越正相关;越接近于-1,则越负相关。

[R,P]=corrcoef(Test)

其中,

1、Test是一个矩阵,每一列为同一指标的一组数据,每一行是不同的指标,

2、R是皮尔逊相关系数,(即使相关系数接近于1或-1,也不一定就相关,受异常值的影响,这里在成线性关系的前提下检验才有意义)

3、P是一种概率值,若P<0.01,表示在99%的置信水平下,拒绝原假设;P<0.05或0.1同理,一般与0.05比较。

(R和P都是两两进行比较后得到的方阵。)

这里的原假设是 H 0 {H_0} H0:这两组数据的相关系数等于0。

那么拒绝原假设,则表示相关系数显著于0,并不是等于0的,有一定的相关性。

1.2 正态分布检验

前面检验相关系数时,前提除了要成线性关系,还要服从正态分布。

偏度就是判断数据的分布的图像是否两边均匀分布

峰度就是判断分布图像的尖锐程度,服从正态分布的话,这个值是3。

1.2.1 雅克-贝拉检验

(Jarque-Bera test)

适用于大样本情况 n>30 ,也称 JB 检验 J B = n 6 [ S 2 + ( K − 3 ) 2 4 ] {JB=\frac{n}{6}[S^2+\frac{(K-3)^2}{4}]} JB=6n[S2+4(K3)2]

1、第一个参数为一个向量,表示一个指标下的一组数据;

2、第二个表示显著性水平,一般取0.05;

3、返回值 h 为1或0,1表示拒绝原假设,0表示接收原假设。

4、p就是一个概率值,p<0.05则h等于1。

(这里h和p都是一个数值)

这里的原假设 H 0 {H_0} H0:这组数据服从正态分布。

例如:h为0,表示这组数据在95%的置信水平下,接收原假设,服从正态分布。

1.2.2 夏皮洛-威尔克检验

(Shapiro-wilk)

适用于小样本 3≤n≤50 ,用软件spass,导入数据后,在“分析”->“描述统计”->“探索”–>“图”,选中”含检验的正态图“即可。

1.2.3 Q-Q图

要求样本数据量非常大(不推荐)

matlab中的函数 plot(Test(:,1))

1、只要一个参数,值为一个向量

2、无返回值,出现一个figure

若图像几乎在一条直线上,则近似于正态分布。

二、斯皮尔曼相关系数

(spearman)

计算公式: r s = 1 − 6 ∑ i = 1 n d i 2 n ( n 2 − 1 ) {r_s=1-\frac{6\sum_{i=1}^nd_i^2}{n(n^2-1)}} rs=1n(n21)6i=1ndi2

其中, d i {d_i} di表示 X i {X_i} Xi Y i {Y_i} Yi之间的等级差,等级就是那一列数据按从小到大排序的排名。

另一种定义

斯皮尔曼相关系数被定义为等级之间的皮尔逊相关系数

matlab中的内置函数 corr 使用的是第二种定义方式。

2.1 corr 计算Spearman相关系数

用法

(1)corr(X,Y,‘type’,‘Spearman’)

X, Y为列向量

(2)corr(X,‘type’,‘Spearman’)

X为矩阵,计算X各列之间的相关系数

2.2 相关系数的检验

小样本

n≤30,直接查临界表即可,计算得到的相关系数 r 要大于临界值,才能得到显著的结论。

大样本

比较p值

corr函数用两个参数接收时,返回的第二个参数为p值。

三、总结

person相关系数要满足 连续数据、正态分布、线性关系,满足这些条件的情况下优先使用person相关系数,否则就使用Spearman相关系数,非线性、不满足正态分布等都可以用spearman。

除此之外,定序数据之间也用spearman相关系数,例如,优、良、差。

一般情况下,很难满足正态分布的条件,所以我们用spearman相关系数。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207945.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午12:43
下一篇 2026年3月19日 下午12:44


相关推荐

  • android之解析包时出现错误(二)

    为什么是二呢,之前遇到过一次了,详见http://blog.csdn.net/jason0539/article/details/12222173这次的原因不同,再记录下public class DownloadTask { /** * @param path下载地址 * @param filePath存储路径 * @param progressDialog进度

    2022年3月11日
    41
  • python 制作淘宝秒杀脚本

    python 制作淘宝秒杀脚本1. 安装pycharm。网上教程很多。2. 安装Selenium库。Selenium支持很多浏览器,我选择的是Firefox浏览器。因为我这里是Python3环境,自带的又pip,所以安装selenium直接使用pip安装安装方法:–打开cmd;–输入命令进入Python36/Scripts(找到下图的目录)目录下;–输入命令pipinstalls…

    2022年5月5日
    55
  • Java大数据学习路线图

    Java大数据学习路线图Java大数据学习路线图准备篇适用/适合人群:适合基础小白在这里还是要推荐下我自己建的大数据学习群:199427210,群里都是学大数据开发的,如果你正在学习大数据,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入。目标:掌握JavaS…

    2022年5月8日
    42
  • journalctl 清理journal日志

    journalctl 清理journal日志在CentOS7开始使用的systemd使用了journal日志,这个日志的管理方式和以往使用syslog的方式不同,可以通过管理工具维护。使用df-h检查磁盘文件,可以看到/run目录下有日志目录/run/log/journal,占用了数G空间FilesystemSizeUsedAvailUse%Mountedon/dev/ma…

    2022年5月23日
    42
  • 本地部署开源 AI 智能体项目 OpenClaw 并实现外部访问

    本地部署开源 AI 智能体项目 OpenClaw 并实现外部访问

    2026年3月13日
    1
  • setLayout()和GridData的设置[通俗易懂]

    setLayout()和GridData的设置[通俗易懂]总结:(1)setLayout()是设置界面布局,如界面有几行几列如jf.setLayout(newGridLayout(2,1));//容器共有2行1列。GridLayoutlayout=newGridLayout();layout.numColumns=4;//设置容器的列数layout.makeColumnsEqualWidth=false;//设…

    2022年5月10日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号