精华内容
下载资源
问答
  • cov函数 corrcoef函数【Matlab】

    万次阅读 2019-01-24 13:24:45
    12.cov函数 cov函数用于求协方差矩阵,计算协方差的数学公式为:cov(x1,x2)=E[(x1-u1)(x2-u2)]。其中,E是数学期望,u1=Ex1,u2=Ex2。cov函数的调用语法如下。 (1)C=cov(x):若x为一向量,返回的则是向量元素的...

    12.cov函数

    cov函数用于求协方差矩阵,计算协方差的数学公式为:cov(x1,x2)=E[(x1-u1)(x2-u2)]。其中,E是数学期望,u1=Ex1,u2=Ex2。cov函数的调用语法如下。

    (1)C=cov(x):若x为一向量,返回的则是向量元素的方差,为一标量;若x为一个矩阵,则返回协方差矩阵。

    (2)C=cov(x,y):计算列向量x、y的协方差,要求x、y具有相等的元素个数。如果x、y是矩阵,那么MATLAB会将其转换为列向量,相当于cov([A(:),B(:)])。

    【例4-27】  cov函数使用示例。

    >> A = [-1 1 2 ; -2 3 1 ; 4 0 3]

    A =

        -1     1     2

        -2     3     1

         4     0     3

    >> C=cov(A)                       %  协方差矩阵

    C =

       10.3333   -4.1667    3.0000

       -4.1667    2.3333   -1.5000

        3.0000   -1.5000    1.0000

    >> v = diag(cov(A))'              %  矩阵A每列的方差

    v =

       10.3333    2.3333    1.0000

    >> V = var(A)                  %  矩阵A每列的方差

    V =

       10.3333    2.3333    1.0000

    通过比较可以看出,协方差矩阵主对角线上的元素就是每列的方差。

     

    13.corrcoef函数

    corrcoef函数用来计算矩阵相关系数。相关系数用符号表示,是一个无量纲量,计算公式为:。函数corrcoef的调用语法如下。

    (1)corrcoef(x):若x为一个矩阵,返回的则是一个相关系数矩阵,其尺寸与矩阵x一样。

    (2)corrcoef(x,y):计算列向量x、y的相关系数,要求x、y具有相等的元素个数。如果x、y是矩阵,那么corrcoef函数会将其转换为列向量,相当于corrcoef([x(:),y(:)])。

    【例4-28】  随机生成一组数据,考察第4列和其他列的相关性。

    >> x = randn(30,4);     %  无关联的数据

    >> x(:,4) = sum(x,2);    %  引入相关性

    >> [r,p] = corrcoef(x)  %   计算样本相关性和p值

    r =

        1.0000    0.3006   -0.1030    0.6403

        0.3006    1.0000   -0.1786    0.6412

       -0.1030   -0.1786    1.0000    0.2719

        0.6403    0.6412    0.2719    1.0000

    p =

        1.0000    0.1065    0.5881    0.0001

        0.1065    1.0000    0.3449    0.0001

        0.5881    0.3449    1.0000    0.1461

        0.0001    0.0001    0.1461    1.0000

    >> [i,j] = find(p<0.05);  %  查找显著性相关

    >> [i,j]                    %  显示下标索引

    ans =

         4     1

         4     2

         1     4

         2     4

    展开全文
  • 想用MATLAB中的corrcoef函数求两个向量的相关系数。 举报违规检举侵权投诉|2011-02-23 21:32 匿名 | 分类:数学 | 浏览19891次 比如A=[1 2 3];B=[5 3 7]; r= corrcoef(A,B)可以求出相关系数是0.5.为什么两个向量...
    
    想用MATLAB中的corrcoef函数求两个向量的相关系数。
     
    比如A=[1 2 3];B=[5 3 7]; r= corrcoef(A,B)可以求出相关系数是0.5.为什么两个向量的元素都要是3个以上才行?而只有两个元素的向量如A=[1 2];B=[5 3];不管怎么随机的取,相关系数都是1或-1啊?只含两个元素的向量,都一定相关吗?

    这是求相关度的结果,对于一般的矩阵X,执行A=corrcoef(X)后,A中每个值的所在行a和列b,反应的是原矩阵X中相应的第a个列向量和第b个列向量的相似程度(即相关系数)。计算公式是:C(1,2)/SQRT(C(1,1)*C(2,2)),其中C表示矩阵[f,g]的协方差矩阵,假设f和g都是列向量(这两个序列的长度必须一样才能参与运算),则得到的(我们感兴趣的部分)是一个数。以默认的A=corrcoef(f,g)为例,输出A是一个二维矩阵(对角元恒为1),我们感兴趣的f和g的相关系数就存放在A(1,2)=A(2,1)上,其值在[-1,1]之间,1表示最大的正相关,-1表示绝对值最大的负相关

    >> A=[1 2 3];B=[5 3 7]; r= corrcoef(A,B)

    r =

        1.0000    0.5000

        0.5000    1.0000

    >> A=[1 2];B=[5 3];

       r= corrcoef(A,B)

    r =

        1.0000   -1.0000

       -1.0000    1.0000%%-1是算出来的,不是说二维向量就一定相关,根据图中r和协方差矩阵的关系

    cov(A,B)

    ans =

        0.5000   -1.0000

       -1.0000    2.0000%%%A和B的协方差矩阵

    那么R(1,2)=C(1,2)/(sqrt(C(1,1)*C(2,2)))=-1,sqrt为开方的意思。

    向左转|向右转

    追问
    非常感谢你的回答,真的是太详细了,我都抄在本子上了呵呵。但还是有一点不明白,
    “-1是算出来的,不是说二维向量就一定相关,”什么意思?为什么任何两个二维向量计算出来的相关系数都是1或者-1?你不是说“1表示最大的正相关,-1表示绝对值最大的负相关”吗?那么任何两个二维的向量都具有最大的正(负)相关性吗?相关系数为1,也就是相关的。我不是学数学的,是做课题的时候发现这个问题不明白。
    回答
    >> A=[1 0];B=[0 1];%%二维向量,不相关
       cov(A,B)
    ans =
        0.5000   -0.5000
       -0.5000    0.5000
    A=[1 2];B=[5 10];%%二维向量,相关
       cov(A,B)
    ans =
        0.5000    2.5000
        2.5000   12.5000
      正相关是指两列变量变动方向相同,一列变量由大到小或由小到大变化时,另一列变量亦由大到小或由小到大变化。
      负相关是指两列变量变动方向相反,一列变量由大到小或由小到大变化时,另一列变量反而由小到大或由大到小变化。
      matlab 函数corrcoef也是根据上面的概念计算的,关于二维向量计算总得到-1或者1的问题,我仔细看了下,上面的测试两组数据,可以看出协方差矩阵中sqrt(C(1,1)*C(2,2))=C(1,2)or-C(1,2)。也就是说不管你怎么换数据sqrt(C(1,1)*C(2,2))=C(1,2)or-C(1,2)这个式子总是成立的,所以我个人认为是样本数量(向量维数)少或者是这个函数的缺陷。
    提问者评价
    感谢。我大概明白了。如果向量只有两维,则只存在相关或不相关。没有定义相关的程度。除非样本数量多些
    展开全文
  • MATLAB Function Reference copyobj cosProvide feedback about this pagecorrcoefCorrelation coefficientsSyntaxR = corrcoef(X)R = corrcoef(x,y)[R,P]=corrcoef(...)[R,P,RLO,RUP]=corrcoef(...)[...]=...

    MATLAB Function Reference        copyobj   cos

    Provide feedback about this page

    corrcoef

    Correlation coefficients

    Syntax

    R = corrcoef(X)

    R = corrcoef(x,y)

    [R,P]=corrcoef(...)

    [R,P,RLO,RUP]=corrcoef(...)

    [...]=corrcoef(...,'param1',val1,'param2',val2,...)

    Description

    R = corrcoef(X) returns a matrix R of correlation coefficients calculated from an input matrix X whose rows are observations and whose columns are variables. The matrix R = corrcoef(X) is related to the covariance matrix C = cov(X) by

    corrcoef(X) is the zeroth lag of the normalized covariance function, that is, the zeroth lag of xcov(x,'coeff') packed into a square array.

    R = corrcoef(x,y) where x and y are column vectors is the same as corrcoef([x y]). If x and y are not column vectors, corrcoef converts them to column vectors. For example, in this case R=corrcoef(x,y) is equivalent to R=corrcoef([x(:) y(:)]).

    [R,P]=corrcoef(...) also returns P, a matrix of p-values for testing the hypothesis of no correlation. Each p-value is the probability of getting a correlation as large as the observed value by random chance, when the true correlation is zero. If P(i,j) is small, say less than 0.05, then the correlation R(i,j) is significant.

    [R,P,RLO,RUP]=corrcoef(...) also returns matrices RLO and RUP, of the same size as R, containing lower and upper bounds for a 95% confidence interval for each coefficient.

    [...]=corrcoef(...,'param1',val1,'param2',val2,...) specifies additional parameters and their values. Valid parameters are the following.

    'alpha'

    A number between 0 and 1 to specify a confidence level of 100*(1 - alpha)%. Default is 0.05 for 95% confidence intervals.

    'rows'

    Either 'all' (default) to use all rows, 'complete' to use rows with no NaN values, or 'pairwise' to compute R(i,j) using rows with no NaN values in either column i or j.

    The p-value is computed by transforming the correlation to create a t statistic having n-2 degrees of freedom, where n is the number of rows of X. The confidence bounds are based on an asymptotic normal distribution of 0.5*log((1+R)/(1-R)), with an approximate variance equal to 1/(n-3). These bounds are accurate for large samples when X has a multivariate normal distribution. The 'pairwise' option can produce an R matrix that is not positive definite.

    Examples

    Generate random data having correlation between column 4 and the other columns.

    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.

    r =

    1.0000   -0.3566    0.1929    0.3457

    -0.3566    1.0000   -0.1429    0.4461

    0.1929   -0.1429    1.0000    0.5183

    0.3457    0.4461    0.5183    1.0000

    p =

    1.0000    0.0531    0.3072    0.0613

    0.0531    1.0000    0.4511    0.0135

    0.3072    0.4511    1.0000    0.0033

    0.0613    0.0135    0.0033    1.0000

    ans =

    4     2

    4     3

    2     4

    3     4

    See Also

    cov, mean, median, std, var

    xcorr, xcov in the Signal Processing Toolbox

    展开全文
  • matlab——corrcoef函数的使用

    万次阅读 2016-04-28 15:05:58
    参考链接:... 可以计算两组数据的相关系数啊 >> a=[0.6557,0.0357,0.8491,0.9340,0.6787]; b=[0.7315,0.1100,0.8884,0.9995,0.6959]; corrcoef(a,b) ans = 1.0

    参考链接:http://www.zybang.com/question/cdba651ce57a115d8bad1eff7302e672.html

    可以计算两组数据的相关系数啊

    >> a=[0.6557,0.0357,0.8491,0.9340,0.6787];
    b=[0.7315,0.1100,0.8884,0.9995,0.6959];
    corrcoef(a,b)
    ans = 1.0000 0.9976 0.9976 1.0000
    % 第一个1是a与a的相关系数,左边第一个0.9976是a与b相关系数,第二个0.9976是b与a相关系数,第二个1是b与b的相关系数
    展开全文
  • 案例1: import numpy as np data=np.loadtxt('data5.txt',delimiter='\t') ...coorelation_matrix=np.corrcoef(x,rowvar=0) #相关性分析,rowvar=0表示对列进行分析 pd.DataFrame(coorelation...
  • Type corrcoef(Matrix<Type>x, Matrix<Type>y) { Vector<Type>tmp_x(x.size(), x.operator Type *()); Vector<Type>tmp_y(y.size(), y.operator Type *()); return myPearson(tmp_x, tmp_y); }  
  • corrcoefCorrelation coefficientsSyntaxR = corrcoef(X)R = corrcoef(x,y)[R,P]=corrcoef(...)[R,P,RLO,RUP]=corrcoef(...)[...]=corrcoef(...,'param1',val1,'param2',val2,...)DescriptionR = corrcoef(X) return...
  • % for i = 1:length(lon) for j = 1:length(lat) [r p] = corrcoef( squeeze(evap(i,j,:)), squeeze(prec(i,j,:)) ); corr(i,j) = r(1,2); end end [lat2d lon2d] = meshgrid(lat, lon); figure(1) set( gcf , '...
  • 相关系数公式: 其他详见:Python Numpy库 numpy.corrcoef()函数讲解
  • Python Numpy库 numpy.corrcoef()函数讲解

    万次阅读 多人点赞 2019-03-31 17:57:18
    例子: 代码: import numpy as np Array1 = [[1, 2, 3], [4, 5, 6]] Array2 = [[11, 25, 346], [734, 48, 49]] Mat1 = np.array(Array1) ...correlation = np.corrcoef(Mat1, Mat2) print("矩阵...
  • 需要应用MATLAB中的corr(X, Y)或者 corrcoef(X,Y)函数。 其中corr(X, Y)既可以计算矩阵相关也可以计算序列相关,而corrcoef(X,Y)中如果X, Y为矩阵,则会将其转换为序列再进行计算。 CORR 伪代码 X,Y # 为两个序列...
  • 求相关函数corrcoef 一般作用:1)结合图表评估数据拟合效果;2)评估两组数据之间的互相关联程度,大于0正相关,小于0负相关,等于0不相关。 但此种计算方法反映的是“线性相关”程度,对非线性相关结果不可靠(可...
  • matlab corrcoef 函数&n…

    千次阅读 2017-03-14 10:50:51
    格式 corrcoef(X,Y) %返回列向量X,Y的相关系数,等同于corrcoef([X Y])。 corrcoef (A)    %返回矩阵A的列向量的相关系数矩阵 例 >> A=[1 2 3;4 0 -1;1 3 9] A =  1  2  3  4  0  -1  1  3  9 >> C1...
  • 函数文件内所定义的变量为局部变量,只在函数文件内部起作用,函数文件执行完毕后,内部变量将被清除。 4.corr,xcorr,corrcoeff 1>corr(线性或秩相关性) 语法: rho = corr(X) 返回输入矩阵 X 中各列之间的两两...
  • 在numpy函数里可以通过修改bias参数改变。 2. cov(),corrcoef()/协方差,皮尔逊系数都是客观的计算两个 变量 的相关情况,我们要根据具体的算法去判断我们比较的是哪两个变量,这在具体的算法是不一样的。 例如,...
  • np.mean() 搬运 :...>>> a = np.array([[1, 2], [3, 4]]) >>> a array([[1, 2], [3, 4]]) >>> np.mean(a) 2.5 >>> np.mean(a, axis=0) # axis=0,计算每一列的均
  • Matlab计算相关系数

    千次阅读 2020-01-10 14:46:26
    Matlab使用corr函数和corrcoef函数计算r值和p值。
  • python:numpy的corrcoef计算相关系数

    千次阅读 2020-05-11 22:45:29
    corrcoef(x, y=None, rowvar=True, bias=np._NoValue, ddof=np._NoValue) 函数常用的是前三个参数,x和y分别是需要计算相关系数的两个随机变量,当rowvar为True(默认情况)时,每一行代表一个随机变量,否则每一列...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

corrcoef函数