误差椭圆

原文链接:https://blog.csdn.net/u010182633/article/details/45924061

介绍

在这篇文章中,我将展示如何绘制二维正态分布数据的误差椭圆,又名置信椭圆。误差椭圆代表高斯分布的等值轮廓线,并允许可视化一个2D置信区间。下图显示了一组二维正态分布数据样本的95%置信椭圆。这个置信椭圆定义的区域包含了95%的样本,这些样本可以从潜在高斯分布中得到。

这里写图片描述
在接下来的章节中,我们将讨论如何获得不同置信度(如99%置信区间)的置信椭圆,我们将展示如何用Matlab或C ++代码绘制这些椭圆。

轴对齐的置信椭圆

导出得到误差椭圆的一般方法之前,我们先看看特殊情况,椭圆的长轴平行X轴,如下图:
这里写图片描述
上图展示出了椭圆的角度由数据的协方差确定。在这种情况下,协方差为零,使得数据是不相关的,从而导致轴对齐误差椭圆。
这里写图片描述
此外,椭圆轴的大小取决于数据的方差。在我们的例子中,X轴方向的方差最大,Y轴方向的方差最小。

一般情况下,长轴为2a,短轴为2b,原点为中心的轴对齐椭圆的方程式定义如下:
这里写图片描述

在我们的例子中,轴的长度由数据的标准差这里写图片描述定义,这样的话误差椭圆的方程式变为:
这里写图片描述
其中s定义椭圆的规模,可以是任意的数(例如,s=1)。现在的问题是如何选择s,使得所得到的椭圆规模代表我们所选择的置信水平(例如,95%的置信水平对应于s =5.991)。

我们的2D数据从零协方差的高斯分布中采样得到。这意味着x值和y值也是高斯分布。因此,等式(2)的左手侧实际上代表独立正态分布数据样本的平方和。根据所谓的卡方(Chi-Square)分布,高斯数据点平方的总和是已知的。卡方分布用“自由度”的形式定义,它表示未知量的数目来。在我们的例子中,有两个未知数,因此自由度是二。

因此,我们可以很容易地获取上述和的概率,通过计算卡方似然,s等于一个特定的值。事实上,由于我们感兴趣的是置信区间,我们正在寻找s小于或等于某个特定值的概率,这个特定值可以用累积卡方分布得到。由于统计人员都是懒惰的(这个翻译我也是醉了【好吧,其实就是我翻译的】原文为“As statisticians are lazy people”期待大家可以给出更好的翻译),我们通常无法尝试计算这个概率,而只是看一个概率表:https://people.richland.edu/james/lecture/m170/tbl-chi.html

例如,使用此概率表,我们可以很容易地发现,在2个自由度的情况下:
这里写图片描述

因此,95%置信区间对应于s=5.991。换言之,95%的数据将落入椭圆内:
这里写图片描述
类似地,99%的置信区间对应为s=9.210,90%置信区间对应于s=4.605。

图2显示的误差椭圆可以绘制成长轴长度等于这里写图片描述,短轴长度这里写图片描述

任意置信椭圆

在数据是相关的情况下,例如存在协方差,所产生的误差椭圆不会是轴对齐的。在这种情况下,如果我们暂时定义一个新的坐标系,使得所述椭圆变为轴对齐,然后旋转所产生的椭圆,那么上面的结论依然有效。

换句话说,之前我们计算平行于x轴和y轴的方差,现在我们计算平行于置信椭圆长轴和短轴的方差,需要计算的方差方向由图1粉红和绿色箭头表示出来。
这里写图片描述

这些方向实际上是数据变化最多的方向,并用协方差矩阵定义。协方差矩阵可以看作是一个矩阵,该矩阵线性变换一些原始数据来获得当前观察到的数据。在之前特征向量和特征值的文章中,我们发现沿着这样一个线性变换的方向向量是变换矩阵的特征向量。事实上,图1中粉红色和绿色箭头所示的向量是数据协方差矩阵的特征向量,而向量的长度对应于特征值。

因此,特征值代表特征向量方向上数据的传播。换句话说,特征值代表特征向量方向上数据的方差。在轴对齐误差椭圆的情况下(即协方差等于零)特征值等于协方差矩阵的方差,特征向量等于x轴和y轴的定义。在任意相关数据的情况下,特征向量表示数据最大传播方向,而特征值定义这个传播有多大。

