协方差矩阵又被称为相关系数矩阵. 本文主要介绍协方差矩阵的概念和如何使用 numpy 中的 einsum 进行计算.
概念与定义
协方差
两个向量 $\boldsymbol{x}$ 和 $\boldsymbol{y}$ 的协方差 (covariance) 可以定义为
$$ cov(\boldsymbol{x}, \boldsymbol{y}) = E((\boldsymbol{x} - \mu)(\boldsymbol{y} - \nu)) = E(\boldsymbol{x}\cdot\boldsymbol{y}) - \mu\nu$$
比如,
1 | def cov(x, y): |
对于两个由行向量组成的矩阵 $X=\left[X_1, X_2, \cdots, X_n\right]^T$ 和 $Y=\left[Y_1,Y_2,\cdots,Y_n\right]^T$, 对每一对行向量求协方差, 便可以得到协方差矩阵:
$$Cov(X,Y) = \begin{bmatrix}
cov(X_1,Y_1) & cov(X_1,Y_2) & \cdots & cov(X_1,Y_n) \
\vdots & \vdots & \ddots & \vdots \
cov(X_n,Y_1) & cov(X_n,Y_2) & \cdots & cov(X_n,Y_n)
\end{bmatrix}$$
1 | def norm(X): |
相关系数
一般情况下, 相关系数的公式为
$$\rho = \frac{cov(X,Y)}{\sigma_X \sigma_Y}$$
相关系数可以看做是标准化后的协方差.
Hadamard-Fisher (HF) 互相关
自协方差矩阵
$$E(XX^) = Cov(X,X^)$$
注意这里在求平均值时要除以n-1
Comments
shortname
for Disqus. Please set it in_config.yml
.