我试图在Matlab中创建一个对称的随机数的双变量正态分布。我知道高斯的标准偏差(例如15),并且它在两个方向上都是相同的。如何使用此标准偏差信息以Matlab将接受mvnrnd命令的形式获得协方差?谢谢,我真的很感激任何建议。
答案 0 :(得分:1)
如果随机变量是独立的,则协方差矩阵的偏外元素为零。因此矩阵将为diag(std1,std2)
,其中std1
和std2
是两个变量的标准偏差。在您的示例中,您将使用diag(15,15)
。
如果随机变量不独立,则需要指定协方差矩阵的所有四个元素。
答案 1 :(得分:1)
首先,您需要知道两个正常变量之间的相关性。就像@Luis所说的那样,对角线将是15,但对于协方差,你需要知道两者之间的相关性。
它们与以下等式相关:
cov(x,y) = correlation(x,y)*std(x)*std(y)
但如果您不知道相关性,那么您可以计算样本协方差。
Forumla的样本协方差:
在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