PCA分析中不同类型的椭圆

Different type of ellipse in PCA analysis

使用 coord.ellipse(来自 FactoMineR 包)和 ordiellipse(来自 vegan 包)在 R 中使用单个因子映射时计算的椭圆之间有什么区别?

下面是一些可重现的代码:

library(FactoMineR)
library(vegan)
data(decathlon)

res.pca = PCA(decathlon[,1:10], scale.unit=TRUE, ncp=5, graph=T) 
pcarda <- rda(decathlon[,1:10],scale=T)

使用来自 example here 的 FactomMineR。

concat = cbind.data.frame(decathlon[,13],res.pca$ind$coord)
ellipse.coord = coord.ellipse(concat,bary=T)
plot.PCA(res.pca,ellipse=ellipse.coord,cex=0.8)

使用椭圆形:

ordiplot(pcarda)
ordiellipse(pcarda,groups = decathlon[,13])

那些省略号提供了完全不同的结果...

我想直观地评估这些变量是否真的可以区分我的群体。使用 coord.ellipse 时,椭圆几乎是分开的(接受假设),而使用 ordiellipse 时,它们大部分重叠(拒绝假设)。

coord.ellipse为分类变量的重心构造置信椭圆(默认阈值为 0.95,请参阅其帮助)。

ordiellipse 为点或其加权平均值构造标准偏差椭圆(请参阅参数 kind 的帮助)。

如果给它们相同的参数,它们是等价的(默认情况下它们是不同的)。例如:

par(mfrow=c(1,2))
ellipse.coord = coord.ellipse(concat,bary=TRUE,conf=0.95)
plot.PCA(res.pca,ellipse=ellipse.coord,cex=0.8,ylim=c(-4,4),xlim=c(-4,4))
ordiplot(pcarda,ylim=c(-2,2),xlim=c(-2,2))
ordiellipse(pcarda,groups = decathlon[,13],conf=0.95,kind="se")

获得:

它看起来并不完全一样,因为图形的比例略有不同(并且难以调整),但您可以看到它们以完全相同的方式分隔点。

那么如何检验你的假设就是Cross Validated的问题了。简而言之,如果你想表示你的群体是不相交的,只需用两种不同的颜色绘制个人:他们不是。 如果你想表示你的组的重心(一种方法)之间的差异,那么使用 95% 的椭圆(我在这里显示的那个)。从我的角度来看,这不是很确定,但你看......或者你测试但是为此你真的应该问另一个问题,并且可能比这里更多关于交叉验证的问题。