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

154370编辑收藏

1  定义#

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

[D(X1)Cov(X1,X2)Cov(X1,Xn)Cov(X2,X1)D(X2)Cov(X2,Xn)Cov(Xn,X1)Cov(Xn,X2)D(Xn)]

  其中

D(Xi)=E(Xi2)E(Xi)2Cov(Xi,Xj)=E(XiXj)E(Xi)E(Xj)

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

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

(1)σ^i2=1m1j=1m(xijxi¯)2xi¯=1mj=1mxij

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

(2)Cov^(xi,xj)=1m1k=1m(xikxi¯)(xjkxj¯)

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

2  计算#

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

A=[x11x21xn1x12x22xn2x1mx2mxnm]

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

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

μ=1mi=1mAi:

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

B=[x11x1¯x21x2¯xn1xn¯x12x1¯x22x2¯xn2xn¯x1mx1¯x2mx2¯xnmxn¯]

  最后计算BTB再除以m1获得协方差矩阵。为了便于理解理解,下面列出BTB

BTB=[[x11x1¯x21x2¯xn1xn¯][x12x1¯x22x2¯xn2xn¯][x1mx1¯x2mx2¯xnmxn¯]][[x11x1¯x21x2¯xn1xn¯][x12x1¯x22x2¯xn2xn¯][x1mx1¯x2mx2¯xnmxn¯]]

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

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

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
很高兴能帮到你~
点赞
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示