Échelle multidimensionnelle en R
R fournit des fonctions pour l'échelonnement multidimensionnel classique et non métrique. Supposons que nous ayons N objets mesurés sur p variables numériques. Nous voulons représenter les distances entre les objets d'une manière parcimonieuse (et visuelle), c'est-à-dire dans un espace à k dimensions inférieures.
MDS classique
Vous pouvez effectuer un MDS classique à l'aide de la fonction 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)
MDS non métrique
Le MDS non métrique est réalisé à l'aide de la fonction isoMDS( ) du logiciel 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)
Échelle des différences individuelles
La mise à l'échelle des différences individuelles ou à trois voies peut être réalisée à l'aide de la fonction indscal() du progiciel SensoMineR. Le progiciel smacof offre une triple analyse des différences individuelles basée sur la minimisation du stress des moyens de majoration.
Pratiquer
Ce tutoriel sur ggplot2 comprend des exercices sur les matrices de distance et l'échelle multidimensionnelle (MDS).