zoukankan      html  css  js  c++  java
  • 具体解释协方差与协方差矩阵

    协方差的定义

     

    对于一般的分布,直接代入E(X)之类的就能够计算出来了,但真给你一个详细数值的分布,要计算协方差矩阵,依据这个公式来计算,还真不easy反应过来。网上值得參考的资料也不多,这里用一个样例说明协方差矩阵是怎么计算出来的吧。

    记住,XY是一个列向量,它表示了每种情况下每一个样本可能出现的数。比方给定

    X表示x轴可能出现的数,Y表示y轴可能出现的。注意这里是关键,给定了4个样本,每一个样本都是二维的,所以仅仅可能有XY两种维度。所以

     

    用中文来描写叙述,就是:

    协方差(i,j)=(第i列的全部元素-i列的均值)*(第j列的全部元素-j列的均值)

    这里仅仅有X,Y两列,所以得到的协方差矩阵是2x2的矩阵,以下分别求出每个元素:

           所以,依照定义,给定的4个二维样本的协方差矩阵为:

     

        

    matlab计算这个样例

    z=[1,2;3,6;4,2;5,2]

    cov(z)

    ans =

        2.9167   -0.3333

       -0.3333    4.0000

    能够看出,matlab计算协方差过程中还将元素统一缩小了3倍。所以,协方差的matlab计算公式为:

        协方差(i,j)=(第i列全部元素-i列均值)*(第j列全部元素-j列均值)/(样本数-1

           以下在给出一个43样本的实例,注意4维样本与符号X,Y就没有关系了,X,Y表示两维的,4维就直接套用计算公式,不用X,Y那么具有迷惑性的表达了。

     

     

     

       

                    

            (3)与matlab计算验证

                         Z=[1 2 3 4;3 4 1 2;2 3 1 4]

                         cov(Z)

                         ans =

                              1.0000    1.0000   -1.0000   -1.0000

                              1.0000    1.0000   -1.0000   -1.0000

                             -1.0000   -1.0000    1.3333    0.6667

                              -1.0000   -1.0000    0.6667    1.3333

           可知该计算方法是正确的。我们还能够看出,协方差矩阵都是方阵,它的维度与样本维度有关(相等)。參考2中还给出了计算协方差矩阵的源码,很简洁易懂,在此感谢一下!

     

    參考:

    [1] http://en.wikipedia.org/wiki/Covariance_matrix

    [2] http://www.cnblogs.com/cvlabs/archive/2010/05/08/1730319.html

     

     

  • 相关阅读:
    Checking Types Against the Real World in TypeScript
    nexus pip proxy config
    go.rice 强大灵活的golang 静态资源嵌入包
    几个golang 静态资源嵌入包
    rpm 子包创建学习
    Rpm Creating Subpackages
    ava 类似jest snapshot 功能试用
    ava js 测试框架基本试用
    The Architectural Principles Behind Vrbo’s GraphQL Implementation
    graphql-compose graphql schema 生成工具集
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4231648.html
Copyright © 2011-2022 走看看