0

我目前正在自学多维缩放。其中,我研究了 Borg & Groenen (2005):现代多维尺度:理论与应用。

在第 10 页,他们展示了 Wish (1971) 报告的真实数据集。Wish (1971) 要求 18 名学生以 9 点评分标准对法国和中国等不同国家的全球相似性进行评分,评分范围从 1 = 非常不同到 9 = 非常相似。由于数据集是公开的,因此我想在 R 中复制结果以供练习。作为第一步,我想复制同样在 Borg & Groenen (2005, p. 10) 中提出的以下配置。

在此处输入图像描述

我进行如下:

library(smacof)                       ### this package contains the data set
data(wish)                            ### that is the data set

由于数据集包含相似性评级,我使用 MASS 包的 isoMDS 命令应用了非度量多维缩放。尽管教科书作者提到“二维 MDS 配置”,但我也尝试了更高维的解决方案。因此,我编写了一个循环,对包含 2 到 9 维的配置执行多维缩放。

X <- c()
for (i in 2:9) {
  MDS <- isoMDS(wish, k = i)
  X <- c(X, MDS$stress)
  plot(MDS$points[,c(1,2)])
  text(MDS$points[, 1], MDS$points[, 2], colnames(as.matrix(wish)), cex=.6, 
  pos = 1)
}
plot(X, type = "b")                    ### this  allowed me to plot the stress levels associated with each configuration

所得到的图都与 Borg & Groenen (2005, p. 10) 中提出的图不同。例如,二维的地图如下:

在此处输入图像描述

我检查了数据集是否与 Borg & Groenen (2005, p. 10) 报告的数据集相同。我还尝试了如下度量缩放:

for (i in 2:9) {
  plot(smacofSym(wish, ndim=i))
}

同样,我无法复制 Borg & Groenen (2005, p. 10) 报告的结果。但是,我不确定在尝试复制结果时是否犯了任何错误。

4

1 回答 1

1

使用基数 R cmdscale,我得到了与Borg & Groenen类似的结果。

如果你看一下它的结构,wish你会发现它只是一个由 66 个数字组成的向量。我将其解释为下三角相似矩阵。我将其转换为一个完整的相异矩阵,以便我可以使用cmdscale和绘图。这些位置与 Borg & Groenen 的位置大致一致。

library(smacof)
data(wish)

## Construct distance matrix
SM = matrix(0, nrow=12, ncol=12)
SM[lower.tri(SM)] = wish
SM = SM + t(SM)
diag(SM) = 9
DM = 9-SM

## MDS & plotting
MDS = cmdscale(DM)
plot(MDS, pch=20, xlim=c(-4,4), ylim=c(-4,4))
text(MDS, labels = attr(wish, "Labels"), adj=c(0.5,-0.6), cex=0.8)
abline(0.5,0.3, lty=2)
abline(-1,-3.8, lty=2)

多维缩放图

于 2019-04-07T18:56:28.890 回答