多维缩放

Bet*_*eta 2 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))
Run Code Online (Sandbox Code Playgroud)

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

问候,阿里

Rei*_*son 5

通常,答案是否定的,不是cmdscale()。所有cmdscale()了解的只是对象之间的差异。在vegan软件包中,有一些功能capscale()是主坐标分析的受约束版本(PCoA或MDS),但可用于普通PCoA。可以将对象和变量都放置在类似双线图的图中:

require(vegan)
data(varespec)
mod <- capscale(varespec ~ 1)
plot(mod)
Run Code Online (Sandbox Code Playgroud)

但是请注意,具有欧几里德距离的PCoA与PCA相同,也可以使用它,并且自然会绘制对象和变量:

plot(rda(varespec))
Run Code Online (Sandbox Code Playgroud)

或使用基本R函数

mod2 <- prcomp(varespec)
biplot(mod2)
Run Code Online (Sandbox Code Playgroud)

还是您指的是MDS的非公制版本?