Python:手动协方差矩阵

用户名

我有两个向量X0和X1(mx0和mx1是每个向量的均值),我试图找到它们之间的协方差矩阵。我已经设法通过执行以下操作来找到矩阵中的每个元素:

b1=numpy.zeros(N*1).reshape((N,1))
b2=numpy.zeros(N*1).reshape((N,1))

for i in range(0,N):
    b1[i]=X0[i]-mX0
for j in range(0,N):
    b2[j]=X1[j]-mX1

bii=sum(p*q for p,q in zip(b1,b1))/(N-1)
bij=sum(p*q for p,q in zip(b1,b2))/(N-1)
bji=sum(p*q for p,q in zip(b2,b1))/(N-1)
bjj=sum(p*q for p,q in zip(b2,b2))/(N-1)

但我想通过循环而不是分别处理每个元素的更好方法。

算了吧

如果要手动计算协方差矩阵,请研究/选择numpy.cov的计算方式,或者如果只想得到结果,则np.cov(b1, b2)直接使用

import numpy as np
np.random.seed(1)
N = 10
b1 = np.random.rand(N)
b2 = np.random.rand(N)
X = np.column_stack([b1, b2])
X -= X.mean(axis=0) 
fact = N - 1 
by_hand = np.dot(X.T, X.conj()) / fact
print(by_hand)
# [[ 0.04735338  0.01242557]
#  [ 0.01242557  0.07669083]]

using_cov = np.cov(b1, b2)

assert np.allclose(by_hand, using_cov)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:手动协方差矩阵

来自分类Dev

Python:从列表创建协方差矩阵

来自分类Dev

在Python中建立协方差矩阵

来自分类Dev

Python:从列表创建协方差矩阵

来自分类Dev

椭圆的协方差矩阵

来自分类Dev

如何在Python中手动创建稀疏矩阵

来自分类Dev

如何在Python中手动创建稀疏矩阵

来自分类Dev

相关协方差矩阵到方差协方差矩阵

来自分类Dev

Python中尺度矩阵(协方差矩阵)的高效计算

来自分类Dev

Python Numpy计算的协方差矩阵每次更改

来自分类Dev

由Python Numpy计算的协方差矩阵每次更改

来自分类Dev

如何在 Python 中生成随机协方差矩阵?

来自分类Dev

协方差矩阵不是正定的

来自分类Dev

旋转后的协方差矩阵

来自分类Dev

手动计算分类评级计数数据的方差

来自分类Dev

R中的方差-协方差矩阵

来自分类Dev

从相关矩阵生成协方差矩阵

来自分类Dev

协方差矩阵lm对象R

来自分类Dev

使用VBA的Variace协方差矩阵

来自分类Dev

numpy polyfit-协方差矩阵

来自分类Dev

numpy中的加权协方差矩阵

来自分类Dev

EmguCV:如何从图像创建协方差矩阵?

来自分类Dev

在R中建立协方差矩阵

来自分类Dev

从lavaan中提取误差协方差矩阵

来自分类Dev

不使用numpy计算协方差矩阵

来自分类Dev

循环从回归构造协方差矩阵

来自分类Dev

从lavaan中提取误差协方差矩阵

来自分类Dev

Matlab:协方差矩阵错误结果

来自分类Dev

numpy polyfit-协方差矩阵