如何对 Wish(1971)报告的 12 国数据集进行多维缩放

How to carry out multidimensional scaling on 12-nations data set reported by Wish (1971)

我目前正在自学多维尺度。其中,我研究了 Borg & Groenen (2005):Modern multidimensional scaling : theory and applications。

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

我是这样处理的:

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

由于数据集包含相似性评级,我使用 MASS 包的 isoMDS 命令应用了非度量多维缩放。尽管教科书作者说的是 "two-dimensional MDS configuration",但我也尝试了更高维的解决方案。因此,我编写了一个循环,对包含 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

None 的结果图类似于 Borg & Groenen (2005, p. 10) 中介绍的图。例如2维的映射如下:

我检查过该数据集与 Borg & Groenen(2005 年,第 10 页)报告的数据集相同。我还按如下方式尝试了公制缩放:

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

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

使用基础 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)