协方差矩阵的缩放

对于问题“在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紧紧覆盖了丛生的白点?是否有任何方法或理由来定义它?     
已邀请:
在数据点周围显示椭圆的目的是显示置信区间,换句话说,“有多少数据在与标准偏差的某个标准偏差范围内” 在上面的代码中,他选择显示一个覆盖95%数据点的椭圆。对于正态分布,约67%的数据是1 s.d.远离平均值,在2 s内可达~95%。和3 s内的~99% (数字不在我的头顶,但你可以通过计算曲线下的面积轻松验证这一点)。因此,值
STD=2;
你会发现
conf
约为
0.95
。 数据点与数据质心的距离类似于
(xi^2+yi^2)^0.5
,忽略系数。随机变量的平方和遵循卡方分布,因此得到相应的95百分位数,他使用倒数卡方函数,d.o.f。 2,因为有两个变量。 最后,将比例常数乘以后的基本原理是,对于具有特征值
a1,...,an
的矩阵
A
,矩阵的特征值
kA
,其中
k
是标量,简单地为
ka1,...,kan
。特征值给出椭圆的长轴/短轴的相应长度,因此将椭圆或特征值缩放到95%瓦片相当于将协方差矩阵与比例因子相乘。 编辑 郑,虽然你可能已经知道这一点,但我建议你也读一下关于随机性问题的答案。考虑具有零均值,单位方差的高斯随机变量。这些随机变量的集合的PDF看起来像这样 现在,如果我要采用两个这样的随机变量集合,将它们分开并将它们相加以形成一个新的随机变量的单个集合,它的分布看起来像这样 这是具有2个自由度的卡方分布(因为我们添加了两个集合)。 上面代码中椭圆的方程可以写成
x^2/a^2 +y^2/b^2=k
,其中
x
y
是两个随机变量,
a
b
是主轴/短轴,
k
是我们需要弄清楚的一些比例常数。正如您所看到的,上面可以解释为平方并添加两个高斯随机变量集合,我们只是在上面看到它的分布是什么样的。所以,我们可以说
k
是一个随机变量,是2平方自由度的卡方分布。 现在需要做的就是找到
k
的值,使95%的数据在其中。就像1s.d,2s.d,3s.d。我们熟悉高斯人的百分位数,对于具有2个自由度的卡方,95%的瓦片大约是6.18。这就是Amro从
chi2inv
函数中获得的。他本可以写得好
scale=chi2inv(0.95,2)
,它本来是一样的。只是用
n
s.d谈论。远离意味着直观。 只是为了说明,这里是上面卡方分布的PDF,95%的面积<1。一些
x
用红色阴影。这个
x
是~6.18。 希望这有帮助。     

要回复问题请先登录注册