皮尔逊相关分析的MATLAB实现,corr(),corrcoef()函数使用 您所在的位置:网站首页 matlab中如何计算 皮尔逊相关分析的MATLAB实现,corr(),corrcoef()函数使用

皮尔逊相关分析的MATLAB实现,corr(),corrcoef()函数使用

2023-11-12 21:43| 来源: 网络整理| 查看: 265

皮尔逊相关系数可以用来表述两个序列的相关性。

常常用来做数据分析、数据挖掘等工作。

如何简单快捷的实现皮尔逊相关,并得到结果? 需要应用MATLAB中的corr(X, Y)或者 corrcoef(X,Y)函数。

其中corr(X, Y)既可以计算矩阵相关也可以计算序列相关,而corrcoef(X,Y)中如果X, Y为矩阵,则会将其转换为序列再进行计算。

CORR

在这里插入图片描述 伪代码

X,Y # 为两个序列并且都是列向量. pearson_corr = corr(X, Y) # 求X, Y序列的皮尔逊相关系数.

该函数同样可以设置参数计算不同的相关系数。

'Pearson' (the default) computes Pearson's linear correlation coefficient 'Kendall' computes Kendall's tau 'Spearman' computes Spearman's rho

Example 1

A = randn(10,1); B = randn(10,1); R = corrcoef(A,B) X = corr(A,B)

如果corr()输入为向量则其输出为两个向量相关性的标量系数。

R = 1.000000000000000 0.327514034455913 0.327514034455913 1.000000000000000 X = 0.327514034455913

即R(1,2)= R(2,1)= X

Example 2

rng('default') x = randn(30,4); y = randn(30,4); y(:,4) = sum(x,2); % introduce correlation [r,p] = corr(x,y)

其中 r 为两个矩阵中列向量间的相关系数,p 为非零相关的假设检验值(位置与 r 对应),如果值小于 0.05 则相关性显著。

r = -0.1686 -0.0363 0.2278 0.6901 0.3022 0.0332 -0.0866 0.2617 -0.3632 -0.0987 -0.0200 0.3504 -0.1365 -0.1804 0.0853 0.4908 p = 0.3731 0.8489 0.2260 0.0000 0.1045 0.8619 0.6491 0.1624 0.0485 0.6039 0.9166 0.0577 0.4721 0.3400 0.6539 0.0059 CORRCOEF

在这里插入图片描述 其中corrcoef( )返回的 P 值同样为假设检验值,在corr()中解释过不再解释,详情请见MATLAB帮助文档。

Example 1

x = randn(6,1); y = randn(6,1); A = [x y 2*y+3]; R = corrcoef(A)

上述例子中A为(6,3)矩阵,将其每列看作一组变量的序列,进行相关性计算,得到结果

R = 1.0000 -0.6237 -0.6237 -0.6237 1.0000 1.0000 -0.6237 1.0000 1.0000

对角线上由于是变量自相关所以都是1,元素(2,3)由于 y 与 2*y+3 是线性相关所以相关系数也是1。

Example 2

A = randn(10,1); B = randn(10,1); R = corrcoef(A,B)

上述A,B分别为长度为10的列向量,函数将两个列向量看作两个变量进行相关性分析。

R = 1.0000 0.4518 0.4518 1.0000


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有