R语言教程之多维度缩放Multidimensional Scaling
当前位置:以往代写 > R语言教程 >R语言教程之多维度缩放Multidimensional Scaling
2019-06-13

R语言教程之多维度缩放Multidimensional Scaling

R语言教程之多维度缩放Multidimensional Scaling

R提供了经典和非度量多维缩放的功能。假设我们有N个在p数字变量上测量的对象。我们想要用简洁(和可视化)的方式来表示物体之间的距离(即较低的k维空间)。

古典MDS

您可以使用cmdscale()函数执行经典的MDS 

# Classical MDS
# N rows (objects) x p columns (variables)
# each row identified by a unique row name

d <- dist(mydata) # euclidean distances between the rows
fit <- cmdscale(d,eig=TRUE, k=2) # k is the number of dim
fit # view results

# plot solution 
x <- fit$points[,1]
y <- fit$points[,2]
plot(x, y, xlab="Coordinate 1", ylab="Coordinate 2", 
  main="Metric MDS", type="n")
text(x, y, labels = row.names(mydata), cex=.7)

古典mds 点击查看

非定量MDS

Nonmetric MDS使用MASS包中isoMDS()函数执行

# Nonmetric MDS
# N rows (objects) x p columns (variables)
# each row identified by a unique row name

library(MASS)
d <- dist(mydata) # euclidean distances between the rows
fit <- isoMDS(d, k=2) # k is the number of dim
fit # view results

# plot solution 
x <- fit$points[,1]
y <- fit$points[,2]
plot(x, y, xlab="Coordinate 1", ylab="Coordinate 2", 
  main="Nonmetric MDS", type="n")
text(x, y, labels = row.names(mydata), cex=.7)

非定量mds 点击查看

个体差异缩放

使用SensoMineR软件包中indscal()函数可以完成3路或个体差异缩放smacof包提供的基础上,优化的手段应力最小化的个体差异三通分析。

来练习

ggplot2上的这个教程包括距离矩阵和多维度量(MDS)的练习。

    关键字:

在线提交作业