协方差矩阵的缩放
对于问题“在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)
计算尺度,以及将它与covariace矩阵相乘的理由是什么?
附加问题:
我还发现,如果我使用1.5 STD(即86%的瓷砖)进行缩放,椭圆可以覆盖所有的点,我的点集在几乎所有情况下都会聚集在一起。另一方面,如果我用3个STD(即99%的瓷砖)对其进行缩放,则椭圆太大。那么我怎样才能选择STD来紧紧覆盖丛生点呢?
这是一个例子:
内椭圆对应于1.5 STD,外对应于2.5 STD。为什么1.5 STD紧紧覆盖了丛生的白点?是否有任何方法或理由来定义它?
没有找到相关结果
已邀请:
1 个回复
马口
你会发现
约为
。 数据点与数据质心的距离类似于
,忽略系数。随机变量的平方和遵循卡方分布,因此得到相应的95百分位数,他使用倒数卡方函数,d.o.f。 2,因为有两个变量。 最后,将比例常数乘以后的基本原理是,对于具有特征值
的矩阵
,矩阵的特征值
,其中
是标量,简单地为
。特征值给出椭圆的长轴/短轴的相应长度,因此将椭圆或特征值缩放到95%瓦片相当于将协方差矩阵与比例因子相乘。 编辑 郑,虽然你可能已经知道这一点,但我建议你也读一下关于随机性问题的答案。考虑具有零均值,单位方差的高斯随机变量。这些随机变量的集合的PDF看起来像这样 现在,如果我要采用两个这样的随机变量集合,将它们分开并将它们相加以形成一个新的随机变量的单个集合,它的分布看起来像这样 这是具有2个自由度的卡方分布(因为我们添加了两个集合)。 上面代码中椭圆的方程可以写成
,其中
,
是两个随机变量,
和
是主轴/短轴,
是我们需要弄清楚的一些比例常数。正如您所看到的,上面可以解释为平方并添加两个高斯随机变量集合,我们只是在上面看到它的分布是什么样的。所以,我们可以说
是一个随机变量,是2平方自由度的卡方分布。 现在需要做的就是找到
的值,使95%的数据在其中。就像1s.d,2s.d,3s.d。我们熟悉高斯人的百分位数,对于具有2个自由度的卡方,95%的瓦片大约是6.18。这就是Amro从
函数中获得的。他本可以写得好
,它本来是一样的。只是用
s.d谈论。远离意味着直观。 只是为了说明,这里是上面卡方分布的PDF,95%的面积<1。一些
用红色阴影。这个
是~6.18。 希望这有帮助。