根据分布方差绘制轮廓

时间:2019-06-20 13:49:43

标签: octave contour gaussian

我正在做一个实验,我得到了2D点形式的一组数据

# read csv file
samples = csvread('results.csv');

假设它们是正态分布,我可以计算它们的均值和协方差并评估pdf

mu = mean(samples);
sigma = cov(samples);
y = mvnpdf(X,mu,sigma);

其中X是使用meshgrid计算的2D网格。

我现在想做的是用等值线here绘制此分布。

而且,我想选择与协方差相关的特定值的轮廓,如下图所示:

enter image description here

作为一个例子,我应该知道点=(X:mu(1)+ sigma(1,1),Y:mu(1)+ sigma(1,1))的分布值。我的猜测是我可以通过这种方式使用normpdf函数

value = normpdf(point,mu,sigma)

但是我得到这个作为输出:

value =

   116.39   297.63
   297.63   409.88

我真的不知道该怎么解释。

可以请人告诉我怎么做吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

在您开始谈论normpdf时,我已经迷失了您。您有一个多元法线,这就是您需要进行的工作。不知道您期望从单变量法向中得到什么。

如果要在马氏距离为1(即距分布平均值的一个标准偏差)处获得多元正态的概率值,可以通过在值{{1}处评估mvnpdf来实现},[m+s,0]m = mu(1)

然后,您可以将其与适当的轮廓函数一起使用以获取所需的轮廓。

编辑:这是一个示例。

s = sqrt( sigma(1,1) )