Presentación del Problema

Se presenta un conjunto de datos llamada “Usarrest” el cual informa sobre el número de arrestos por cada 100 000 habitantes en cada estado de Estados Unidos, siendo las variables definidas a continuación:

Se desea aplicar un clustering jerarquico y no jerarquico al conjunto de datos. En efecto, cargamos la base de datos y la delimitamos.

datos<-data.frame(USArrests)
attach(datos)

Ahora bien, paras aplicar las técnicas de Machine learning escalamos todoe el conjunto de datos y si fuese posible convertimos los datos categóricos a tipos numéricos.

datos.scalados<-scale(x=datos,center = T,scale=T)
Se considera la métrica euclideana definida en \(\mathbb{R}^n\), dada por: \(d\colon \mathbb{R}^n \times \mathbb{R}^n \to \mathbb{R}\) tal que:

\[\begin{equation} d(x,y)=\left(\sum_{k=1}^{n}\, \lvert x_k-y_k\rvert^2 \right)^{1/2},\hspace{0.3cm}\forall\hspace{0.2cm}x,y\in \mathbb{R}^{n} \end{equation}\] es claro que verifica las 3 propiedades de métrica en \(\mathbb{R}^n\). Por otro lado, hallamos la matriz de distancias usando la métrica \(d\):

ditsancias<- dist(x=datos.scalados,method = "euclidean")

salida<- as.matrix(ditsancias)[1:6,1:6]  ### es para mostrar solo una parte 
round(salida,digits = 4)
           Alabama Alaska Arizona Arkansas California Colorado
Alabama     0.0000 2.7038  2.2935   1.2898     3.2631   2.6511
Alaska      2.7038 0.0000  2.7006   2.8260     3.0125   2.3265
Arizona     2.2935 2.7006  0.0000   2.7178     1.3105   1.3650
Arkansas    1.2898 2.8260  2.7178   0.0000     3.7636   2.8311
California  3.2631 3.0125  1.3105   3.7636     0.0000   1.2876
Colorado    2.6511 2.3265  1.3650   2.8311     1.2876   0.0000

Cluster Jerarquico

Usando el método completo realizamos el clust6er obteniendo:

d=as.dist(salida)
cluster<-hclust(d=ditsancias,method = "complete")
plot(cluster)

Dando estilo al dendograma;

fviz_dend(x=cluster,cex=0.8,lwd = 0.8,k=4,
          k_colors = c("jco"),
          rect = T,
          rect_border = "jco",
          rect_fill = T)

De manera similar, usamos ahora la métrica de Minkowski y el método Ward.D0 y obtenemos;

di<- dist(x=datos.scalados,method = "minkowski")
cluster2<-hclust(d=ditsancias,method = "ward.D")
min<-fviz_dend(x=cluster2,cex=0.8,lwd = 0.8,k=4,
               k_colors = c("jco"),
               rect = T,
               rect_border = "jco",
               rect_fill = T)
min

## Conclusiones

hallando los valores medios para cada grupo encontramos que;