matlab相关性分析

相关性分析

一、皮尔逊相关系数

(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 正态分布检验

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

skewness(x) %偏度S,x是一个向量
kurtosis(x) %峰度K

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

峰度就是判断分布图像的尖锐程度,服从正态分布的话,这个值是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]

matlab进行JB检验的语法:
[ h , p ] = j b t e s t ( T e s t ( : , 1 ) , 0.05 ) [h,p] = jbtest(Test(:,1),0.05) [h,p]=jbtest(Test(:,1),0.05)
其中,

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中的函数 qqplot(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相关系数。

posted @ 2020-11-14 21:52  karryK  阅读(1086)  评论(0编辑  收藏  举报