美文网首页R语言
置信椭圆与R画法

置信椭圆与R画法

作者: 小潤澤 | 来源:发表于2020-08-14 15:00 被阅读0次

置信椭圆

在二维或者更高维的空间里,数据的聚类往往需要添加一个“置信区间”。仿照一维空间的数据,置信区间往往相对于点估计而来的,在统计学中,一个概率样本的置信区间(Confidence interval)是对这个样本的某个总体参数的区间估计。置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度,其给出的是被测量参数的测量值的可信程度,一般我们用95%置信区间来表示。
那么二维空间的数据也是如此,二维空间的置信区间往往利用置信椭圆来描述,展现真实值的可信程度,一般我们用95%置信椭圆来表示。
为什么是置信椭圆呢,往往是因为我们的而数据分布形似椭圆

置信椭圆绘制原理

本文若无特殊说明,椭圆的中心都在左边原点,与图片略微不符

(1).数据中心在原点且轴对齐型

我们先看最简单的,轴对齐型的,比方说椭圆长轴平行于x轴

平行x轴
假设我有两列随机变量 x 和 y
对于该二维数据,x和y,我们不妨计算下x和y的协方差矩阵:

二维协方差矩阵计算公式:
摘自百度
由于我们的数据,形似椭圆,并且椭圆长轴平行于x轴,那么协方差矩阵中x轴方向的方差为8.4213,y轴方向的方差为0.9387。由于x方向与y方向正交,所以x和y这两个随机变量的协方差为0,也可以理解为相关性为0。
由于我们的数据点分布形似椭圆,所以我们定义置信区间就把它定义为椭圆,我们知道椭圆的标准方程为:

那么我们不妨将椭圆的半长轴a定义为σx,半短轴b定义为σy,那么有:

显然,该椭圆的数据中心为(0,0)
其中s定义椭圆的规模,可以是任意的数(例如,s=1)。现在的问题是如何选择s,使得所得到的椭圆规模代表我们所选择的置信水平(例如,95%的置信水平对应于s =5.991)。
这个s=5.991可以通过卡方分布(随机变量平方和)进行计算(假设随机变量x和y服从高斯分布),并且自由度为2.

联想到卡方分布,上式左侧可以看作为随机变量的平方和,通过查询卡方表,有:

我们知道当 s = 5.991 时,P(s < 5.991) = 0.95,也就是说,我们要寻找一个在椭圆上的点,使得 s = 5.991,那么将 s = 5.991 带入椭圆方程:

这个等式表明数据点小于5.991的概率为95%(在椭圆内表示数据点小于5.991)。
那么,s=5.991即为95%置信区间,表示有一组数据,其x方向方差为σx,y方向方差为σy时,如果s=5.991,那么95%的数据点在该椭圆内。
那么置信椭圆的长轴2a:

置信椭圆的短轴2b:

(2).数据中心在远点且任意方向的置信椭圆


我们首先计算随机变量x和y的协方差矩阵,根据协方差矩阵计算该矩阵的特征向量(上图绿色为椭圆短轴方向的特征向量;粉红色为椭圆长轴方向的特征向量),我们定义椭圆长轴方向的特征向量为v1,椭圆短轴方向的特征向量为v2;而特征向量大小为特征值,我们定义椭圆长轴方向的特征值为λ1,椭圆短轴方向的特征值为λ2。
此时椭圆的长轴为:



椭圆的短轴为:



并且定义椭圆长轴与x轴正方向夹角为α:


那么,我们就可以根据角度来对置信椭圆进行“旋转”。

(3).任意位置置信椭圆

有了上面的介绍,那么任意位置的椭圆无非是满足数据中心不在原点,且椭圆长轴与x轴正方向夹角为任意角α。并以此来建立椭圆方程,画出置信椭圆(可见数据中心化可以简便很多计算)

R绘制置信椭圆

如果是利用ggplot画置信椭圆,例如对PCA或者PCoA降维后的二维结果进行画图
我们利用stat_ellipse()画置信椭圆

pcoa_plot <- ggplot(pcoa, aes(PCoA1, PCoA2, group = group, color = group)) +
geom_point() +
stat_ellipse(level = 0.95, show.legend = F) +
annotate('text', label = 'A', x = -0.3, y = 0.06, size = 5, colour = '#f8766d') +
annotate('text', label = 'B', x = 0.1, y = 0.35, size = 5, colour = '#00ba38') +
annotate('text', label = 'C', x = 0.3, y = -0.13, size = 5, colour = '#619cff')

或者利用一些R包“car”来画

pdf(" ")
dataEllipse(data[,1],data[,2],levels=0.95,col="black",xlim=c(-1,1),ylim=c(-4,2),xlab="DNMT3A",ylab="PGLYRP2",lwd=1,
grid=F,pch=20,lty=2)
dev.off()

参考:
置信椭圆原理1
置信椭圆原理2
ggplot画置信椭圆
car画置信椭圆

相关文章

  • 置信椭圆与R画法

    置信椭圆 在二维或者更高维的空间里,数据的聚类往往需要添加一个“置信区间”。仿照一维空间的数据,置信区间往往相对于...

  • ggplot画各种椭圆

    受启发与某群的讨论,今天来玩一下用ggplot画个小椭圆 ggplot画置信椭圆 我们之前介绍了置信椭圆的画法,参...

  • R语言画置信椭圆

    这次我们用到car这个包 install.packages("car")library(car) 读取数据 dat...

  • 椭圆的画法

    正圆由于角度变化会产生椭圆,接下来为大家介绍椭圆的画法。 【方法一:切角法】 1、遵循透视原则,画一个梯形; 2、...

  • R语言主成分分析(PCA)加置信椭圆

    使用R语言为PCA散点图添加置信区间,可以使用ggplot2,ggord去绘制。 使用R自带数据集iris的前4列...

  • R语言主成分分析(PCA)加“置信椭圆”

    使用R语言为PCA散点图加置信区间的方法,我知道的有三种,分别是使用ggplot2,ggord,ggfortify...

  • 简笔画第23期:萌萌哒小猪,快来动手画吧!

    【小猪-画法】 第一步:首先画一个微微扁的椭圆,注意椭圆的左右两边偏尖,因为这是小猪的脑袋,椭圆形脑袋更显得小猪可...

  • 第一节 SVG 基本图形

    line 直线 circle 基本属性cx与circle表示的是圆心的坐标,r是半径 ellipse 椭圆 rec...

  • R拼图 韦恩图和热图对象如何转化

    R中关于韦恩图和热图的画法有很多,但是比较流行的画法基本都不是基于ggplot2绘制的,而这个时候我们又想将其与g...

  • 建筑狗日常

    感觉突如其来的责任感降临到我头上,硬是熬夜也要把画法几何做完。不过学会了椭圆的画法还是让人很开心呢,毕竟高中最常用...

网友评论

    本文标题:置信椭圆与R画法

    本文链接:https://www.haomeiwen.com/subject/ozqgdktx.html