【问题标题】:Determine Covariance for multivariate normal distribution in MATLAB在 MATLAB 中确定多元正态分布的协方差
【发布时间】:2014-07-23 19:33:13
【问题描述】:

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

【问题讨论】:

  • 不确定您所说的“对称”是什么意思。你的意思是旋转对称,即球形?

标签: matlab random distribution


【解决方案1】:

首先,您需要知道两个正态变量之间的相关性。就像@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

【讨论】:

    【解决方案2】:

    如果随机变量是独立的,协方差矩阵的非对角元素为零。所以该矩阵将是diag(std1,std2),其中std1std2 是两个变量的标准差。在您的示例中,您将使用diag(15,15)

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

    【讨论】:

      【解决方案3】:

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

      SIGMA = cov([x y]);
      

      HTH

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-12
        • 2019-03-11
        • 1970-01-01
        • 1970-01-01
        • 2014-02-07
        • 2015-03-22
        • 2017-03-27
        • 2014-02-15
        相关资源
        最近更新 更多