PCA分析中不同类型的椭圆

时间:2015-11-03 09:08:27

标签: r pca

使用coord.ellipse(来自FactoMineR包)和ordiellipse(来自vegan包)处理R中的单个因子映射时计算的省略号之间有什么区别?< / p>

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

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)

使用ordiellipse:

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

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

我想直观地评估变量是否可以实际区分我的群体。使用coord.ellipse,省略号几乎是分开的(假设被接受),而ordiellipse它们大多是重叠的(假设被拒绝)。

enter image description here

1 个答案:

答案 0 :(得分:0)

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")

获得:

enter image description here

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

然后,如何测试您的假设是Cross Validated的问题。简而言之,如果你想表示你的团体是不相交的,那么只需要用两种不同的颜色绘制个体:它们不是。 如果你想表示你的组的重心(手段的种类)之间的差异,那么请使用95%的椭圆(我在这里显示的那个)。从我的观点来看,它不是很确定,但你看到......或者你测试但是你应该真的问另一个问题,而且可能更多关于Cross Validated而不是在这里。