R proporciona funciones para el escalado multidimensional clásico y no métrico. Supongamos que tenemos N objetos medidos en p variables numéricas. Queremos representar las distancias entre los objetos de forma parsimoniosa (y visual) (es decir, un espacio k-dimensional inferior).
MDS clásico
Puedes realizar un MDS clásico utilizando la función cmdscale( ).
# 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)
haz clic para ver
MDS no métrico
El MDS no métrico se realiza mediante la función isoMDS( ) del paquete MASS.
# 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)
haz clic para ver
Escala de diferencias individuales
El escalado de 3 vías o de diferencias individuales puede completarse utilizando la función indscal() del paquete SensoMineR. El paquete smacof ofrece un análisis tripartito de las diferencias individuales basado en la minimización del estrés de los medios de mayorización.
Practicar
Este tutorial sobre ggplot2 incluye ejercicios sobre Matrices de distancia y Escalado multidimensional (MDS).
Aprende lo esencial de R
Domina los fundamentos del análisis de datos en R, incluyendo vectores, listas y marcos de datos, y practica R con conjuntos de datos reales.