椭圆的标准方程与协方差矩阵的特征值和特征向量的关系
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