皮尔逊相关分析的MATLAB实现,corr(),corrcoef()函数使用 | 您所在的位置:网站首页 › matlab中如何计算 › 皮尔逊相关分析的MATLAB实现,corr(),corrcoef()函数使用 |
皮尔逊相关系数可以用来表述两个序列的相关性。
常常用来做数据分析、数据挖掘等工作。 如何简单快捷的实现皮尔逊相关,并得到结果? 需要应用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 rhoExample 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 实验室设备网 版权所有 |