样本协方差矩阵的定义与计算

摘要:
协方差矩阵的定义用于测量一组随机变量之间的线性关系。众所周知,对于$n$随机变量$X_1,X_2,…,X_n$,全局协方差矩阵定义为:$left[egin{矩阵}D(X_1)&Cov(X_1,X_2)&amp,dots&Cov(X_2,X_n)Cov(X_2,X_1)&D(X_2)&aamp;dots&aamp;Cov&
定义

  协方差矩阵是用来衡量一组随机变量之间的线性关系的矩阵。我们都知道,对于$n$个随机变量$X_1,X_2,...,X_n$,总体协方差矩阵定义为:

$ left[ egin{matrix} D(X_1)&Cov(X_1,X_2)&dots&Cov(X_1,X_n)\ Cov(X_2,X_1)&D(X_2)&dots&Cov(X_2,X_n)\ & &vdots& \ Cov(X_n,X_1)&Cov(X_n,X_2)&dots&D(X_n)\ end{matrix} ight] $

  其中

$ egin{aligned} &D (X_i) = E(X_i^2)-E(X_i)^2\ &Cov(X_i,X_j) = E(X_iX_j)-E(X_i)E(X_j) end{aligned} $

  但是对于给定样本,怎么算样本协方差矩阵呢?

  假设我们对以上$n$个随机变量同时进行独立抽样$m$次,定义第$j$次抽样获得的$n$个样本值为$x_1^j,x_2^j,...,x_n^j$。我们知道样本对总体方差的无偏估计为:

$ egin{gather} egin{aligned} &hat{sigma}_i^2 =  frac{1}{m-1}sumlimits_{j=1}^m(x_i^j-overline {x_i})^2\  &overline {x_i} =  frac{1}{m}sumlimits_{j=1}^mx_i^j end{aligned}label{}end{gather} $

  样本对总体协方差的无偏估计也是类似的:

$ egin{gather} egin{aligned} &hat{Cov}(x_i,x_j) =  frac{1}{m-1}sumlimits_{k=1}^m(x_i^k-overline {x_i})(x_j^k-overline {x_j}) \ end{aligned}label{} end{gather} $

  所以样本协方差矩阵就是由$(1),(2)$两个估计量组成的。根据定义,样本协方差矩阵是能计算了,但是这样一个一个算的话时间复杂度是很高的。下面记录直接对矩阵进行的样本协方差矩阵的计算。

计算

  对于$n$个随机变量$X_1,X_2,...,X_n$,同时进行$m$次独立抽样,将获得的样本值排列为矩阵:

$ A = left[ egin{matrix} x_1^1&x_2^1&dots&x_n^1\ x_1^2&x_2^2&dots&x_n^2\ & &vdots& \ x_1^m&x_2^m&dots&x_n^m\ end{matrix} ight] $

  其中每行为某次抽样获得的$n$个随机变量的样本值,每列为某个随机变量在$m$次抽样种获得的样本值。

  首先计算所有随机变量的均值,获得向量:

$ egin{aligned} mu = frac{1}{m}sumlimits_{i=1}^mA_{i:} end{aligned} $

  然后对$A$和$mu$做差(向量广播到矩阵后做差),获得所有样本减去均值后的矩阵

$ B= left[ egin{matrix} x_1^1 - overline{x_1}&x_2^1 - overline{x_2}&dots&x_n^1- overline{x_n}\ x_1^2 - overline{x_1}&x_2^2 - overline{x_2}&dots&x_n^2- overline{x_n}\ & &vdots& \ x_1^m - overline{x_1}&x_2^m - overline{x_2}&dots&x_n^m- overline{x_n}\ end{matrix} ight] $

  最后计算$B^TB$再除以$m-1$获得协方差矩阵。为了便于理解理解,下面列出$B^TB$:

$ B^TB= left[ egin{matrix} left[ egin{matrix} x_1^1- overline{x_1}\x_2^1- overline{x_2}\vdots\x_n^1- overline{x_n} end{matrix} ight] left[ egin{matrix} x_1^2- overline{x_1}\x_2^2- overline{x_2}\vdots\x_n^2- overline{x_n} end{matrix} ight] dots left[ egin{matrix} x_1^m- overline{x_1}\x_2^m- overline{x_2}\vdots\x_n^m- overline{x_n} end{matrix} ight] end{matrix} ight] left[ egin{matrix} left[x_1^1 - overline{x_1} ight.&x_2^1 - overline{x_2}&dots&left.x_n^1- overline{x_n} ight]\ left[x_1^2 - overline{x_1} ight.&x_2^2 - overline{x_2}&dots&left.x_n^2- overline{x_n} ight]\ & &vdots& \ left[x_1^m - overline{x_1} ight.&x_2^m - overline{x_2}&dots&left.x_n^m- overline{x_n} ight]\ end{matrix} ight] $

  矩阵内部的括号表示某次抽样。以上这些操作用Python的numpy库都是很容易实现的。

  实际上,$B^TB$就是$n$个随机变量抽样$m$次获得的$n$个$m$维向量标准化后两两内积所形成的$n$维格拉姆矩阵。

免责声明:文章转载自《样本协方差矩阵的定义与计算》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SonarQube6.7.1配置与使用案例软件测试学习随笔(3) 等价类划分之三个输入框下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

1050. 螺旋矩阵(25)

1050. 螺旋矩阵(25) 本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m*n等于N;m>=n;且m-n取所有可能值中的最小值。 输入格式: 输入在第1行中给出一个正整数N,第2行给出N个待填充的正整数。所有数字不超过104...

CUSPARSE 第三章 CUSPARAE索引和数据格式

(纯属自学笔记,部分翻译,不会翻译的不翻译) 3.1 索引基本格式       该函数库支持 zero- and one-based 索引. The index base 是通过 cusparseIndexBase_t 选择, 且是一个独立参数,或者是矩阵形容器 cusparseMatDescr_t type的一部分 3.2 向量格式      略 3.3...

matlab学习:人脸识别之PCA( Principal Component Analysis )

1.链接推荐 关于理解PCA的推荐链接:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html 关于理解SVD的推荐链接:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-...

矩阵理论 第八讲 矩阵函数的求法

第八讲 矩阵函数的求法 一、利用Jordan标准形求矩阵函数。 对于矩阵的多项式,我们曾导出,:多项式 实际上,以上结果不仅对矩阵的多项式成立,对矩阵的幂级数也成立。由此引出矩阵函数的另一种定义及计算方法。 1. 定义:设n阶矩阵A的Jordan标准形为J , 有非奇异矩阵P使得: 对于函数f(z),若下列函数 均有意义,则称矩阵函数f(A...

C/C++ 关于数组和指针的总结

1、数组的声明形如a[d],其中a是数组的名字,d是数组的维度,编译的时候数组的维度应该是已知的,所以维度d必须是一个常量。如果要定义一个不知道元素个数的以为数组,那么请使用vector容器; unsigned cnt = 42; //不是常量表达式 constexpr unsigned sz = 42; //常量表达式 int arr...

聊聊最近几年的路径追踪技术的进展(一)

路径追踪技术(Path tracing,PT)已经是当下工业中离线渲染使用的主流技术,不管是商业渲染器如皮克斯的RenderMan,Solid Angle的Arnold等,还是迪士尼的in-house渲染器Hyperion以及Weta Digital的Manuka都是基于路径追踪技术。路径追踪算法非常简单,它首先将光照方程表述为面积积分的形式,然后一束光线...