数值分析Matlab二维正态(高斯)分布以及协方差矩阵
主要是使用了matlab的mvnrnd产生随机的正态(高斯)分布二维矩阵,然后绘制出来。代码运行结果生成的正态分布实验数据如图:
MATLAB代码:
mu1 = [0 0];
sigma1 = [4 2 ; 2 4];
r1 = mvnrnd(mu1,sigma1,100);
scatter(r1(:,1),r1(:,2),'r.');
hold on;
mu2 = [0 0];
sigma2 = [8 2 ; 2 8];
r2 = mvnrnd(mu2,sigma2,100);
plot(r2(:,1),r2(:,2),'bv')
代码中的sigma即为协方差矩阵。mu期望均值。围绕mu产生正态分布的数据。mvnrnd使用到了协方差矩阵。
关于协方差矩阵
样本数据矩阵的每行是一个样本,每一列是一个维度。一个样本可以有多维。如果协方差值为正,样本数据在不同维度同向。值越大,说明样本在不同维度的数值同向程度越高。越小,同向程度越低。
如果协方差为负值,说明样本数据在不同维度反向。其值越小,反向程度越大;其值越大,反向程度越小。
比如x,y,z代表了3 X 3的样本矩阵。其中每一列代表一个维度。那么协方差矩阵为:
显然,协方差矩阵上,从左上角到右下角连接的对角线上的点是所在列的方差,其非对角线列上的点是相应列上的数据散点的协方差,且具有对称相等特性: