书上说,如果一个零均值高斯分布实随机向量的各个分量之间是不相关的,则其自相关矩阵为对角阵。对于二维零均值高斯分布实随机向量而言,其自相关矩阵的二次型可以构成一个椭圆方程。如果向量两个分量相关,对应自相关矩阵是一个非对角阵的实对称阵,这样的矩阵的二次型对应轴线与坐标轴不重合的椭圆。若两个分量不相关,则自相关矩阵是对角阵,这样的矩阵的二次型对应轴线与坐标轴重合的椭圆。正是看了书上这样的话,才有了《线性代数真是神奇的东西,尤其是特征值分解》一文中使用的方法。
pdf的等高线就是自相关矩阵二次型对应的椭圆方程。为什么轴线与坐标轴不重合的椭圆其向量的两个分量相关呢?画两个图就明白了。
首先我们画一下自相关矩阵为对角阵的二维高斯实向量的二维pdf曲面:
range_low = -5;
range_high = 5;
point_num = 64;
x = linspace(range_low, range_high, point_num);
y = x;
[X, Y] = meshgrid(x, y);
M1 = eye(2);
M2 = [1, 0.5; 0.5, 1];
temp = [X(:), Y(:)];
surface1 = temp * M1;
surface1 = surface1 .* temp;
surface1 = sum(surface1, 2);
surface1 = reshape(surface1, point_num, point_num);
surface1 = exp(-0.5*surface1)/2/pi/sqrt(det(M1));
mesh(x, y, surface1);
再看一下自相关矩阵不是对角阵的二维实高斯向量的二维pdf曲面:
surface2 = temp * M2;
surface2 = surface2 .* temp;
surface2 = sum(surface2, 2);
surface2 = reshape(surface2, point_num, point_num);
surface2 = exp(-0.5*surface2)/2/pi/sqrt(det(M2));
figure;
mesh(x, y, surface2);
对于自相关矩阵为对角阵的情况(上面第一种情况),我们选取几个垂直于y轴的平面,看看这些平面截取的pdf是什么样的曲线:
delta = 5;
figure;
plot(x, surface1(point_num/2, :), 'r');
hold on;
plot(x, surface1(point_num/2+delta, :), 'g');
plot(x, surface1(point_num/2+2*delta, :), 'b');
hold off;
随着y的改变,曲线的大小变了,但位置和形状都没有发生变化,因此曲线的表达式可以写成p(x)f(y)的形式,事实上,这里的f(y)就是p(y),即x与y独立。而高斯分布的统计独立与不相关是等价的。
再看看自相关矩阵不是对角阵时的情况(上面第二种情况):
figure;
plot(x, surface2(point_num/2, :), 'r');
hold on;
plot(x, surface2(point_num/2+delta, :), 'g');
plot(x, surface2(point_num/2+2*delta, :), 'b');
hold off;
这幅图中,随着y的改变,曲线大小和位置都发生了变化,这说明,曲线的表达式不仅仅需要p(x)与某个y的函数f(y)相乘,还需要与某个y的函数g(y)相加。即p(x)f(y)+g(y),这样,曲线的表达式不可能写成p(x)p(y)的形式。即向量的两个分量不是独立的,不是不相关的。