协方差矩阵计算
输入:随机向量 X=xi, i=1..n.
X=meanxi, i=1..n 的均值向量
输出:协方差矩阵 Sigma (n*n)。
计算:
1) 找出所有 cov(xi,xj)= 1/n * (xi-meanxi) * (xj-meanxj), i,j=1..n
2) Sigma(i,j)=cov(xi,xj),对称矩阵。
这个算法正确并且没有副作用吗?
Input : random vector X=xi, i=1..n.
vector of means for X=meanxi, i=1..n
Output : covariance matrix Sigma (n*n).
Computation :
1) find all cov(xi,xj)= 1/n * (xi-meanxi) * (xj-meanxj), i,j=1..n
2) Sigma(i,j)=cov(xi,xj), symmetric matrix.
Is this algorithm correct and has no side-effects?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
每个 xi 应该是一个向量(随机变量),具有自己的方差和均值。
协方差矩阵是对称的,因此您只需要计算它的一半(并复制其余部分),并且主对角线上的方差为 xi 。
其中 xi 的方差 (var):
和协方差 (cov)
,其中
r(xi, xj)
为 皮尔逊积矩相关系数编辑
或者,因为 cov(X, Y) = E(X*Y) - E(X)*E(Y)
其中
.*
是类似于 Matlab 的逐元素乘法。因此,如果 x = [x1, x2], y = [y1, y2] 则 z = x.*y = [x1*y1, x2*y2 ];
Each
xi
should be a vector (random variable) with it's own variance and mean.Covariance matrix is symmetric, so you just need to compute one half of it (and copy the rest) and has variance of xi at main diagonal.
where variance (var) of xi:
and covariance (cov)
where
r(xi, xj)
is Pearson product-moment correlation coefficientEDIT
or, since cov(X, Y) = E(X*Y) - E(X)*E(Y)
where
.*
is Matlab-like element-wise multiplication.So if
x = [x1, x2]
,y = [y1, y2]
thenz = x.*y = [x1*y1, x2*y2]
;