椭圆的标准方程与协方差矩阵的特征值和特征向量的关系
flyfish
-
单位圆 :单位圆表示在标准正交基下的分布。
-
椭圆 :通过协方差矩阵的特征向量和特征值变换得到的椭圆,表示数据在新的坐标系下的分布。
-
特征向量 :红色箭头表示特征向量方向,即椭圆的主要轴方向。
-
特征值 :红色箭头的长度表示特征值大小,即椭圆沿主要轴的伸缩程度。
import numpy as np
import matplotlib.pyplot as plt
# 示例协方差矩阵
covariance_matrix = np.array([[4, 2], [2, 3]])
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eigh(covariance_matrix)
# 生成单位圆
theta = np.linspace(0, 2 * np.pi, 100)
circle = np.array([np.cos(theta), np.sin(theta)])
# 变换单位圆以得到椭圆
ellipsoid = eigenvectors @ np.diag(np.sqrt(eigenvalues)) @ circle
# 绘制单位圆和椭圆
plt.plot(circle[0], circle[1], label='Unit Circle')
plt.plot(ellipsoid[0], ellipsoid[1], label='Ellipse')
# 绘制特征向量
mean = np.array([0, 0])
for i in range(len(eigenvalues)):
eigval = np.sqrt(eigenvalues[i])
eigvec = eigenvectors[:, i]
start, end = mean, mean + eigval * eigvec * 2 # 伸长因子
plt.annotate('', xy=end, xytext=start, arrowprops=dict(facecolor='red', width=2.0))
# 设置图表
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Unit Circle and Transformed Ellipse')
plt.legend()
plt.grid()
plt.axis('equal')
plt.show()
椭圆方程的推导
-
协方差矩阵的定义 :
对于一个随机向量 x = ( x y ) \mathbf{x} = \begin{pmatrix} x \\ y \end{pmatrix} x=(xy),协方差矩阵 Σ \Sigma Σ 表示其分布的协方差信息: Σ = ( σ x x σ x y σ y x σ y y ) \Sigma = \begin{pmatrix} \sigma_{xx} & \sigma_{xy} \\ \sigma_{yx} & \sigma_{yy} \end{pmatrix} Σ=(σxxσyxσxyσyy)
其中, σ x x \sigma_{xx} σxx 和 σ y y \sigma_{yy} σyy 是 x x x 和 y y y 的方差 σ x y = σ y x \sigma_{xy} = \sigma_{yx} σxy=σyx 是 x x x 和 y y y 的协方差。 -
特征值和特征向量 :
通过求解特征方程 det ( Σ − λ I ) = 0 \det(\Sigma - \lambda I) = 0 det(Σ−λI)=0,可以得到协方差矩阵的特征值 λ 1 \lambda_1 λ1 和 λ 2 \lambda_2 λ2,以及对应的特征向量 v 1 \mathbf{v}_1 v1$ 和 v 2 \mathbf{v}_2 v2。 -
椭圆方程 :
椭圆在二维空间中的一般方程为: x T Σ − 1 x = 1 \mathbf{x}^T \Sigma^{-1} \mathbf{x} = 1 xTΣ−1x=1
其中, x = ( x y ) \mathbf{x} = \begin{pmatrix} x \\ y \end{pmatrix} x=(xy), Σ − 1 \Sigma^{-1} Σ−1 是协方差矩阵的逆矩阵。
几何意义
-
特征向量 :表示椭圆的主要轴方向。
-
特征值 :表示椭圆沿特征向量方向的伸缩因子。
椭圆方程的几何解释
考虑一个标准单位圆的方程:
z
T
z
=
1
\mathbf{z}^T \mathbf{z} = 1
zTz=1
其中,
z
\mathbf{z}
z 是在标准正交基下的坐标向量。通过线性变换
x
=
L
z
\mathbf{x} = L \mathbf{z}
x=Lz,其中
L
L
L 是由协方差矩阵的特征值和特征向量构成的变换矩阵,可以将单位圆变换成椭圆:
x
=
L
z
\mathbf{x} = L \mathbf{z}
x=Lz
变换后的方程为:
x
T
(
L
−
1
)
T
L
−
1
x
=
1
\mathbf{x}^T (L^{-1})^T L^{-1} \mathbf{x} = 1
xT(L−1)TL−1x=1
由于
Σ
=
L
L
T
\Sigma = L L^T
Σ=LLT,得到:
x
T
Σ
−
1
x
=
1
\mathbf{x}^T \Sigma^{-1} \mathbf{x} = 1
xTΣ−1x=1