最近收到一项新任务,要求两个矩阵的相关系数,说白了就是转换成向量两两计算。本来这个工作我是想自己写个小程序搞定的,但是大家纷纷反映matlab自带了此项功能,本着活到老学到老的心态,我开始查找这个函数,目测貌似有两个函数可以直接调用,首先我们先来介绍下我们这里的相关系数。
皮尔逊积矩相关系数(Pearson product-moment correlation coefficient)
通常用γ或ρ表示,是用来度量两个变量之间的相互关系(线性相关)的,取值范围在[-1,+1]之间。
下面再说下可直接调用的函数
1.corrcoef
corrcoef(X):返回从矩阵X形成的一个相关系数矩阵,若X是一个m*n的矩阵,那么得到的相关系数矩阵A就是一个n*n的对称矩阵,A中的第i行第j列的元素表示的就是X第i列和第j列的相关系数。
corrcoef(X,Y):它的作用和corrcoef([X,Y])是一样的。
corrcoef函数算出来的是皮尔逊相关系数。
corrcoef函数计算相关系数是在matlab提供的cov函数基础上进行计算的,形成的矩阵是
2.corr
corr(X)输出的结果和corrcoef是一致的,但是corr可以自己选择相关系数的类型。matlab提供三种,默认的是皮尔逊相关系数,剩下的两种是kendall和spearman.
corr(X,'type','pearson')和corr(X)的结果是一样的。