精华内容
下载资源
问答
  • 马氏距离+协方差公式+无偏估计

    千次阅读 2017-07-12 22:08:50
    以下资源均来自互联网马氏距离与其推导马氏距离就是用于度量两坐标点之间的距离关系,表示数据的协方差距离。与尺度无关的(scale-invariant),即独立于测量尺度。基本思想(intuition)如下图的过程(以两维度...

    以下资源均来自互联网

    马氏距离与其推导

    马氏距离就是用于度量两个坐标点之间的距离关系,表示数据的协方差距离。与尺度无关的(scale-invariant),即独立于测量尺度。

    基本思想(intuition)

    如下图的过程(以两个维度作为例子),此例的数据重心为原点,P1,P2到原点的欧氏距离相同,但点P2在y轴上相对原点有较大的变异,而点P1在x轴上相对原点有较小的变异。所以P1点距原点的直观距离是比P2点的小的。
    这里写图片描述
    马氏距离就是解决这个问题,它将直观距离和欧式距离统一。它先将数据不同维度上的方差统一(即各维度上的方差相同),此时的欧式距离就是直观距离
    这里写图片描述
    如图:统一方差后的图,P1到原点的距离小于P2。P1’到原点的欧式距离和P2的相同。以上所说的直观距离就是马氏距离。但是,如果不同维度之间具有相关性,则压缩的效果就不好了。如下图只在横向和纵向上压缩,则达不到上图的压缩效果。
    这里写图片描述
    所以在F1方向和F2方向上压缩数据才能达到较好的效果。所以需要将原始的在X坐标系中的坐标表示在F坐标系中。然后再分别沿着坐标轴压缩数据。

    所以,计算样本数据的马氏距离分为两个步骤:
    1. 坐标旋转
    2. 数据压缩

    坐标旋转的目标:使旋转后的各个维度之间线性无关,所以该旋转过程就是主成分分析的过程。
    数据压缩的目标:所以将不同的维度上的数据压缩成为方差都是1的的数据集。

    推导过程

    有一个原始的多维样本数据Xn×mXn×m(m列,n行):
    这里写图片描述
    其中每一行表示一个测试样本(共n个);
    Xi表示样本的第i个维度(共m个) Xi=(x1i x2i  xni)T ,以上多为样本数据记为X=(X1,X2⋯Xm)X=(X1,X2⋯Xm)。样本的总体均值为

    μX=(μX1,μX2,,μXm)

    其协方差为:
    这里写图片描述
    协方差矩阵是在具有一组样本后,表示数据的各维度之间的关系的。其中n是样本的数量
    假设将原始数据集 X通过坐标旋转矩阵 U旋转到新的坐标系统中得到一个新的数据集 F。(其实 XF表示的是同一组样本数据集,只是由于其坐标值不同,为了易于区分用了两个字母表示)
    这里写图片描述

    新数据集F的均值记为 μF=(μF1,μF2,,μFm) XμF=UμX

    由于将数据集旋转后数据的各维度之间是不相关的,所以新数据集F的协方差矩阵 ΣF 应该为对角阵。

    由于:
    这里写图片描述
    所以:
    这里写图片描述
    这里写图片描述

    每个 λi 就是每个维度值方差。
    由于 ΣX 是实对角阵,所以U是一个正交矩阵。
    以上是准备知识,下面推导一个样本点x=(x1,x2⋯xm)到重心μX=(μX1,μX2⋯μXm)的马氏距离。等价于求点f=(f1,f2⋯fm)压缩后的坐标值到数据重心压缩后的坐标值μF=(μF1,μF2⋯μFm)的欧式距离。
    这里写图片描述

    这就是马氏距离的的计算公式了。
    如果x是列向量
    这里写图片描述
    如果并把上文的重心点 μX=(μX1,μX2,,μXm) 改为任意一个样本点y,则可以得到x和y两个样本点之间的马氏距离公式为:
    这里写图片描述
    以上来自这里

    协方差公式

    统计学的基本概念

    学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合X={X1,…,Xn},依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。
    这里写图片描述

    很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。

    为什么需要协方差?

    面几个统计量看似已经描述的差不多了,但我们应该注意到,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的猥琐程度跟他受女孩子欢迎程度是否存在一些联系啊,嘿嘿~协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:
    这里写图片描述
    来度量各个维度偏离其均值的程度,标准差可以这么来定义:
    这里写图片描述

    协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说一个人越猥琐就越受女孩子欢迎,嘿嘿,那必须的~结果为负值就说明负相关的,越猥琐女孩子越讨厌,可能吗?如果为0,也是就是统计上说的“相互独立”。

    从协方差的定义上我们也可以看出一些显而易见的性质,如:
    这里写图片描述
    这里写图片描述

    协方差多了就是协方差矩阵

    上一节提到的猥琐和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算 n!(n2)!2 个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:
    这里写图片描述
    这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有{x,y,z}{x,y,z}三个维度,则协方差矩阵为:
    这里写图片描述
    可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。

    Matlab协方差实战

    上面涉及的内容都比较容易,协方差矩阵似乎也很简单,但实战起来就很容易让人迷茫了。必须要明确一点,### 协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。这个我将结合下面的例子说明,以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数。

    首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。

    MySample = fix(rand(10,3)*50)

    这里写图片描述

    根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,我一开始就老是困扰这个问题。前面我们也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要### 按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:

    dim1 = MySample(:,1);
    dim2 = MySample(:,2);
    dim3 = MySample(:,3);

    计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:

    sum( (dim1-mean(dim1)) .* (dim2-mean(dim2)) ) / ( size(MySample,1)-1 ) % 得到  74.5333
    sum( (dim1-mean(dim1)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -10.0889
    sum( (dim2-mean(dim2)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -106.4000

    搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算:

    std(dim1)^2 % 得到   108.3222
    std(dim2)^2 % 得到   260.6222
    std(dim3)^2 % 得到   94.1778

    这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证:

    cov(MySample)

    这里写图片描述
    把我们计算的数据对号入座,是不是一摸一样?
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Update:今天突然发现,原来协方差矩阵还可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新的到的样本矩阵乘上它的转置,然后除以(N-1)即可。其实这种方法也是由前面的公式通道而来,只不过理解起来不是很直观,但在抽象的公式推导时还是很常用的!同样给出Matlab代码实现:
    ···
    X = MySample - repmat(mean(MySample),10,1); % 中心化样本矩阵,使各维度均值为0
    C = (X’*X)./(size(X,1)-1);
    ···

    总结
    理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了~

    以上来自这里

    无偏估计

    https://www.zhihu.com/question/38185998

    展开全文
  • 协方差基本概念及公式

    万次阅读 2018-04-19 11:39:51
    协方差用于表示变量间的相互关系,变量间的相互关系一般有种:正相关,负相关和不相关。 正相关:假设有两个变量x和y,若x越大y越...协方差公式如下(2个变量的情况下):当维度多的时候可以用协方差矩阵来表示...

    协方差用于表示变量间的相互关系,变量间的相互关系一般有三种:正相关,负相关和不相关。

        正相关:假设有两个变量x和y,若x越大y越大;x越小y越小则x和y为正相关。

        负相关:假设有两个变量x和y,若x越大y越小;x越小y越大则x和y为负相关。

        不相关:假设有两个变量x和y,若x和y变化无关联则x和y为负相关。

    协方差的公式如下(2个变量的情况下):

    当维度多的时候可以用协方差矩阵来表示,公式如下:


    注意:协方差矩阵为对称矩阵并且对角线上的元素为各维度的方差。

    展开全文
  • 协方差协方差矩阵

    万次阅读 多人点赞 2018-12-29 10:10:32
    引言: 最近在看主成成分分析(PCA),其中有一步是计算样本各维度的协方差矩阵。 先找些资料复习总结如下: 协方差:  通常,提到方差时需要对其进一步区分...在概率论和统计中,协方差是对两随机变量联合分...

    引言:

    最近在看主成成分分析(PCA),其中有一步是计算样本各维度的协方差矩阵。

    先找些资料复习总结如下:

    协方差:

     通常,提到方差时需要对其进一步区分。(1)随机变量的协方差。跟数学期望,方差一样,

    是分布的一个总体参数。(2)样本的协方差。是样本集的一个统计量,可作为联合分布总体参数的

    一个估计。在实际中计算的通常是样本的协方差。

    在概率论和统计中,协方差是对两个随机变量联合分布线性相关程度的一种度量。两个随机变量

    越线性相关,协方差越大, 两个变量完全线性无关,协方差为零。定义如下:

                                                   

     当X,Y是同一个随机变量时,X与其自身的协方差就是X的方差,可以说方差是协方差的一个特例。

                                

    由于随机变量的取值范围不同,两个协方差不具备可比性。如X,Y,Z分别是三个随机变量,

    想要比较X与Y的线性相关程度强,还是X与Z的线性相关程度强,通过cov(X,Y)与cov(X,Z)

    无法直接比较。定义相关系数:

                                                       

    通过X的方差var(X)var⁡(X)与Y的方差var(Y)var⁡(Y)对协方差cov(X,Y)cov⁡(X,Y)归一化,得到相关系数η,η的取值范围是[−1,1][−1,1]。1表示完全线性相关,−1表示完全线性负相关,0表示线性无关。线性无关并不代表完全无关,更不代表相互独立。

     

    样本的协方差:

    在实际中,通常我们手头会有一些样本,样本有多个属性,每个样本可以看成一个多维随机变量

    的样本点,我们需要分析两个维度之间的线性关系。协方差及相关系数是度量随机变量间线性关系

    的参数,由于不知道具体分布,只能通过样本来进行估计。

     

    协方差矩阵( 多维随机变量的协方差矩阵)

     

    样本的协方差矩阵:

     

     

     

     

     

     

    展开全文
  • 首先我们给你一含有n样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。 很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们...

    学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。

    很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。

    为什么需要协方差?

    上面几个统计量看似已经描述的差不多了,但我们应该注意到,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的猥琐程度跟他受女孩子欢迎程度是否存在一些联系啊,嘿嘿~协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:

     

    来度量各个维度偏离其均值的程度,标准差可以这么来定义:

     

    协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说一个人越猥琐就越受女孩子欢迎,嘿嘿,那必须的~结果为负值就说明负相关的,越猥琐女孩子越讨厌,可能吗?如果为0,也是就是统计上说的“相互独立”。

    从协方差的定义上我们也可以看出一些显而易见的性质,如:


    协方差多了就是协方差矩阵

    上一节提到的猥琐和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算 n! / ((n-2)!*2) 个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:

     

    这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有三个维度,则协方差矩阵为

     

    可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。

    Matlab协方差实战

    上面涉及的内容都比较容易,协方差矩阵似乎也很简单,但实战起来就很容易让人迷茫了。必须要明确一点,协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。这个我将结合下面的例子说明,以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数(蓝色部分为Matlab代码)。

    首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。

    mysample = fix(rand(10,3)*50)

    根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,我一开始就老是困扰这个问题。前面我们也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:

    >> dim1 = mysample(:,1);
    >> dim2 = mysample(:,2);
    >> dim3 = mysample(:,3);

    计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:

    >> sum((dim1 - mean(dim1)) .* (dim2 - mean(dim2))) / (size(mysample, 1) - 1)  %得到 -147.0667
    >> sum((dim1 - mean(dim1)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1)  %得到  -82.2667
    >> sum((dim2 - mean(dim2)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1)  %得到   76.5111

    搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算:

    >> var(dim1)  %得到 227.8778
    >> var(dim2)  %得到 179.8222
    >> var(dim3)  %得到 156.7111

     这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证:

    >> cov(mysample)

     把我们计算的数据对号入座,是不是一摸一样?

    Update

    今天突然发现,原来协方差矩阵还可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新的到的样本矩阵乘上它的转置,然后除以(N-1)即可。其实这种方法也是由前面的公式推导而来,只不过理解起来不是很直观,但在抽象的公式推导时还是很常用的!同样给出Matlab代码实现:

    >> temp = mysample - repmat(mean(mysample), 10, 1);
    >> result = temp' * temp ./ (size(mysample, 1) - 1)

    总结

    理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了~ 

    展开全文
  • 协方差

    2020-08-19 17:24:08
    假设数据集有三个维度x,y,z,则协方差矩阵为 常用:PCA降维中需要计算相关系数矩阵(即协方差矩阵) 获得协方差矩阵方法:cov是numpy库中计算协方差的函数,可直接调用获得协方差矩阵 data_zs_cov = np.cov(data_zs...
  • 方差是用来度量单个随机变量的离散程度,而协方差则一般用来刻画两随机变量的相似程度,其中,方差的计算公式为 其中,[公式] 表示样本量,符号 [公式] 表示观测样本的均值,这定义在初中阶段就已经开始接触了。...
  • 协方差的意义和计算公式

    万次阅读 多人点赞 2016-04-06 14:43:46
    首先我们给你一含有n样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。 很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们...
  • 经过简单推导,可得协方差公式: 且有: 显然:X、Y独立时: 对于 2、协方差的性质 注: 二、相关系数 1、定义 2、性质 即: 注: 几等价命题: 、矩 X的k阶原点矩: X的k阶中心矩: X、Y的k+l阶...
  • 协方差的意义和计算公式整理

    千次阅读 2017-01-16 17:58:52
    协方差的意义和计算公式整理
  • 协方差矩阵的定义及其计算公式 (转)

    万次阅读 多人点赞 2017-02-10 00:07:06
    协方差矩阵的定义及其计算公式   (2014-03-20 18:36:56) 转载▼ ...协方差矩阵在机器学习中经常用到,查看wiki:...在统计学与概率论中,协方差矩阵是一矩阵,其每元素是各个向量元素
  • 意义和公式协方差

    2015-06-16 12:39:00
    意义和公式协方差 概率统计研究孩子知道,在最重要的概念的统计是样品平均值,方差,或带有标准偏差一起。首先,我们会给您一含n采集样本,叙述,这些高中学过数学的孩子都应该知道吧,一带而过。 均值: ...
  • 协方差介绍

    2020-05-19 06:13:15
    例如,从左到右的三个变量分别是某个对象的长度,宽度和高度。 每个行向量Xi是对三个变量(或分量)的另一观察。 均值向量由每个变量的均值组成,方差-协方差矩阵由沿着主对角线的变量的方差和其他矩阵位置中每对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,477
精华内容 3,790
热门标签
关键字:

三个变量的协方差公式