【发布时间】:2014-07-23 19:33:13
【问题描述】:
我正在尝试在 Matlab 中创建对称的随机数的二元正态分布。我知道高斯的标准偏差(例如 15)并且在两个方向上都是相同的。如何使用此标准偏差信息以 Matlab 将接受 mvnrnd 命令的形式获得协方差?谢谢,我真的很感激任何建议。
【问题讨论】:
-
不确定您所说的“对称”是什么意思。你的意思是旋转对称,即球形?
标签: matlab random distribution
我正在尝试在 Matlab 中创建对称的随机数的二元正态分布。我知道高斯的标准偏差(例如 15)并且在两个方向上都是相同的。如何使用此标准偏差信息以 Matlab 将接受 mvnrnd 命令的形式获得协方差?谢谢,我真的很感激任何建议。
【问题讨论】:
标签: matlab random distribution
首先,您需要知道两个正态变量之间的相关性。就像@Luis 所说,对角线各为 15,但对于协方差,您需要知道两者之间的相关性。
它们通过以下等式相关:
cov(x,y) = correlation(x,y)*std(x)*std(y)
但如果你不知道相关性,那么你可以计算样本协方差。
样本协方差的公式:
在 Matlab 中计算:
cov = (1/n)*(x-mean(x))*(y-mean(y))'
参考:http://www.cogsci.ucsd.edu/~desa/109/trieschmarksslides.pdf
【讨论】:
如果随机变量是独立的,协方差矩阵的非对角元素为零。所以该矩阵将是diag(std1,std2),其中std1 和std2 是两个变量的标准差。在您的示例中,您将使用diag(15,15)。
如果随机变量不独立,则需要指定协方差矩阵的所有四个元素。
【讨论】:
你可以在Matlab中使用命令cov:
SIGMA = cov([x y]);
HTH
【讨论】: