2015-11-03 34 views
2

椭圆的什么是与中的R个体因素图中工作时用coord.ellipse(来自FactoMineR封装)和ordiellipse(从vegan封装)椭圆之间的差异计算的?不同类型在PCA分析

下面一些重复性代码:

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) 

随着FactomMineR从example here

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,椭圆几乎是分开的(接受假设),并且它们大部分重叠(假设被拒绝)。

enter image description here

回答

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%的椭圆(我在这里显示的)。从我的观点来看,这不是非常确定的,但你看到......或者你在测试,但是你应该真的问另外一个问题,可能更多关于交叉验证。

+0

好的,但是两者有什么区别?就我而言,我想评估我的组是否能很好地与变量区分开来......在这种特定情况下,这两种方法提供了不同的结果。一个具有几乎分开的椭圆,另一个具有重叠的椭圆 –

+0

嗯,差异与95%可信区间和标准差之间的差异相同。在某些时候,你必须潜入这些功能的帮助... – cmbarbu

+0

感谢您的帮助! –