在MATLAB中确定多元正态分布的协方差

时间:2014-07-23 19:33:13

标签: matlab random distribution

我试图在Matlab中创建一个对称的随机数的双变量正态分布。我知道高斯的标准偏差(例如15),并且它在两个方向上都是相同的。如何使用此标准偏差信息以Matlab将接受mvnrnd命令的形式获得协方差?谢谢,我真的很感激任何建议。

3 个答案:

答案 0 :(得分:1)

如果随机变量是独立的,则协方差矩阵的偏外元素为零。因此矩阵将为diag(std1,std2),其中std1std2是两个变量的标准偏差。在您的示例中,您将使用diag(15,15)

如果随机变量独立,则需要指定协方差矩阵的所有四个元素。

答案 1 :(得分:1)

首先,您需要知道两个正常变量之间的相关性。就像@Luis所说的那样,对角线将是15,但对于协方差,你需要知道两者之间的相关性。

它们与以下等式相关:

cov(x,y) = correlation(x,y)*std(x)*std(y)

但如果您不知道相关性,那么您可以计算样本协方差。

Forumla的样本协方差:

enter image description here

在Matlab中计算:

cov = (1/n)*(x-mean(x))*(y-mean(y))'

参考:http://www.cogsci.ucsd.edu/~desa/109/trieschmarksslides.pdf

答案 2 :(得分:0)

您可以在Matlab中使用命令cov:

SIGMA = cov([x y]);

HTH