matlab相关系数计算

一、相关系数
       具体的理论知识参见其他气象统计学教材。简单的说,相关系数r就是求两个大小相同样本的相关性,范围在-1到1之间。样本的相关性并不能代表总体也是相关的,因此需要做统计检验。常用的检验方法是t检验法。理论的方法是给定信度alpha,根据自由度n-2通过查表查出talpha,来给出是否通过检验。这是最一般也是最常用的两个序列的相关分析方法。此外,还包括复相关系数和偏相关系数等计算,具体见相关理论教材讲解。
二、matlab中实现相关函数:corrcoef函数
简单介绍该函数用法,具体help。
      Syntax   

R = corrcoef(X)
R = corrcoef(x,y)
[R,P]=corrcoef(...)
[R,P,RLO,RUP]=corrcoef(...)
[...]=corrcoef(...,'param1',val1,'param2',val2,...)

corrcoef函数计算得到的R是相关矩阵,对角线是自己和自己做相关,因此得到的值为1.R是一个对称矩阵,R(i,j)表示第i列与第j列做相关。做相关时,是对矩阵X的列做相关,也就是说列数是变量的数目,而行数是各变量的样本数。返回的P值如果小于0.05,表示相关显著性强,越接近0越强。RLO和RUP表示每一个相关系数95%置信区间的上界和下界。param表示可修改相应参数,如alpha值等等。见来源于help中的一个例子:

x = randn(30,4);     % Uncorrelated data
x(:,4) = sum(x,2);   % Introduce correlation.
[r,p] = corrcoef(x)  % Compute sample correlation and p-values.
[i,j] = find(p<0.05);  % Find significant correlations.
[i,j]                % Display their (row,col) indices.
在matlab当中可以使用xcorr函数来求序列的自相关和互相关。
使用方法:
c = xcorr(x,y)  返回矢量长度为2*N-1互相关函数序列,其中x和y的矢量长度均为N,如果x和y的长度不一样,则在短的序列后补零直到两者长度相等。
c = xcorr(x) 为矢量x的自相关估计。
c = xcorr(x,y,'option') 为有正规化选项的互相关计算;其中选项为"biased"为有偏的互相关函数估计;"unbiased"为无偏的互相关函数估计;"coeff"为0延时的正规化序列的自相关计算;"none"为原始的互相关计算。
在Matalb中,求解xcorr的过程事实上是利用Fourier变换中的卷积定理进行的。

可以查阅这篇博客了解xcorr函数的实现过程:自相关和互相关在matlab中的实现
也可以查阅matlab论坛中教学直接用FFt变换求两个序列互相关的方法:matlab求两个序列的互相关函数

================================================================================================
相关程度与相关函数的之间的联系
在概率论和统计学中,相关(Correlation,或称相关系数或关联系数),显示两个随机变量之间线性关系的强度和方向。在统计学中,相关的意义是用来衡量两个变量相对于其相互独立的距离。最常用的是皮尔逊积矩相关系数。其定义是两个变量协方差除以两个变量的标准差(方差的平方根)。

    相关系数只是一个比率,不是等单位量度,无什么单位名称,也不是相关的百分数,一般取小数点后两位来表示。相关系数的正负号只表示相关的方向,绝对值表示相关的程度。因为不是等单位的度量,因而不能说相关系数0.7是0.35两倍,只能说相关系数为0.7的二列变量相关程度比相关系数为0.35的二列变量相关程度更为密切和更高。也不能说相关系数从0.70到0.80与相关系数从0.30到0.40增加的程度一样大。

对于相关系数的大小所表示的意义目前在统计学界尚不一致,但通常按下是这样认为的:
相关系数      相关程度
0.00-±0.30    微相关
±0.30-±0.50  实相关
±0.50-±0.80  显著相关
±0.80-±1.00  高度相关
================================================================================================
在matlab中使用corrcoef函数可以求两个序列的相关度
corrcoef(x,y)表示序列x和序列y的相关系数,得到的结果是一个2*2矩阵,其中对角线上的元素分别表示x和y的自相关,非对角线上的元素分别表示x与y的相关系数和y与x的相关系数,两个是相等的。 

你可能感兴趣的:(matlab相关系数计算)