对于维度为k的数据集,其变量之间的相关性通过K * K 的协方差矩阵来表示。为了更好地理解相关矩阵如何表征数据点之间的相关性,我们利用数据点绘制了从3个不同的2维高斯分布,每个2维高斯分布由不同的协方差矩阵定义。
下面的左图显示了每个高斯分布的2*2协方差矩阵。沿着对角线的值表示沿着每个维度的数据点方差,非对角线值表示维度之间的方差。因此,矩阵的第i,j个值表示第i维和第j维之间的相关性。右边的图显示的从相应的二维高斯获得的数据的分布。
最顶层图显示的是等于单位矩阵的协方差矩阵,和从相应高斯分布获得点绘制的图。对角线的值是1,表明数据沿着两个维度的方差均为1。此外,非对角线元素为0,意味着这两个维度是不相关的。我们也可以从分布中获得的数据中看到这一点,数据都分布在一个围绕着原点的球体中。对于这样的点分布,很难画出一个可以从第一个维预测第二维的回归线,反之亦然。因此,特性协方差矩阵( identity covariance matrix )相当于具有独立的维度,每个维度具有单位方差(即方差为1)。这样的数据集通常被称为“白色”(这种命名来自白噪声信号,这些信号可以从独立的高斯分布采样中获得, 而且在频域(傅里叶域)中的所有频率处具有相同的功率,也就是频域是一个常数)。
中间层是由对角线而非特性协方差矩阵( identity covariance matrix )得到的数据点。非对角线元素依然为0,意味着对应的维度是不相关的。但是,每个维度的方差不为1而且不相等,这通过图中红色线的拉长来体现。拉长沿着第2维,正如协方差矩阵中右下角(点(2,2))的较大的值所示。
最下面的一行标出了由非对角协方差矩阵产生的点。 这里,协方差矩阵的非对角线元素具有非零值,表示维度之间的相关性。 这种相关性反映在绘制数据点的分布上(蓝色)。 我们可以看到点分布的主轴不是沿着任何一个维度,而是维度的线性组合。
图中的Matlab代码如下:
% INITIALIZE SOME CONSTANTS
mu = [0 0]; % ZERO MEAN
S = [1 .9; .9 3]; % NON-DIAGONAL COV.
SDiag = [1 0; 0 3]; % DIAGONAL COV.
SId = eye(2); % IDENTITY COV.
% SAMPLE SOME DATAPOINTS
nSamples = 1000;
samples = mvnrnd(mu,S,nSamples)';
samplesId = mvnrnd(mu,SId,nSamples)';
samplesDiag = mvnrnd(mu,SDiag,nSamples)';
% DISPLAY
subplot(321);
imagesc(SId); axis image,
caxis([0 1]), colormap hot, colorbar
title('Identity Covariance')
subplot(322)
plot(samplesId(1,:),samplesId(2,:),'ko'); axis square
xlim([-5 5]), ylim([-5 5])
grid
title('White Data')
subplot(323);
imagesc(SDiag); axis image,
caxis([0 3]), colormap hot, colorbar
title('Diagonal Covariance')
subplot(324)
plot(samplesDiag(1,:),samplesDiag(2,:),'r.'); axis square
xlim([-5 5]), ylim([-5 5])
grid
title('Uncorrelated Data')
subplot(325);
imagesc(S); axis image,
caxis([0 3]), colormap hot, colorbar
title('Non-diagonal Covariance')
subplot(326)
plot(samples(1,:),samples(2,:),'b.'); axis square
xlim([-5 5]), ylim([-5 5])
grid
title('Correlated Data')
本文为翻译文章,
翻译自https://theclevermachine.wordpress.com/2013/03/29/covariance-matrices-and-data-distributions/
网友评论