多维缩放

时间:2011-07-07 15:25:03

标签: r

我有5x14数据矩阵。我正在使用MDS来获取感知图。我可以正确地做MDS&得到结果。

但我的问题是在MDS中我们可以映射行或列变量。可以映射行和放大器吗?使用MDS的列变量。

我使用的代码如下:

perp<-read.csv("E:\\Projects\\Combined_3.csv")
ads.dis<-dist(perp)
perp_mds <- cmdscale(ads.dis, k = 2,eig=TRUE)
x <- perp_mds$points[,1]
y <- perp_mds$points[,2]
plot(x,y, xlab = "Coordinate 1", ylab = "Coordinate 2", type = "n")
text(x,y, labels = rownames(perp))

如果有人可以帮我编码,我将不胜感激。

此致 ARI

1 个答案:

答案 0 :(得分:5)

一般来说,答案是否定的,而不是cmdscale()。所有cmdscale()都知道的是对象之间的差异。在素食主义包中,有一个函数capscale(),它是主坐标分析的约束版本(PCoA又名MDS),但可以用于普通的PCoA。它可以将对象和变量放在类似双标图的图中:

require(vegan)
data(varespec)
mod <- capscale(varespec ~ 1)
plot(mod)

但请注意,欧洲距离的PCoA与PCA相同,也可以使用,并自然地绘制对象和变量:

plot(rda(varespec))

或使用基本R函数

mod2 <- prcomp(varespec)
biplot(mod2)

或者您的意思是MDS的非度量版本?