【问题标题】:Difference in between Covariance and Correlation Matrix协方差和相关矩阵之间的差异
【发布时间】:2016-05-26 12:10:03
【问题描述】:

在 Matlab 中,我创建了一个大小为 (244x2014723) 的矩阵 A 和一个大小为(244x1)的矩阵B

我能够使用corr(A,B) 计算相关矩阵,它产生了一个大小为2014723x1 的矩阵。因此,矩阵 A 的每一列都与矩阵 B 相关,并在大小为 2014723x1 的矩阵中给出一个行值。

我的问题是,当我使用 cov(A,B) 请求协方差矩阵时,我收到一条错误消息,提示 A 和 B 的大小应该相同。为什么我会收到此错误?查找corr(A,B) 的方法与cov(A,B) 有何不同?

【问题讨论】:

    标签: matlab matrix correlation covariance


    【解决方案1】:

    如果您阅读文档,答案就很清楚了:

    cov:

    如果 A 和 B 是观察矩阵,则 cov(A,B) 将 A 和 B 视为向量,等效于 cov(A(:),B(:))。 A 和 B 的大小必须相等。

    corr

    corr(X,Y) 返回一个 p1×p2 矩阵,其中包含 n×p1 和 n×p2 矩阵 X 和 Y 中每对列之间的成对相关系数。

    corr(X,Y) 与 MATLAB® 函数 corrcoef(X,Y) 的区别在于 corrcoef(X,Y) 返回两个列向量 X 和 Y 的相关系数矩阵。如果 X 和 Y不是列向量,corrcoef(X,Y) 将它们转换为列向量。

    获得向量与矩阵每一列的协方差的一种方法是使用循环。另一种方法(根据大小可能效率低下)是

    C = cov([B,A])
    

    然后查看第一行(或第一列)或C

    【讨论】:

      【解决方案2】:

      link

      在 more about 部分中,描述如何为 cov(A,B) 计算 cov 的方程清楚地说明了为什么它们需要具有相同的大小。总和仅针对枚举 A、B 的元素的一个变量。

      【讨论】:

        猜你喜欢
        • 2017-02-12
        • 2019-04-15
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        • 2019-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多