Otra forma de enfocar el problema de agrupar datos es intentando representar los datos en menos dimensiones.
dt <- readRDS("dta/datos-criminalidad.RDS")
Para ello empezamos por calcular la matriz de distancias entre las observaciones.
sdt <- scale(dt)
d <- dist(sdt)
A continuación, encontramos la representación en dos dimensiones que mejor preserva la matriz de distancias que acabamos de calcular.
fit <- cmdscale(d, eig=TRUE, k=2)
Ahora podemos ver cómo se presentan los datos en esta nueva representación en dos dimensiones.
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 = 1:nrow(sdt), cex=.7)