R 如何对Wish(1971)报告的12个国家的数据集进行多维标度
我目前自学多维标度。其中,我研究了博格和格罗恩2005:现代多维尺度:理论和应用 在第10页,他们展示了一组由Wish 1971报告的真实数据。Wish 1971要求18名学生对不同国家(如法国和中国)的全球相似性进行评分,评分标准为9分,从1分到9分不等。因为数据集是公开的,所以我想在R中复制结果以用于实践目的。作为第一步,我想复制同样在Borg&Groenen 2005,第。10. 我的工作如下:R 如何对Wish(1971)报告的12个国家的数据集进行多维标度,r,multi-dimensional-scaling,R,Multi Dimensional Scaling,我目前自学多维标度。其中,我研究了博格和格罗恩2005:现代多维尺度:理论和应用 在第10页,他们展示了一组由Wish 1971报告的真实数据。Wish 1971要求18名学生对不同国家(如法国和中国)的全球相似性进行评分,评分标准为9分,从1分到9分不等。因为数据集是公开的,所以我想在R中复制结果以用于实践目的。作为第一步,我想复制同样在Borg&Groenen 2005,第。10. 我的工作如下: library(smacof) ### this
library(smacof) ### this package contains the data set
data(wish) ### that is the data set
for (i in 2:9) {
plot(smacofSym(wish, ndim=i))
}
由于数据集包含相似性评级,我使用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
同样,我无法复制博格和格罗恩2005年报告的结果,p。10然而,我不确定在尝试复制结果时是否犯了任何错误 使用基本CMDR量表,我得到了与Borg&Groenen类似的结果
如果你看看愿望的结构,你会发现它是
仅仅是一个由66个数字组成的向量。我把它解释为下三角
相似矩阵。我把它转换成一个完全不同的矩阵,这样我
可以使用cmdscale和plot。位置与位置大致对齐
来自博格和格罗恩
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)
我是个十足的白痴。Wish数据集包含相似性评级。因此,我应该将数据集转换为不同的数据集。这就是您所做的:“DM=9-SM”见上文。一旦我加入了这一步骤,我也成功地复制了结果。如果这是你一生中犯的最严重的错误,你就是天才。谢谢。顺便说一句,我有一个后续问题。您可能对它感兴趣: