多维标度分析古典函数cmdscale的用法:
cmdscale(D,k=2,…)
D表示进行多维标度分析的距离矩阵,k表示维度,默认取2维
D=matrix(c(0,1,sqrt(3),2,sqrt(3),1,1,1,0,1,sqrt(3),2,sqrt(3),1,sqrt(3),1,0,1,sqrt(3),2,1,2,sqrt(3),1,0,1,sqrt(3),1,sqrt(3),2,sqrt(3),1,0,1,1,1,sqrt(3),2,sqrt(3),1,0,1,1,1,1,1,1,1,0),nrow=7,ncol=7)
round(cmdscale(D),3)
D的古典解
eg根据城市的距离矩阵,在二维平面上把城市标出来
MSD1=cmdscale(X)
MSD1
plot(MSD1[,1],MSD1[,2],type = 'n',asp = 1)
text(MSD1[,1],MSD1[,2],labels = rownames(X))
2.
非度量法多维标度分析函数isoMDS的用法
需要调用包MASS
isoMDS(D,k=2,…)
D表示距离阵,k表示维度
注意D必须为矩阵,可用函数as.matri将数据框等其他形式转换成矩阵形式。
D=as.matrix(X)
MDS2=isoMDS(D,k=2)
MSD2
plot(MDS2$points[,1],MDS2$points[,2],type = 'n')
text(MDS2$points[,1],MDS2$points[,2],labels = rownames(D))
与古典解基本一致
多维标度法的计算过程:
1.确认研究目的
2.选择样品和变量
3.计算样品间的距离矩阵
4.分析样品间的距离矩阵
5.计算距离阵的古典解
6.检验模型的拟合效果