对于“在 MATLAB 中围绕数据的椭圆”这个问题,在Amro 给出的答案中,他说如下:
“如果您希望椭圆表示特定水平的标准偏差,正确的做法是缩放协方差矩阵”
并且缩放它的代码被给出为
STD = 2; %# 2 standard deviations
conf = 2*normcdf(STD)-1; %# covers around 95% of population
scale = chi2inv(conf,2); %# inverse chi-squared with dof=#dimensions
Cov = cov(X0) * scale;
[V D] = eig(Cov);
我不明白上述代码片段的前 3 行。尺度是如何计算的chi2inv(conf,2)
,将它与协方差矩阵相乘的基本原理是什么?
附加问题:
我还发现,如果我用 1.5 STD 缩放它,即 86% 的瓷砖,椭圆可以覆盖所有的点,我的点集几乎在所有情况下都聚集在一起。另一方面,如果我用 3 STD 缩放它,即 99% 的平铺,椭圆太大了。那么我该如何选择一个 STD 来紧紧地覆盖聚集点呢?
这是一个例子:
内椭圆对应 1.5 STD,外椭圆对应 2.5 STD。为什么 1.5 STD 会紧紧地覆盖成团的白点?是否有任何方法或理由来定义它?