Método Enlace simple

Primero se cargara la base

library(readxl)
datos <- read_excel("datos.xlsx")
View(datos)
# Paso 1: Extraer las primeras 8 filas
ciudades <- datos[1:8, ]

# Paso 2: Quitar la columna "City"
ciudades_numericas <- ciudades[,-1]

# Añadir esta línea para que los nombres de las ciudades se usen como rownames
nombres <- ciudades$City

# Paso 3: Calcular la distancia euclidiana
datos_EUC <- dist(ciudades_numericas, method = "euclidean")

# paso 4: para mirar la matrix de distacia
matriz_dist <- as.matrix(datos_EUC)
round(matriz_dist, 1)
##       1     2      3     4      5     6     7     8
## 1   0.0 536.6  516.4 590.2  693.6 716.2 215.2 443.7
## 2 536.6   0.0  447.4 833.1  915.0 881.1 493.5 723.8
## 3 516.4 447.4    0.0 924.0 1073.4 971.5 426.5 893.9
## 4 590.2 833.1  924.0   0.0  527.7 464.5 723.6 421.0
## 5 693.6 915.0 1073.4 527.7    0.0 358.7 894.0 376.4
## 6 716.2 881.1  971.5 464.5  358.7   0.0 892.3 517.6
## 7 215.2 493.5  426.5 723.6  894.0 892.3   0.0 609.4
## 8 443.7 723.8  893.9 421.0  376.4 517.6 609.4   0.0
# paso 5: 
# Agrupamiento jerárquico usando enlace simple (Single Linkage)
hc_single <- hclust(datos_EUC, method = "single")

#para mirar el orden en que se forman los conglomerados
hc_single$merge
##      [,1] [,2]
## [1,]   -1   -7
## [2,]   -5   -6
## [3,]   -8    2
## [4,]   -4    3
## [5,]   -3    1
## [6,]    4    5
## [7,]   -2    6
#Y las alturas (distancias) a las que se unen:
hc_single$height
## [1] 215.1604 358.6654 376.4364 420.9614 426.4688 443.6810 447.4033
# Paso 6: Graficar el dendrograma
plot(hclust(datos_EUC, method = "single"),
     labels = nombres,
     main = "Enlace simple",
     xlab = "")

Puedes agregar rectángulos de colores alrededor de los clústeres con:

hc <- hclust(datos_EUC, method = "single")
plot(hc, labels = nombres, main = "Enlace simple", xlab = "")
rect.hclust(hc, k = 3, border = "blue")  # o usa k = 3 si quieres más clústeres

Método Enlace Completo

# Paso 4: Graficar el dendrograma
plot(hclust(datos_EUC, method = "complete"),
     labels = nombres,
     main = "Enlace Completo",
     xlab = "")

Método Enlace Promedio

# Paso 4: Graficar el dendrograma
plot(hclust(datos_EUC, method = "average"),
     labels = nombres,
     main = "Enlace Promedio",
     xlab = "")

Método centroide

# Paso 4: Graficar el dendrograma
plot(hclust(datos_EUC, method = "centroid"),
     labels = nombres,
     main = "Método Centroide",
     xlab = "")