因此,95%置信椭圆可以类似地定义到轴对齐的情况,长轴长度为这里写图片描述,短轴长度为这里写图片描述,其中λ1和λ2表示协方差矩阵的特征值。

为了获得椭圆的方向,我们简单地计算最大特征向量的角度(以x轴为基准):
这里写图片描述

其中v1是对应于最大特征值的协方差矩阵的特征向量。

基于所述长轴长度,短轴长度和长轴与x轴之间的角度α,绘制置信椭圆变得很容易了。图3展示了几个置信度误差椭圆:
这里写图片描述

源码

http://download.csdn.net/download/u010182633/8729819

总结

在这篇文章中,我们介绍了如何根据选择的置信度来获得二维正态分布数据的误差椭圆。对于可视化或分析数据以及另一篇关于介绍PCA的文章中,这是非常有用的。
文章链接:http://blog.csdn.net/u010182633/article/details/45918737

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MATLAB是一款强大的数学建模和数据分析工具,非常适合绘制误差椭圆误差椭圆主要用于表示测量数据的不确定性,可以提供对测量结果的可信度和精确度的评估。 在MATLAB中,可以使用以下步骤绘制误差椭圆: 1. 创建一个误差矩阵,其中包含测量数据的误差值。误差矩阵的大小应与测量数据矩阵的大小相同。 2. 使用数据矩阵和误差矩阵,计算数据矩阵中每个数据点对应的误差椭圆的参数。一种常用的方法是将误差椭圆建模为二次曲线,并使用最小二乘法拟合得到参数。 3. 绘制误差椭圆。可以使用MATLAB中的plot函数绘制椭圆的边界曲线,或者使用fill函数填充椭圆内部。在绘制时,可以根据需要调整椭圆的颜色、线型和透明度等属性。 4. 添加坐标轴和标题。使用MATLAB中的xlabel、ylabel和title函数添加坐标轴标签和标题,以提供更多的信息和解释。 5. 可选:添加其他的数据点或曲线。如果需要,可以在同一图形中叠加其他的数据点或曲线,以更全面地展示测量数据和误差椭圆之间的关系。 通过以上步骤,可以在MATLAB中绘制出具有误差椭圆表示的测量数据,帮助我们更好地理解和分析数据的可信度和精确度。这对于数据分析、模型验证和实验设计等方面都非常有用。 ### 回答2: Matlab是一种强大的科学计算和数据可视化软件,可以用来绘制误差椭圆误差椭圆是用于表示数据的误差范围的图形工具。 首先,我们需要定义数据的中心点和误差大小。假设数据的中心点为(x0, y0),x轴方向的误差为dx,y轴方向的误差为dy。 接下来,我们可以通过在椭圆上均匀分布的角度来绘制该椭圆。可以使用函数"ellipse"来绘制椭圆,该函数需要指定椭圆中心点的坐标、长半轴长度、短半轴长度以及旋转角度。 椭圆的长轴长度为dx,短轴长度为dy。为了绘制与椭圆相切的线,我们可以使用"cosd"和"sind"函数计算每个角度对应的x和y的坐标。 最后,使用"plot"函数将计算得到的坐标点连接起来,即可绘制误差椭圆。可以通过设置线条的颜色、样式和宽度来对绘制的椭圆进行美化。 以下是使用Matlab代码来绘制误差椭圆的示例: ```matlab x0 = 0; % 中心点x坐标 y0 = 0; % 中心点y坐标 dx = 2; % x轴方向误差 dy = 1; % y轴方向误差 angles = 0:0.1:2*pi; % 角度范围 x = x0 + dx*cos(angles); % 椭圆x坐标 y = y0 + dy*sin(angles); % 椭圆y坐标 plot(x, y, 'r', 'LineWidth', 2); % 绘制椭圆 axis equal; % 设置坐标轴等比例显示 xlabel('x'); % x轴标签 ylabel('y'); % y轴标签 title('误差椭圆'); % 图形标题 ``` 运行以上代码,就可以在Matlab中绘制出一个以中心点(x0, y0)为中心,长轴长度为dx,短轴长度为dy的误差椭圆。 希望这个回答对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值