我目前正在自学多维缩放。其中,我研究了 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) 报告的结果。但是,我不确定在尝试复制结果时是否犯了任何错误。