Problema

Una empresa inmobiliaria líder en una gran ciudad está buscando comprender en profundidad el mercado de viviendas urbanas para tomar decisiones estratégicas más informadas. La empresa posee una base de datos extensa que contiene información detallada sobre diversas propiedades residenciales disponibles en el mercado. Se requiere realizar un análisis holístico de estos datos para identificar patrones, relaciones y segmentaciones relevantes que permitan mejorar la toma de decisiones en cuanto a la compra, venta y valoración de propiedades.

Análisis exploratorio

Cargar librerías

library(devtools)
## Warning: package 'devtools' was built under R version 4.3.2
## Loading required package: usethis
library(paqueteMODELOS)
## Loading required package: boot
## Loading required package: broom
## Loading required package: GGally
## Loading required package: ggplot2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## Loading required package: gridExtra
## Warning: package 'gridExtra' was built under R version 4.3.2
## Loading required package: knitr
## Loading required package: summarytools
library(mice)
## Warning: package 'mice' was built under R version 4.3.2
## 
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
## 
##     filter
## The following objects are masked from 'package:base':
## 
##     cbind, rbind
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(magrittr)
library(dummy)
## dummy 0.1.3
## dummyNews()
library(caret)
## Warning: package 'caret' was built under R version 4.3.2
## Loading required package: lattice
## 
## Attaching package: 'lattice'
## The following object is masked from 'package:boot':
## 
##     melanoma
library(factoextra)
library(NbClust)
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.3.2
library(corrplot)
## corrplot 0.92 loaded

Importación de data

data(vivienda)
str(vivienda)
## spc_tbl_ [8,322 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ id          : num [1:8322] 1147 1169 1350 5992 1212 ...
##  $ zona        : chr [1:8322] "Zona Oriente" "Zona Oriente" "Zona Oriente" "Zona Sur" ...
##  $ piso        : chr [1:8322] NA NA NA "02" ...
##  $ estrato     : num [1:8322] 3 3 3 4 5 5 4 5 5 5 ...
##  $ preciom     : num [1:8322] 250 320 350 400 260 240 220 310 320 780 ...
##  $ areaconst   : num [1:8322] 70 120 220 280 90 87 52 137 150 380 ...
##  $ parqueaderos: num [1:8322] 1 1 2 3 1 1 2 2 2 2 ...
##  $ banios      : num [1:8322] 3 2 2 5 2 3 2 3 4 3 ...
##  $ habitaciones: num [1:8322] 6 3 4 3 3 3 3 4 6 3 ...
##  $ tipo        : chr [1:8322] "Casa" "Casa" "Casa" "Casa" ...
##  $ barrio      : chr [1:8322] "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
##  $ longitud    : num [1:8322] -76.5 -76.5 -76.5 -76.5 -76.5 ...
##  $ latitud     : num [1:8322] 3.43 3.43 3.44 3.44 3.46 ...
##  - attr(*, "spec")=List of 3
##   ..$ cols   :List of 13
##   .. ..$ id          : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ zona        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ piso        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ estrato     : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ preciom     : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ areaconst   : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ parqueaderos: list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ banios      : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ habitaciones: list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ tipo        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ barrio      : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ longitud    : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ latitud     : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   ..$ default: list()
##   .. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
##   ..$ delim  : chr ";"
##   ..- attr(*, "class")= chr "col_spec"
##  - attr(*, "problems")=<externalptr>

Resumen estadistico

summary(vivienda)
##        id           zona               piso              estrato     
##  Min.   :   1   Length:8322        Length:8322        Min.   :3.000  
##  1st Qu.:2080   Class :character   Class :character   1st Qu.:4.000  
##  Median :4160   Mode  :character   Mode  :character   Median :5.000  
##  Mean   :4160                                         Mean   :4.634  
##  3rd Qu.:6240                                         3rd Qu.:5.000  
##  Max.   :8319                                         Max.   :6.000  
##  NA's   :3                                            NA's   :3      
##     preciom         areaconst       parqueaderos        banios      
##  Min.   :  58.0   Min.   :  30.0   Min.   : 1.000   Min.   : 0.000  
##  1st Qu.: 220.0   1st Qu.:  80.0   1st Qu.: 1.000   1st Qu.: 2.000  
##  Median : 330.0   Median : 123.0   Median : 2.000   Median : 3.000  
##  Mean   : 433.9   Mean   : 174.9   Mean   : 1.835   Mean   : 3.111  
##  3rd Qu.: 540.0   3rd Qu.: 229.0   3rd Qu.: 2.000   3rd Qu.: 4.000  
##  Max.   :1999.0   Max.   :1745.0   Max.   :10.000   Max.   :10.000  
##  NA's   :2        NA's   :3        NA's   :1605     NA's   :3       
##   habitaciones        tipo              barrio             longitud     
##  Min.   : 0.000   Length:8322        Length:8322        Min.   :-76.59  
##  1st Qu.: 3.000   Class :character   Class :character   1st Qu.:-76.54  
##  Median : 3.000   Mode  :character   Mode  :character   Median :-76.53  
##  Mean   : 3.605                                         Mean   :-76.53  
##  3rd Qu.: 4.000                                         3rd Qu.:-76.52  
##  Max.   :10.000                                         Max.   :-76.46  
##  NA's   :3                                              NA's   :3       
##     latitud     
##  Min.   :3.333  
##  1st Qu.:3.381  
##  Median :3.416  
##  Mean   :3.418  
##  3rd Qu.:3.452  
##  Max.   :3.498  
##  NA's   :3

Datos nulos

print(colSums(is.na(vivienda)))
##           id         zona         piso      estrato      preciom    areaconst 
##            3            3         2638            3            2            3 
## parqueaderos       banios habitaciones         tipo       barrio     longitud 
##         1605            3            3            3            3            3 
##      latitud 
##            3

Lo que podemos observar es que:
id: Hay 3 valores perdidos en la columna “id” (0 NA). zona: Hay 3 valores perdidos en la columna “zona” (0 NA). piso: Hay 2638 valores perdidos en la columna “piso”. estrato: Hay 3 valores perdidos en la columna “estrato” (0 NA). preciom: Hay 2 valores perdidos en la columna “preciom”. areaconst: Hay 3 valores perdidos en la columna “areaconst” (0 NA). parqueaderos: Hay 1605 valores perdidos en la columna “parqueaderos”. bañios: Hay 3 valores perdidos en la columna “banios” (0 NA). habitaciones: Hay 3 valores perdidos en la columna “habitaciones” (0 NA). tipo: Hay 3 valores perdidos en la columna “tipo” (0 NA). barrio: Hay 3 valores perdidos en la columna “barrio”. longitud: Hay 3 valores perdidos en la columna “longitud”. latitud: Hay 3 valores perdidos en la columna “latitud”. En su mayoria de variable se encuentran con 3 valores NA, esto pudo ocurrir por un mal manejo de la data o por problemas a la hora digitalizar.

Contabilización las filas con valores faltantes mayores al 77% o 10/13

filas_NA <- vivienda %>% 
  mutate(num_faltantes = rowSums(is.na(.))) %>% 
  filter(num_faltantes >= 10)
filas_NA
## # A tibble: 3 × 14
##      id zona  piso  estrato preciom areaconst parqueaderos banios habitaciones
##   <dbl> <chr> <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
## 1    NA <NA>  <NA>       NA      NA        NA           NA     NA           NA
## 2    NA <NA>  <NA>       NA      NA        NA           NA     NA           NA
## 3    NA <NA>  <NA>       NA     330        NA           NA     NA           NA
## # ℹ 5 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>,
## #   num_faltantes <dbl>

Se exclusión los datos faltantes

vivienda1 <- na.omit(vivienda)

Valores únicos con la variable tipo

unique(vivienda1$tipo)
## [1] "Casa"        "Apartamento"

Es importante unificar la base con el fin de no tener problemas más adelante

Identificación de valores atípicos precio

iqr_precio <- quantile(vivienda1$preciom, 0.75) - quantile(vivienda1$preciom, 0.25)
umbral_inferior_precio <- quantile(vivienda1$preciom, 0.25) - 1.5 * iqr_precio
umbral_superior_precio <- quantile(vivienda1$preciom, 0.75) + 1.5 * iqr_precio
outliers_precio <- vivienda1 %>%
  filter(preciom < umbral_inferior_precio | preciom > umbral_superior_precio)

Boxplot para precio de la vivienda

ggplot(vivienda1, aes(x = "", y = preciom)) +
  geom_boxplot(fill = "purple", color = "pink") +
  geom_point(data = outliers_precio, aes(x = 1, y = preciom)) +
  geom_hline(yintercept = c(umbral_inferior_precio, umbral_superior_precio), 
             linetype = "dashed", color = "red", size = 1) +
  labs(title = "Bloxplot precio",
       x = "",
       y = "Precio en millones (COP)") +
  theme_minimal() +
  theme(axis.text.x = element_blank(),
        axis.ticks.x = element_blank())
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Dentro del diagrama de caja, se puede identificar la línea central, que representa la mediana. En la línea anterior, se pueden obtener el valor correspondiente al atributo. Además, es evidente que el atributo cuenta con datos atípicos es mitosis. La caja comprende desde el primer cuartil (Q1) hasta el tercer cuartil (Q3), siendo el extremo inferior de la caja el Q1 y el extremo superior el Q3.

Identificación de valores atípicos

iqr_area <- quantile(vivienda1$areaconst, 0.75) - quantile(vivienda1$areaconst, 0.25)
umbral_inferior_area <- quantile(vivienda1$areaconst, 0.25) - 1.5 * iqr_area
umbral_superior_area <- quantile(vivienda1$areaconst, 0.75) + 1.5 * iqr_area
outliers_area <- vivienda1 %>%
  filter(areaconst < umbral_inferior_area | areaconst > umbral_superior_area)

Matriz de correlación

correlation_matrix <- cor(vivienda1[, c("habitaciones", "banios", "areaconst","preciom", "estrato")])
corrplot(correlation_matrix, method = "color", addCoef.col = "orange")

correlation_table <- as.table(correlation_matrix)
print(correlation_table)
##              habitaciones      banios   areaconst     preciom     estrato
## habitaciones   1.00000000  0.59749611  0.55643197  0.29492577 -0.05218848
## banios         0.59749611  1.00000000  0.68066785  0.68928462  0.40814595
## areaconst      0.55643197  0.68066785  1.00000000  0.69755191  0.26985962
## preciom        0.29492577  0.68928462  0.69755191  1.00000000  0.58698562
## estrato       -0.05218848  0.40814595  0.26985962  0.58698562  1.00000000

Se puede observar que la correlación más fuerte se da entre precios y baños, esto se podría ser posible ya que propiedades con un mayor número de baños sean más atractivas para los compradores, lo que podría aumentar la demanda y, por lo tanto, los precios.Asimismo pueden ofrecer un nivel superior de comodidad y conveniencia.

Análisis de Componentes Principales

Creación de un nuevo dataframe con las variables de interes

vivienda2 <- subset(vivienda1, select = c ("estrato", "preciom", "areaconst", "habitaciones", "banios"))
head(vivienda1)
## # A tibble: 6 × 13
##      id zona    piso  estrato preciom areaconst parqueaderos banios habitaciones
##   <dbl> <chr>   <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
## 1  5992 Zona S… 02          4     400       280            3      5            3
## 2  1212 Zona N… 01          5     260        90            1      2            3
## 3  1724 Zona N… 01          5     240        87            1      3            3
## 4  2326 Zona N… 01          4     220        52            2      2            3
## 5  4386 Zona N… 01          5     310       137            2      3            4
## 6  1209 Zona N… 02          5     320       150            2      4            6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
vivienda2 <- data.frame(lapply(vivienda2, as.numeric))
vivienda2scl= scale(vivienda2)
head(vivienda2scl)
##         estrato    preciom  areaconst habitaciones     banios
## [1,] -0.9046263 -0.1756310  0.7609789   -0.4241459  1.3178809
## [2,]  0.1749079 -0.6055839 -0.6129041   -0.4241459 -0.9022913
## [3,]  0.1749079 -0.6670057 -0.6345970   -0.4241459 -0.1622339
## [4,] -0.9046263 -0.7284276 -0.8876807   -0.4241459 -0.9022913
## [5,]  0.1749079 -0.4520293 -0.2730489    0.3272519 -0.1622339
## [6,]  0.1749079 -0.4213184 -0.1790463    1.8300475  0.5778235
vivienda2.pca=prcomp(vivienda2scl)
vivienda2.pca
## Standard deviations (1, .., p=5):
## [1] 1.7276281 1.0782766 0.6448453 0.5000780 0.4321079
## 
## Rotation (n x k) = (5 x 5):
##                    PC1         PC2        PC3        PC4        PC5
## estrato      0.3135372  0.69992307 -0.4611027  0.4241101  0.1389855
## preciom      0.5021497  0.27812247  0.3588630 -0.2087688 -0.7057807
## areaconst    0.4987508 -0.17028101  0.5871764  0.3970436  0.4688626
## habitaciones 0.3624641 -0.62917507 -0.4702216  0.3701181 -0.3386190
## banios       0.5190448 -0.08887462 -0.3044948 -0.6942011  0.3847877

Con el objetivo de mitigar el impacto de variables con magnitudes significativamente mayores en las estimaciones realizadas, se lleva a cabo la estandarización de las variables antes de iniciar el proceso de estimación de los componentes principales. Esto se hace para prevenir sesgos que podrían surgir debido a las diferencias en la escala de las variables, asegurando así una evaluación más equitativa y precisa de los componentes principales.

Las desviaciones estándar indican la variabilidad de cada variable en el conjunto de datos.Las desviaciones estándar para las cinco variables son: Estrato: 1.7276281 Preciom: 1.0782766 Area construida: 0.6448453 Habitaciones: 0.5000780 Baños: 0.4321079

PC1: Las variables más fuertemente relacionadas positivamente son estrato, preciom, y areaconst, mientras que habitaciones y banios tienen una relación positiva, pero más débil.

PC2: estrato y banios tienen fuertes relaciones positivas, mientras que preciom y habitaciones tienen relaciones negativas significativas.

PC3: La variable más fuertemente relacionada es areaconst de manera negativa, seguida de habitaciones y banios de manera positiva.

PC4: Hay fuertes relaciones positivas con estrato y areaconst, y una relación negativa con banios.

PC5: preciom y banios están positivamente relacionados, mientras que estrato y habitaciones tienen relaciones negativas.

Grafica

fviz_eig(vivienda2.pca, addlabels = TRUE, barcolor="pink",
         barfill = "pink")

fviz_pca_var(vivienda2.pca,col.var = "contrib", 
             gradient.cols = c("pink",  "red", "purple"),
             repel = TRUE     # Avoid text overlapping
)

Podemos observar en el gráfico 1, que el primer componente explica el 59,7% de la variabilidad, y a partir de este punto, su contribución comienza a disminuir.

Se observa en el gráfico 2, que las variables de área construida, baños y habitaciones tienen una representación significativa en la dimensión 2. Estas variables están asociadas con aspectos físicos, comodidades y valor de la propiedad. Por otro lado, las variables de precio y estrato están más representadas en la dimensión 1.

Conclusión

Al estandarizar las variables antes de realizar el análisis de componentes principales, se busca evitar sesgos ocasionados por diferencias en la escala de las mismas, asegurando una evaluación más justa y precisa. Las desviaciones estándar proporcionan información sobre la variabilidad de cada variable en el conjunto de datos.

El análisis de componentes principales revela relaciones entre las variables, destacando que en el primer componente principal (PC1), estrato, precio y área construida tienen fuertes relaciones positivas, mientras que habitaciones y baños tienen una relación positiva, aunque más débil. El PC2 muestra relaciones particulares entre estrato y baños, así como entre precio y habitaciones.

Los gráficos de barras refuerzan estos hallazgos, indicando que el primer componente explica el 59,7% de la variabilidad y su contribución disminuye en dimensiones subsiguientes. Además, la representación en el gráfico 2 evidencia que las variables de área construida, baños y precio tienen un peso significativo en la dimensión 2, asociadas con aspectos físicos, comodidades y valor de la propiedad, mientras que las variables de habitaciones y estrato están más representadas en la dimensión 1. Este análisis integral proporciona una visión detallada de la estructura y las relaciones dentro del conjunto de datos.

Análisis de conglomerados

vivienda_ac <- select(vivienda1, estrato, preciom, areaconst, habitaciones, banios)
str(vivienda_ac)
## spc_tbl_ [4,808 × 5] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ estrato     : num [1:4808] 4 5 5 4 5 5 5 4 5 6 ...
##  $ preciom     : num [1:4808] 400 260 240 220 310 320 780 625 750 520 ...
##  $ areaconst   : num [1:4808] 280 90 87 52 137 150 380 355 237 98 ...
##  $ habitaciones: num [1:4808] 3 3 3 3 4 6 3 5 6 2 ...
##  $ banios      : num [1:4808] 5 2 3 2 3 4 3 5 6 2 ...
##  - attr(*, "spec")=List of 3
##   ..$ cols   :List of 13
##   .. ..$ id          : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ zona        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ piso        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ estrato     : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ preciom     : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ areaconst   : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ parqueaderos: list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ banios      : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ habitaciones: list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ tipo        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ barrio      : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ longitud    : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ latitud     : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   ..$ default: list()
##   .. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
##   ..$ delim  : chr ";"
##   ..- attr(*, "class")= chr "col_spec"
##  - attr(*, "problems")=<externalptr> 
##  - attr(*, "na.action")= 'omit' Named int [1:3514] 1 2 3 11 20 28 29 30 31 32 ...
##   ..- attr(*, "names")= chr [1:3514] "1" "2" "3" "11" ...

Método 1 (Codo)

fviz_nbclust(vivienda_ac, kmeans, method = "wss") +
  geom_vline(xintercept = 4, linetype = 2)

num_clusters <- 4
clustering_result1 <- kmeans(vivienda_ac, centers = num_clusters)
print(clustering_result1)
## K-means clustering with 4 clusters of sizes 1392, 321, 2413, 682
## 
## Cluster means:
##    estrato   preciom areaconst habitaciones   banios
## 1 5.048132  457.9131  194.2231     3.913793 3.596264
## 2 5.853583 1382.6480  431.2217     4.295950 5.236760
## 3 4.374223  240.7928   92.3484     3.057190 2.336925
## 4 5.571848  785.7537  305.9147     4.302053 4.621701
## 
## Clustering vector:
##    [1] 1 3 3 3 3 3 4 4 4 1 1 1 1 3 1 3 4 1 3 1 1 3 3 4 3 3 1 3 4 2 3 2 4 2 4 3 3
##   [38] 4 3 4 4 2 3 3 3 4 4 4 3 4 3 4 4 4 3 4 4 4 2 3 4 2 4 4 4 3 4 2 2 4 4 2 4 1
##   [75] 2 4 1 3 3 3 3 3 3 3 3 3 3 3 1 3 3 1 1 3 4 1 3 3 1 3 3 3 1 3 3 1 1 1 4 2 1
##  [112] 2 4 1 3 1 4 1 1 1 1 1 1 1 4 1 1 1 2 4 4 4 4 1 4 2 4 4 1 4 4 3 3 3 3 3 3 3
##  [149] 3 3 2 3 1 3 3 3 3 1 3 3 3 3 3 2 1 3 1 4 4 1 4 1 1 1 1 3 3 2 1 4 1 3 1 1 4
##  [186] 3 3 3 3 3 3 3 3 3 3 1 3 1 3 4 3 3 3 3 3 3 3 3 1 3 3 4 3 3 3 3 3 3 3 3 3 3
##  [223] 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 4 2 2 1 1 1 4 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3
##  [260] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 1 1 1 1 3 3 3 3 3 3 3 3 3 4 3
##  [297] 3 3 3 3 1 3 3 3 3 3 3 1 3 3 3 1 3 1 3 3 1 3 3 1 3 3 3 3 3 1 1 3 1 3 1 3 3
##  [334] 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 4 3 3 3 1 1 1 3 1 1 3 3 3 3 3 3 3 3 3 3 3
##  [371] 3 4 3 3 3 3 3 1 1 3 3 3 3 3 3 3 3 3 1 3 3 3 3 1 1 1 1 3 3 3 3 3 3 1 3 3 3
##  [408] 3 3 1 4 3 3 1 1 3 1 1 1 1 1 3 3 1 1 3 1 1 1 3 1 1 3 3 3 1 1 4 4 1 1 1 1 1
##  [445] 3 4 1 4 3 1 3 3 1 3 1 1 3 3 3 3 1 1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 3 1 3 1 3
##  [482] 1 1 3 1 1 1 1 3 3 3 1 3 1 1 1 1 1 3 3 3 1 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3
##  [519] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 4 1 3 3 3 3 3 3 1 3
##  [556] 4 3 3 4 1 4 3 3 1 3 1 2 3 1 1 1 1 1 4 1 4 3 1 1 4 2 2 2 3 1 4 1 4 3 2 4 4
##  [593] 4 3 2 2 4 1 2 4 4 4 1 4 2 1 2 2 4 4 2 4 1 4 4 4 2 2 4 1 4 4 4 4 2 3 4 4 4
##  [630] 1 4 1 1 1 4 1 4 2 4 4 4 4 4 2 4 4 2 1 4 4 2 4 4 4 4 4 4 4 1 2 4 4 1 2 1 1
##  [667] 4 4 1 4 1 1 2 4 4 4 4 2 4 4 4 4 4 2 4 4 2 4 2 1 4 1 2 4 4 4 1 1 2 4 1 1 4
##  [704] 4 2 4 4 4 4 2 4 4 4 4 4 4 4 4 4 4 4 4 2 2 1 2 2 4 4 2 2 4 4 2 3 3 3 2 2 2
##  [741] 1 4 4 1 2 4 1 4 1 1 1 4 1 3 4 1 1 1 2 3 1 1 2 2 3 1 1 2 2 2 1 1 1 1 1 2 1
##  [778] 1 1 4 1 4 4 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 4 1 1 4 4 2 1 2 2 4
##  [815] 1 4 2 1 2 1 1 1 1 3 1 1 1 3 3 4 2 3 3 4 1 1 3 3 3 4 3 2 1 4 1 4 2 1 3 1 3
##  [852] 1 2 1 3 3 3 1 1 1 1 1 1 3 3 1 1 3 1 1 4 4 3 4 4 1 4 4 1 4 3 3 1 1 3 2 4 3
##  [889] 4 4 4 3 1 2 2 2 4 4 2 4 4 3 3 3 3 1 1 3 3 2 1 2 3 3 3 3 1 1 1 1 3 3 3 1 4
##  [926] 3 4 4 1 4 4 2 4 2 4 2 2 2 2 4 4 3 3 3 3 3 3 3 3 3 3 1 3 3 3 1 3 3 1 3 3 3
##  [963] 3 4 2 2 4 2 4 4 2 4 4 4 2 2 2 1 4 4 3 3 4 3 3 1 1 1 1 3 4 1 3 3 4 1 4 3 3
## [1000] 3 3 3 3 3 3 3 3 3 3 3 1 4 3 3 1 1 4 4 4 3 1 1 3 4 3 3 4 3 1 1 3 1 1 2 4 1
## [1037] 1 1 1 1 1 1 3 3 3 1 1 2 1 1 1 1 2 1 4 4 4 4 1 4 3 1 1 1 1 3 1 3 1 1 1 1 3
## [1074] 3 1 4 3 1 1 1 3 1 3 3 3 3 3 3 3 3 1 3 3 1 3 1 3 3 1 4 4 1 3 1 3 1 1 3 1 1
## [1111] 1 1 1 1 1 3 1 3 1 1 1 3 3 1 3 1 1 1 3 1 3 1 1 1 3 3 4 4 3 3 3 1 1 3 3 3 3
## [1148] 3 3 3 3 3 1 3 3 3 3 1 1 3 3 1 3 3 1 1 3 1 3 3 3 1 3 3 1 3 3 1 3 3 3 3 3 3
## [1185] 3 3 1 1 3 3 1 3 1 1 3 1 1 1 1 3 3 3 3 3 3 3 1 1 1 3 3 4 1 1 1 3 3 3 4 1 3
## [1222] 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 3 1 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3
## [1259] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 3 3 3 4 3 3 3 3 3 1 3 1
## [1296] 3 1 3 3 3 1 3 3 4 1 3 3 3 3 1 1 1 3 3 1 1 1 1 4 1 4 3 3 3 2 4 1 4 1 3 3 3
## [1333] 1 4 3 1 4 1 4 4 1 1 4 4 4 4 3 1 4 3 1 4 3 3 3 2 3 3 3 4 3 3 3 4 4 2 3 4 3
## [1370] 4 4 3 3 3 3 3 4 4 3 3 2 3 1 3 3 1 3 3 3 1 3 3 2 3 1 3 3 1 3 3 3 3 3 3 3 3
## [1407] 1 3 3 1 3 3 3 1 3 3 3 3 4 3 3 3 3 4 1 1 1 3 3 3 3 3 3 3 3 1 1 3 3 3 3 3 1
## [1444] 3 3 3 1 4 3 4 3 3 3 3 3 3 3 3 3 3 4 4 4 1 1 1 4 2 4 4 4 3 1 3 3 1 1 1 4 4
## [1481] 3 4 3 3 4 3 3 3 3 3 3 1 1 3 2 1 1 3 3 1 1 1 3 1 1 1 1 3 3 4 1 3 3 3 3 3 3
## [1518] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 1 1 1 1 1 3 1 3 4 3 1 4 4 1 3 1 1 1 3 4
## [1555] 1 4 4 1 4 1 1 1 1 1 4 4 1 4 4 4 4 3 3 4 3 1 3 4 3 3 1 3 4 3 1 1 3 4 4 4 3
## [1592] 1 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 4 4 3 3 3 3 3 4 1 3 1 3 1
## [1629] 1 1 1 2 1 1 4 1 3 4 4 1 4 3 1 3 2 1 3 3 3 3 3 3 3 1 3 3 1 1 3 3 3 3 3 3 1
## [1666] 3 1 1 1 3 3 3 3 1 1 3 3 1 3 4 3 3 1 3 3 3 3 3 1 1 1 1 3 1 3 3 3 3 3 1 3 3
## [1703] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 4
## [1740] 1 3 1 3 3 3 3 3 3 1 1 3 3 1 3 1 3 1 1 1 2 3 1 1 3 4 1 1 1 4 3 3 4 3 3 3 3
## [1777] 1 1 1 1 1 2 1 3 3 1 3 1 1 4 1 1 1 1 1 1 4 3 3 3 3 3 4 3 2 3 3 4 1 1 1 1 1
## [1814] 4 2 1 1 4 4 4 2 4 4 3 1 4 1 4 4 4 4 4 4 1 4 2 2 1 3 3 3 1 3 3 3 3 1 3 3 3
## [1851] 3 3 1 2 4 4 4 1 3 3 4 3 3 3 1 3 3 1 1 1 1 1 3 3 1 3 3 3 1 3 1 1 3 3 3 3 1
## [1888] 1 3 1 1 3 1 3 3 1 3 3 3 3 3 3 1 3 3 4 4 4 3 1 3 1 3 3 3 4 3 3 1 4 1 1 3 1
## [1925] 1 4 1 4 3 3 1 3 3 3 4 3 1 3 1 4 4 3 1 4 1 3 1 3 1 1 1 1 4 3 3 1 1 1 1 1 1
## [1962] 3 1 4 4 4 1 3 3 1 1 3 3 3 3 3 3 3 3 3 1 1 1 3 3 1 3 4 3 3 1 1 3 3 1 3 1 3
## [1999] 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 3 1 3 1 3 1 3 1 3 3 3 3 3 3 3 3 1 3 1 1
## [2036] 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 1 1 3 1 1 1 3 1 1 3 3 3 3 3 3
## [2073] 1 1 1 3 3 1 1 3 3 1 1 1 3 1 1 1 1 1 3 1 3 3 1 3 1 1 3 3 3 1 1 1 1 3 1 3 1
## [2110] 1 1 1 1 3 3 1 1 1 3 1 3 3 1 3 3 1 1 1 1 1 3 1 3 1 1 3 3 3 3 1 3 3 3 1 1 3
## [2147] 3 3 3 3 1 3 1 3 1 3 3 3 3 1 3 2 1 1 3 3 1 1 3 3 3 3 1 3 3 1 1 1 1 3 1 1 1
## [2184] 1 1 1 1 1 1 1 3 3 1 1 1 1 1 1 1 1 4 3 1 3 1 3 3 3 3 3 3 3 3 1 3 3 1 3 3 3
## [2221] 1 3 1 3 3 3 1 3 3 3 3 3 3 3 1 3 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [2258] 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 3 1 3 1 1 1 1 3 1 1 1 1
## [2295] 1 3 1 1 1 3 1 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 3 3 1 3 1 1 3 3 3 3
## [2332] 3 3 3 3 1 3 1 3 3 3 3 3 3 3 3 3 1 3 3 3 1 3 3 4 3 3 3 3 3 3 1 1 3 1 3 3 3
## [2369] 3 3 1 3 3 1 4 3 2 1 3 3 1 1 1 4 1 3 1 1 4 1 3 1 1 3 4 1 1 2 2 1 1 1 4 1 1
## [2406] 3 3 1 4 1 1 2 2 3 4 4 3 3 1 1 4 1 4 1 3 1 4 1 1 3 1 1 1 1 1 4 4 1 4 1 2 1
## [2443] 1 3 1 1 1 1 1 1 1 3 3 3 1 1 3 3 3 4 4 4 1 4 1 1 1 1 1 1 3 1 1 2 2 1 1 1 1
## [2480] 3 4 1 4 2 1 4 2 4 4 4 1 3 3 3 3 3 4 1 3 3 3 3 3 1 1 3 3 3 3 3 1 1 3 1 3 1
## [2517] 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 4 3 3 3 3 1 3 3 3 3 3 3 1 3
## [2554] 3 1 3 3 3 3 3 1 3 3 3 3 3 1 3 3 3 3 3 3 3 3 2 4 3 4 1 4 1 1 1 3 3 3 3 3 3
## [2591] 3 3 3 3 3 3 2 1 1 3 1 1 3 1 1 4 3 1 1 1 3 3 3 3 1 1 3 1 3 1 1 3 1 3 1 3 1
## [2628] 3 3 3 1 1 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 2 1 3 1 2 2 2 1 2 2 1 1
## [2665] 2 1 1 4 1 4 1 1 4 1 1 1 3 2 4 3 4 1 1 3 3 2 2 1 1 4 1 2 2 1 4 1 2 4 4 1 1
## [2702] 1 3 2 1 1 3 1 4 1 1 1 3 1 1 1 2 2 1 1 1 2 1 1 1 1 1 2 1 4 4 1 4 2 3 1 4 2
## [2739] 2 3 4 2 2 2 4 2 2 2 3 3 3 3 2 3 2 1 1 3 3 3 1 1 3 1 1 3 1 1 3 1 1 1 3 4 3
## [2776] 1 1 1 1 1 3 3 1 1 3 3 3 3 1 1 3 4 3 3 3 1 1 3 3 3 1 3 3 3 3 3 3 3 1 1 1 3
## [2813] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 1 1 1 4 4 1 3 3 3 3 3 1 1 1 1 1
## [2850] 3 3 3 1 3 4 2 2 2 4 2 1 2 4 1 2 1 2 1 1 3 1 2 1 2 4 2 2 1 1 4 4 2 1 1 2 2
## [2887] 2 2 2 1 2 4 1 2 1 4 2 2 4 2 1 1 4 2 1 4 2 1 1 2 2 4 4 4 4 2 4 4 1 4 4 1 2
## [2924] 1 4 4 1 1 1 4 4 4 4 4 1 1 2 2 2 2 1 2 1 4 4 4 2 1 4 2 4 1 4 4 2 2 2 2 4 4
## [2961] 1 4 4 2 1 4 4 2 1 4 1 1 4 2 2 2 2 4 1 2 2 4 2 2 4 4 4 2 2 4 2 1 1 1 4 4 1
## [2998] 2 1 2 2 2 2 4 2 4 4 2 1 1 4 1 4 1 4 1 3 1 3 1 1 1 1 1 4 4 4 1 4 4 1 4 2 2
## [3035] 1 2 1 4 1 4 1 4 2 2 4 3 4 3 4 4 4 4 1 4 1 1 4 4 4 1 1 1 1 4 1 1 1 4 4 1 1
## [3072] 1 4 4 1 1 1 1 1 1 3 4 4 1 4 1 1 1 1 1 1 3 1 1 1 1 1 1 1 4 1 1 1 1 4 1 1 1
## [3109] 4 2 4 4 4 4 1 4 1 1 4 4 1 4 1 2 1 4 1 4 1 1 1 2 2 2 2 4 2 2 4 2 2 4 4 4 4
## [3146] 2 4 1 2 4 4 4 4 2 4 4 4 4 4 4 4 2 1 1 1 1 4 4 1 3 3 3 3 3 3 3 4 4 3 3 3 3
## [3183] 3 3 1 1 1 1 1 3 1 4 1 1 1 4 4 3 1 4 1 3 1 3 3 3 3 3 1 1 1 1 3 4 3 1 1 3 3
## [3220] 3 3 3 3 3 3 3 4 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3
## [3257] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 4 1 3 4 3 1 3 3 3 1 3 3 3 3 3 3 3 3 3 3
## [3294] 3 1 3 3 3 3 3 1 3 3 3 3 1 1 3 1 1 1 1 1 2 3 3 3 3 3 3 1 3 1 3 3 3 3 3 3 3
## [3331] 1 1 3 3 1 3 1 3 3 3 3 3 3 1 3 3 3 3 3 1 1 4 1 3 3 3 3 3 3 3 3 1 3 3 3 3 4
## [3368] 3 1 3 3 3 3 4 1 4 2 1 4 1 1 3 1 1 3 1 3 3 1 1 1 3 4 1 1 1 3 4 1 1 1 4 1 1
## [3405] 3 3 1 1 1 1 3 3 1 1 3 1 1 1 1 1 3 1 4 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3442] 1 1 1 3 2 3 3 1 1 3 1 1 1 1 4 1 4 3 1 3 3 4 4 4 2 3 3 3 3 3 3 3 3 3 3 3 1
## [3479] 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 1 3 1 1 1 3 1 3
## [3516] 3 1 3 1 3 3 3 1 3 3 3 3 3 1 1 4 1 1 3 4 1 1 3 1 1 3 1 1 1 3 1 1 4 1 3 1 1
## [3553] 1 3 1 3 1 1 3 1 4 1 4 4 4 1 3 1 4 1 1 1 2 4 4 4 4 4 4 4 1 1 4 4 4 4 4 3 1
## [3590] 2 4 3 1 4 1 4 1 1 2 1 3 4 1 3 4 3 4 4 1 4 1 4 4 1 4 4 1 1 4 1 1 4 1 4 1 3
## [3627] 3 4 1 4 1 2 2 4 1 4 4 2 2 4 1 1 1 1 1 2 1 2 1 1 1 3 2 3 1 4 2 2 2 2 4 2 1
## [3664] 1 1 2 4 2 2 2 4 2 1 1 2 3 3 4 2 4 2 1 4 4 2 4 2 4 4 4 4 4 1 1 2 1 1 1 2 2
## [3701] 1 4 4 1 2 2 1 1 1 4 4 4 1 2 1 4 2 2 1 4 4 4 4 4 1 3 2 1 1 1 1 1 4 4 1 4 1
## [3738] 3 1 1 1 4 3 1 1 2 1 4 4 1 1 1 1 4 4 1 4 2 1 1 2 3 4 1 1 1 1 2 2 1 2 4 1 4
## [3775] 1 4 4 4 1 1 4 4 2 2 2 1 4 2 4 2 3 2 2 2 2 4 2 1 4 2 2 2 4 2 4 2 2 4 2 2 2
## [3812] 1 2 4 4 1 2 2 2 1 2 2 1 4 1 2 4 1 2 4 4 4 2 2 2 1 3 3 1 2 3 3 1 1 1 3 3 3
## [3849] 3 1 1 1 3 3 3 3 3 1 1 3 3 3 3 3 3 4 3 4 2 2 3 4 4 4 4 4 4 3 3 1 3 4 4 1 4
## [3886] 3 4 1 1 1 4 3 1 4 1 1 3 1 3 3 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3
## [3923] 4 3 3 3 3 1 3 3 3 4 1 4 4 3 1 4 3 1 1 3 3 1 1 3 3 3 1 3 3 1 1 3 3 3 3 1 3
## [3960] 3 1 3 1 3 1 3 1 3 1 1 1 3 4 1 1 1 3 1 1 1 4 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [3997] 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3
## [4034] 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [4071] 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 1 3 1
## [4108] 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3
## [4145] 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 4 4 1 3 3 3 3 3 1 1 3 3 3 3 3 3 3 1 3
## [4182] 3 3 1 4 3 3 3 3 1 3 3 1 3 3 3 3 3 4 3 1 3 3 1 1 3 1 3 3 3 3 3 3 3 4 3 3 3
## [4219] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 1 3 3 4
## [4256] 3 3 3 3 3 3 3 1 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3
## [4293] 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 1 3 3 3 3 3 3 3 3 3
## [4330] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3
## [4367] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3
## [4404] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [4441] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [4478] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [4515] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [4552] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [4589] 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 3 3 3 1 1 3 3 1 3 3 3 3 3 3 4 2 4 4 3
## [4626] 1 1 4 2 3 3 1 3 3 3 3 3 3 3 3 3 3 3 1 1 3 1 1 3 3 3 3 1 1 3 3 3 1 3 3 3 3
## [4663] 3 4 1 3 4 3 3 3 1 4 3 3 3 3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3 3 3 1 3 1 3 1
## [4700] 1 1 1 1 1 1 1 3 1 1 3 1 4 4 4 3 3 3 1 1 3 3 3 3 3 3 1 3 1 3 3 3 1 3 3 1 1
## [4737] 3 3 3 1 4 3 1 1 3 4 1 4 3 3 3 3 3 1 3 3 1 3 4 4 1 3 3 2 4 3 3 3 3 4 1 1 4
## [4774] 1 1 4 4 1 1 3 3 3 1 1 1 3 3 3 3 3 1 2 3 3 1 3 3 3 3 3 3 1 3 3 3 3 3 3
## 
## Within cluster sum of squares by cluster:
## [1] 20807104 29741433 14273818 25487597
##  (between_SS / total_SS =  85.0 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

El método del codo indica que, probablemente, el número óptimo de clústeres sea 4. Esto se evidencia por la marcada transición en la pendiente de la curva del codo en el punto 4, según se observa en el gráfico.

Grafica con el Método 1 (Codo)

fviz_cluster(clustering_result1, data = vivienda_ac, stand = FALSE,
             ellipse.type = "convex", geom = "point", 
             palette = "jco", main = "Visualización Cluster con el método 1")

Método 2 (Silueta)

fviz_nbclust(vivienda_ac, kmeans, method = "silhouette")
## Warning: did not converge in 10 iterations

num_clusters <- 2
clustering_result2 <- kmeans(vivienda_ac, centers = num_clusters)
print(clustering_result2)
## K-means clustering with 2 clusters of sizes 809, 3999
## 
## Cluster means:
##    estrato   preciom areaconst habitaciones   banios
## 1 5.720643 1053.6551  367.8579     4.309023 4.929543
## 2 4.659415  336.5229  135.6975     3.413853 2.873218
## 
## Clustering vector:
##    [1] 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2 2 1 1 2 1 1 1 1 2 2
##   [38] 1 2 1 1 1 2 2 2 2 1 1 2 1 2 2 2 2 2 1 2 1 1 2 1 1 1 1 2 2 1 1 1 1 1 1 1 2
##   [75] 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2
##  [112] 1 2 2 2 2 1 2 2 2 2 2 2 2 1 2 2 2 1 1 1 1 2 2 1 1 2 2 2 1 2 2 2 2 2 2 2 2
##  [149] 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2
##  [186] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2
##  [223] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
##  [260] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2
##  [297] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
##  [334] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
##  [371] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
##  [408] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2
##  [445] 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
##  [482] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
##  [519] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2
##  [556] 1 2 2 1 2 1 2 2 2 2 2 1 2 2 2 2 2 2 1 2 1 2 2 2 1 1 1 1 2 2 1 2 1 2 1 1 2
##  [593] 1 2 1 1 1 2 1 1 1 2 2 1 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1
##  [630] 2 1 2 2 2 1 2 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 2 1 1 2 1 1 1 2 1 2 1 2 1 2 2
##  [667] 1 1 2 2 2 2 1 1 1 1 2 1 1 1 2 1 1 1 2 2 1 1 1 2 2 2 1 1 1 2 2 2 1 1 2 2 2
##  [704] 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1
##  [741] 2 1 1 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 2 2 2 1 1 1 2 2 2 2 2 1 2
##  [778] 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 1 2 2 2 1 1 2 1 1 2
##  [815] 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 1 2 1 2 1 2 1 1 2 2 2 2
##  [852] 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 1 2 1 2 2 2 2 2 1 2 2
##  [889] 2 1 1 2 2 1 1 1 2 2 1 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 1
##  [926] 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
##  [963] 2 2 1 1 2 1 1 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2
## [1000] 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 1 1 2 2 2 2 1 2 2 1 2 2 2 2 2 2 1 1 2
## [1037] 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 1 1 1 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1074] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1111] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2
## [1148] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1185] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2
## [1222] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1259] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2
## [1296] 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 2 1 2 2 2 2
## [1333] 2 1 2 2 1 2 1 1 2 2 1 1 1 1 2 2 1 2 2 2 2 2 2 1 2 2 2 1 2 2 2 1 1 1 2 2 2
## [1370] 2 2 2 2 2 2 2 1 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1407] 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1444] 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 1
## [1481] 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2
## [1518] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1
## [1555] 2 2 1 2 1 2 2 2 2 2 1 1 2 1 1 1 1 2 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 1 2 2
## [1592] 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 1 2 2 2 2 2
## [1629] 2 2 2 1 2 2 1 2 2 1 1 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1666] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1703] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1
## [1740] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 1 2 2 1 2 2 2 2
## [1777] 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2
## [1814] 1 1 2 2 1 1 2 1 1 1 2 2 1 2 1 1 1 1 1 1 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1851] 2 2 2 1 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [1888] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2
## [1925] 2 2 2 1 2 2 2 2 2 2 1 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2
## [1962] 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2
## [1999] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2036] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2073] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2110] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2147] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2184] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2221] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2258] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2295] 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2332] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2369] 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2
## [2406] 2 2 2 1 2 2 1 1 2 1 1 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2
## [2443] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2
## [2480] 2 1 2 1 1 2 2 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2517] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2554] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2
## [2591] 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2628] 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 1 2 1 1 2 2
## [2665] 1 2 2 1 2 1 2 2 1 2 2 2 2 1 1 2 1 2 2 2 2 1 1 2 2 1 2 1 1 2 1 2 1 1 1 2 2
## [2702] 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2 1 1 2 2 2 1 2 2 2 2 2 1 2 2 1 2 1 1 2 2 1 1
## [2739] 1 2 1 1 1 1 1 1 1 1 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2
## [2776] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2813] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [2850] 2 2 2 2 2 1 1 1 1 1 1 2 1 2 2 1 2 1 2 2 2 2 1 2 1 1 1 1 2 2 2 1 1 2 2 1 1
## [2887] 1 1 1 2 1 1 2 1 2 1 1 1 1 1 2 2 1 1 2 1 1 2 2 1 1 1 1 1 2 1 1 1 2 1 1 2 1
## [2924] 2 2 1 2 2 2 2 1 1 1 1 2 2 1 1 1 1 2 1 2 1 1 1 1 2 1 1 1 2 2 2 1 1 1 1 1 1
## [2961] 2 1 1 1 2 1 1 1 2 1 2 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 2
## [2998] 1 2 1 1 1 1 2 1 1 1 1 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 1 1 2 1 1 1
## [3035] 2 1 2 1 2 2 2 2 1 1 1 2 1 2 1 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2
## [3072] 2 2 1 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2
## [3109] 2 1 2 2 2 1 2 2 2 2 1 1 2 1 2 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1
## [3146] 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2
## [3183] 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2
## [3220] 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [3257] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [3294] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [3331] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [3368] 2 2 2 2 2 2 2 2 1 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 1 2 2
## [3405] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [3442] 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2
## [3479] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [3516] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2
## [3553] 2 2 2 2 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 2 1 1 2 2 1 1 1 1 2 2 1 1 2 1 1 2 2
## [3590] 1 1 2 2 1 2 1 2 2 1 2 2 1 2 2 2 2 2 1 2 1 2 2 1 2 1 1 2 2 1 2 2 1 2 1 2 2
## [3627] 2 1 2 2 2 1 1 2 2 1 1 1 1 1 2 2 2 2 2 1 2 1 2 2 2 2 1 2 2 1 1 1 1 1 1 1 2
## [3664] 2 2 1 1 1 1 1 1 1 2 2 1 2 2 1 1 1 1 2 2 1 1 1 1 2 1 1 1 1 2 2 1 2 2 2 1 1
## [3701] 2 1 1 2 1 1 2 2 2 1 1 1 2 1 2 1 1 1 2 1 1 1 1 1 2 2 1 2 2 2 2 2 1 1 2 1 2
## [3738] 2 2 2 2 1 2 2 2 1 2 1 2 2 2 2 2 1 1 2 2 1 2 2 1 2 2 2 2 2 2 1 1 2 1 1 2 1
## [3775] 2 1 2 1 2 2 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 2 1 2 1 1 2 1 1 1
## [3812] 2 1 2 1 2 1 1 1 2 1 1 2 1 2 1 1 2 1 1 1 1 1 1 1 2 2 2 2 1 2 2 2 2 2 2 2 2
## [3849] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2
## [3886] 2 1 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [3923] 1 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [3960] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [3997] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4034] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4071] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4108] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4145] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4182] 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4219] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 1
## [4256] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4293] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4330] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4367] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4404] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4441] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4478] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4515] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4552] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4589] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2
## [4626] 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4663] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4700] 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [4737] 2 2 2 2 1 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 1 1 2 2 2 2 1 2 2 1
## [4774] 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## 
## Within cluster sum of squares by cluster:
## [1] 106951678 112356844
##  (between_SS / total_SS =  63.5 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

El método de la silueta sugiere que el número óptimo de clústeres podría ser 2. Esto se deduce del hecho de que el propio método indica que el número óptimo de clústeres, representado por K, es 2, y en este clúster se observa un marcado cambio en la línea.

Grafica con el Método 2 (silueta)

fviz_cluster(clustering_result2, data = vivienda_ac, stand = FALSE,
             ellipse.type = "convex", geom = "point", 
             palette = "jco", main = "Visualización Cluster con el método 2")

Método 3

res.nbclust <- NbClust(vivienda_ac, distance = "euclidean", min.nc = 2, max.nc=10, method = "complete", index = "all")

## *** : The Hubert index is a graphical method of determining the number of clusters.
##                 In the plot of Hubert index, we seek a significant knee that corresponds to a 
##                 significant increase of the value of the measure i.e the significant peak in Hubert
##                 index second differences plot. 
## 

## *** : The D index is a graphical method of determining the number of clusters. 
##                 In the plot of D index, we seek a significant knee (the significant peak in Dindex
##                 second differences plot) that corresponds to a significant increase of the value of
##                 the measure. 
##  
## ******************************************************************* 
## * Among all indices:                                                
## * 8 proposed 2 as the best number of clusters 
## * 4 proposed 3 as the best number of clusters 
## * 1 proposed 4 as the best number of clusters 
## * 2 proposed 5 as the best number of clusters 
## * 8 proposed 6 as the best number of clusters 
## * 1 proposed 10 as the best number of clusters 
## 
##                    ***** Conclusion *****                            
##  
## * According to the majority rule, the best number of clusters is  2 
##  
##  
## *******************************************************************
print(res.nbclust)
## $All.index
##          KL       CH  Hartigan      CCC    Scott      Marriot       TrCovW
## 2    6.9969 6041.631  325.1480  40.6188 23989.82 1.326447e+27 8.765399e+15
## 3    0.8207 3387.057   41.5687 -24.6246 24772.63 2.536084e+27 7.524963e+15
## 4    1.3807 2290.952   90.5125 -45.1296 25046.20 4.259222e+27 7.485166e+15
## 5    0.1370 1772.846 5481.1078 -59.5572 25668.39 5.847212e+27 7.406189e+15
## 6  131.5441 4132.153  344.1648 -16.0434 30690.40 2.962688e+27 1.257206e+15
## 7    0.1612 3746.838   35.7271 -22.1337 32087.69 3.015549e+27 1.146836e+15
## 8    0.2470 3239.903 1351.1326 -31.1677 32323.26 3.750346e+27 1.136868e+15
## 9    6.8720 3801.004   49.5779 -21.6166 34138.02 3.254270e+27 6.520591e+14
## 10   1.7969 3418.371  100.9425 -28.3899 34239.80 3.933463e+27 6.382185e+14
##       TraceW Friedman   Rubin Cindex     DB Silhouette   Duda  Pseudot2  Beale
## 2  266547941 107.8593  6.5792 0.1749 0.5693     0.7010 0.5968  254.6942 2.1089
## 3  249657464 113.6977  7.0243 0.1787 0.9691     0.6353 0.9905   42.6018 0.0301
## 4  247516167 114.3036  7.0851 0.1958 0.8426     0.6348 0.5406  105.3659 2.6382
## 5  242938936 115.9326  7.2185 0.2472 0.7778     0.6339 0.4178 6167.0306 4.3610
## 6  113460082 130.8151 15.4562 0.1610 0.8334     0.4911 0.4954  255.6669 3.1754
## 7  105872108 138.4271 16.5640 0.1732 0.8221     0.4904 0.4844   19.1588 3.1560
## 8  105090070 139.4479 16.6873 0.2195 0.7977     0.4900 0.5886 1059.6933 2.1863
## 9   82006416 149.3484 21.3845 0.2097 0.8414     0.4650 0.6012   27.1972 2.0267
## 10  81167879 149.8031 21.6054 0.2124 0.8965     0.4629 0.5678   79.1522 2.3593
##    Ratkowsky      Ball Ptbiserial    Frey McClain   Dunn Hubert SDindex
## 2     0.3154 133273971     0.7775  9.7824  0.0432 0.0087      0  0.0066
## 3     0.2612  83219155     0.7754 -0.4079  0.0444 0.0090      0  0.0089
## 4     0.2289  61879042     0.7781  7.8481  0.0445 0.0098      0  0.0082
## 5     0.2096  48587787     0.7780  4.3465  0.0446 0.0124      0  0.0079
## 6     0.2597  18910014     0.5883  0.1221  0.3110 0.0053      0  0.0083
## 7     0.2453  15124587     0.5890 -0.0583  0.3108 0.0057      0  0.0083
## 8     0.2300  13136259     0.5890  0.6460  0.3108 0.0072      0  0.0083
## 9     0.2232   9111824     0.5933  0.6037  0.3211 0.0076      0  0.0096
## 10    0.2120   8116788     0.5933  1.0350  0.3212 0.0077      0  0.0100
##      Dindex   SDbw
## 2  194.6842 0.7005
## 3  189.0450 0.6761
## 4  188.6718 0.6180
## 5  187.2590 0.5254
## 6  125.8446 0.4624
## 7  123.1682 0.4240
## 8  122.9189 0.3413
## 9  110.3666 0.3155
## 10 109.9188 0.3041
## 
## $All.CriticalValues
##    CritValue_Duda CritValue_PseudoT2 Fvalue_Beale
## 2          0.7775           107.8772       0.0617
## 3          0.8448           813.0503       0.9996
## 4          0.7076            51.2311       0.0226
## 5          0.8448           812.7219       0.0006
## 6          0.7562            80.9199       0.0075
## 7          0.4584            21.2644       0.0114
## 8          0.8251           321.2917       0.0529
## 9          0.5902            28.4723       0.0763
## 10         0.6927            46.1286       0.0392
## 
## $Best.nc
##                       KL       CH Hartigan     CCC    Scott      Marriot
## Number_clusters   6.0000    2.000    5.000  2.0000    6.000 6.000000e+00
## Value_Index     131.5441 6041.631 5390.595 40.6188 5022.009 2.937385e+27
##                       TrCovW    TraceW Friedman   Rubin Cindex     DB
## Number_clusters 6.000000e+00         6   6.0000  6.0000  6.000 2.0000
## Value_Index     6.148983e+15 121890880  14.8826 -7.1299  0.161 0.5693
##                 Silhouette   Duda PseudoT2  Beale Ratkowsky     Ball PtBiserial
## Number_clusters      2.000 3.0000   3.0000 3.0000    2.0000        3     4.0000
## Value_Index          0.701 0.9905  42.6018 0.0301    0.3154 50054816     0.7781
##                   Frey McClain   Dunn Hubert SDindex Dindex    SDbw
## Number_clusters 2.0000  2.0000 5.0000      0  2.0000      0 10.0000
## Value_Index     9.7824  0.0432 0.0124      0  0.0066      0  0.3041
## 
## $Best.partition
##    [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 1 2 1 1 1
##   [38] 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 2 1 1 1 1 2 2 2 1 2 2 2 1
##   [75] 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1
##  [112] 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1
##  [149] 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1
##  [186] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [223] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [260] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [297] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [334] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [371] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [408] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [445] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [482] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [519] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [556] 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 2 1 1
##  [593] 1 1 2 2 1 1 2 1 1 1 1 1 2 1 2 2 1 1 2 1 1 1 1 1 2 2 2 1 1 1 1 1 2 1 1 1 1
##  [630] 1 1 1 1 1 1 1 1 2 1 1 2 1 1 2 2 1 2 1 1 1 2 1 1 2 1 1 1 1 1 2 1 1 1 2 1 1
##  [667] 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 2 1 1 2 1 2 1 1 1 2 1 1 1 1 1 2 1 1 1 1
##  [704] 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 2 1 1 2 2 1 1 2 1 1 1 2 2 2
##  [741] 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 1 1 1 2 2 2 1 1 1 1 1 2 1
##  [778] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 1 1 1 1 1 2 1 2 2 1
##  [815] 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1
##  [852] 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1
##  [889] 1 1 1 1 1 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [926] 1 1 1 1 1 1 2 2 2 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [963] 1 1 2 2 1 2 1 1 2 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1000] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1
## [1037] 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1074] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1111] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1
## [1148] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1185] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1222] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1259] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1296] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1
## [1333] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 2 1 1 1
## [1370] 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1407] 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1444] 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1
## [1481] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1518] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1555] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1592] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1629] 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1666] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1703] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1740] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1777] 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
## [1814] 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1851] 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1888] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1925] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1962] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1
## [1999] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2036] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2073] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2110] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2147] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2184] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2221] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2258] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2295] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2332] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2369] 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1
## [2406] 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1
## [2443] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1
## [2480] 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2517] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2554] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2591] 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2628] 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 2 1 2 2 1 1
## [2665] 2 1 1 2 1 2 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 2 2 1 1 2 1 2 2 1 1 1 2 2 1 1 1
## [2702] 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 2 2 1 1 1 2 1 1 1 1 1 2 1 1 1 1 2 2 1 1 1 2
## [2739] 2 1 1 2 2 2 2 2 2 2 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2776] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2813] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [2850] 1 1 1 1 1 1 2 2 2 1 2 1 2 1 1 2 1 2 1 1 1 1 2 1 2 1 2 2 1 1 1 1 2 1 1 2 2
## [2887] 2 2 2 1 2 1 1 2 1 1 2 2 1 2 1 1 1 2 1 1 2 1 1 2 2 1 2 1 1 2 1 1 1 2 1 1 2
## [2924] 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 2 1 1 1 2 2 1 1 2 1 1 1 1 2 2 2 2 1 1
## [2961] 1 2 1 2 1 1 1 2 1 1 1 1 1 2 2 2 2 1 1 2 2 1 2 2 2 1 1 2 2 1 2 1 1 1 1 2 1
## [2998] 2 1 2 2 2 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
## [3035] 1 2 1 1 1 1 1 1 2 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3072] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3109] 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 2 2 2 2 1 2 2 1 2 2 1 1 1 1
## [3146] 2 1 1 2 1 1 1 1 2 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3183] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3220] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3257] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3294] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3331] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3368] 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1
## [3405] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3442] 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1
## [3479] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3516] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3553] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 1
## [3590] 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3627] 1 2 1 1 1 2 2 1 1 1 2 2 2 1 1 1 1 1 1 2 1 2 1 1 1 1 2 1 1 1 2 2 2 2 2 2 1
## [3664] 1 1 2 1 2 2 2 1 2 1 1 2 1 1 1 2 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 2 2
## [3701] 1 1 1 1 2 2 1 1 1 1 1 1 1 2 1 1 2 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1
## [3738] 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 2 2 1 2 1 1 1
## [3775] 1 1 1 1 1 1 1 1 2 2 2 1 1 2 1 2 1 2 2 2 2 1 2 1 1 2 2 2 1 2 1 2 2 1 2 2 2
## [3812] 1 2 1 1 1 2 2 2 1 2 2 1 1 1 2 1 1 2 1 1 1 2 2 2 1 1 1 1 2 1 1 1 1 1 1 1 1
## [3849] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3886] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3923] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3960] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [3997] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4034] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4071] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4108] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4145] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4182] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4219] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4256] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4293] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4330] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4367] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4404] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4441] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4478] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4515] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4552] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4589] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1
## [4626] 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4663] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4700] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [4737] 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1
## [4774] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Entre todos los índices:
8 propuso 2 como el mejor número de conglomerados 4 propuso 3 como el mejor número de conglomerados 1 propuso 4 como el mejor número de grupos 2 propone 5 como mejor número de grupos 8 propone 6 como el mejor número de conglomerados 1 propuso 10 como mejor número de conglomerados

Conclusión Según la regla de la mayoría, el mejor número de conglomerados es 2.

Grafica con el Método 3

num_clusters_optimo <- res.nbclust$Best.nc[1]
resultado_3 <- kmeans(vivienda_ac, centers = num_clusters_optimo)
fviz_cluster(resultado_3, data = vivienda_ac, stand = FALSE,
             ellipse.type = "convex", geom = "point", 
             palette = "jco", main = "Visualización de Clústeres con el método 3")

Conclusión

Con base en el análisis de tres métodos diferentes para determinar el número óptimo de clústeres, se llega a conclusiones variadas. El método del codo, al mostrar una transición evidente en la pendiente de la curva en el punto 4, sugiere que el número óptimo de clústeres podría ser 4. Por otro lado, el método de la silueta indica que el número óptimo podría ser 2, al observarse un cambio marcado en la línea en este punto.

Adicionalmente, al considerar un tercer método que proporciona diferentes sugerencias para el número de conglomerados, se observa que la opción 2 es la más frecuentemente recomendada, apareciendo en 8 de las propuestas.

En consecuencia, al aplicar la regla de la mayoría entre los tres métodos, se concluye que el número óptimo de conglomerados es 2. A pesar de las diferencias entre los métodos individuales, la prevalencia de la opción 2 en las sugerencias respalda la elección de este número de clústeres como la decisión más robusta y respaldada por la mayoría de los enfoques utilizados.

Análisis de Correspondencia

head(vivienda1)
## # A tibble: 6 × 13
##      id zona    piso  estrato preciom areaconst parqueaderos banios habitaciones
##   <dbl> <chr>   <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
## 1  5992 Zona S… 02          4     400       280            3      5            3
## 2  1212 Zona N… 01          5     260        90            1      2            3
## 3  1724 Zona N… 01          5     240        87            1      3            3
## 4  2326 Zona N… 01          4     220        52            2      2            3
## 5  4386 Zona N… 01          5     310       137            2      3            4
## 6  1209 Zona N… 02          5     320       150            2      4            6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
vivienda_co <- subset(vivienda1, select = c ("tipo", "zona", "barrio"))
str(vivienda_co)
## spc_tbl_ [4,808 × 3] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ tipo  : chr [1:4808] "Casa" "Apartamento" "Apartamento" "Apartamento" ...
##  $ zona  : chr [1:4808] "Zona Sur" "Zona Norte" "Zona Norte" "Zona Norte" ...
##  $ barrio: chr [1:4808] "3 de julio" "acopi" "acopi" "acopi" ...
##  - attr(*, "spec")=List of 3
##   ..$ cols   :List of 13
##   .. ..$ id          : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ zona        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ piso        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ estrato     : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ preciom     : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ areaconst   : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ parqueaderos: list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ banios      : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ habitaciones: list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ tipo        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ barrio      : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ longitud    : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ latitud     : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   ..$ default: list()
##   .. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
##   ..$ delim  : chr ";"
##   ..- attr(*, "class")= chr "col_spec"
##  - attr(*, "problems")=<externalptr> 
##  - attr(*, "na.action")= 'omit' Named int [1:3514] 1 2 3 11 20 28 29 30 31 32 ...
##   ..- attr(*, "names")= chr [1:3514] "1" "2" "3" "11" ...
class(vivienda_co)
## [1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame"
head(vivienda_co)
## # A tibble: 6 × 3
##   tipo        zona       barrio    
##   <chr>       <chr>      <chr>     
## 1 Casa        Zona Sur   3 de julio
## 2 Apartamento Zona Norte acopi     
## 3 Apartamento Zona Norte acopi     
## 4 Apartamento Zona Norte acopi     
## 5 Apartamento Zona Norte acopi     
## 6 Casa        Zona Norte acopi
vivienda_co <- as.data.frame(vivienda_co)
print(colSums(is.na(vivienda_co)))
##   tipo   zona barrio 
##      0      0      0
dim(vivienda_co)
## [1] 4808    3
resultado_co <- MCA(vivienda_co)

print(resultado_co)
## **Results of the Multiple Correspondence Analysis (MCA)**
## The analysis was performed on 4808 individuals, described by 3 variables
## *The results are available in the following objects:
## 
##    name              description                       
## 1  "$eig"            "eigenvalues"                     
## 2  "$var"            "results for the variables"       
## 3  "$var$coord"      "coord. of the categories"        
## 4  "$var$cos2"       "cos2 for the categories"         
## 5  "$var$contrib"    "contributions of the categories" 
## 6  "$var$v.test"     "v-test for the categories"       
## 7  "$var$eta2"       "coord. of variables"             
## 8  "$ind"            "results for the individuals"     
## 9  "$ind$coord"      "coord. for the individuals"      
## 10 "$ind$cos2"       "cos2 for the individuals"        
## 11 "$ind$contrib"    "contributions of the individuals"
## 12 "$call"           "intermediate results"            
## 13 "$call$marge.col" "weights of columns"              
## 14 "$call$marge.li"  "weights of rows"

En la representación gráfica, se evidencia la cercanía entre las variables “zona” y “barrio”, lo que insinúa una similitud en sus perfiles de categorías. En contraste, la variable “tipo” aparece más distante, señalando diferencias significativas en sus perfiles de categorías.

Eigenvalues

eig_val <- factoextra::get_eigenvalue(resultado_co)
head(eig_val)
##       eigenvalue variance.percent cumulative.variance.percent
## Dim.1  0.7110682        0.7701100                    0.770110
## Dim.2  0.6632573        0.7183292                    1.488439
## Dim.3  0.6582971        0.7129571                    2.201396
## Dim.4  0.6451501        0.6987186                    2.900115
## Dim.5  0.4462435        0.4832962                    3.383411
## Dim.6  0.3333333        0.3610108                    3.744422
fviz_screeplot(resultado_co, addlabels = TRUE)

fviz_contrib(resultado_co, choice = "var", axes = 1, top = 15)

fviz_contrib(resultado_co, choice = "var", axes = 2, top = 15)

head(vivienda1)
## # A tibble: 6 × 13
##      id zona    piso  estrato preciom areaconst parqueaderos banios habitaciones
##   <dbl> <chr>   <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
## 1  5992 Zona S… 02          4     400       280            3      5            3
## 2  1212 Zona N… 01          5     260        90            1      2            3
## 3  1724 Zona N… 01          5     240        87            1      3            3
## 4  2326 Zona N… 01          4     220        52            2      2            3
## 5  4386 Zona N… 01          5     310       137            2      3            4
## 6  1209 Zona N… 02          5     320       150            2      4            6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

PCA

fviz_mca_ind(resultado_co,
             label = "none",
             habillage = "tipo",
             pallette = c("pink", "purple"),
             addEllipses = TRUE,
             ggtheme = theme_grey())

Se puede observar que las dos concentraciones se reflejan que diferentes horizontes.

Conclusión

En la conclusión del análisis de correspondencia en RStudio con los datos proporcionados, se pueden destacar los siguientes puntos:

Cercanía entre “zona” y “barrio” en la representación gráfica, se observa una proximidad entre las variables “zona” y “barrio”, sugiriendo similitudes en sus perfiles de categorías. Esto implica que las categorías dentro de estas dos variables tienden a estar asociadas o presentar patrones similares.

Distancia de la variable categorica, en contraste, la variable “tipo” muestra una mayor distancia en la representación gráfica, indicando diferencias significativas en sus perfiles de categorías. Esto sugiere que las categorías de la variable “tipo” son distintas y poseen características únicas en comparación con las variables “zona” y “barrio”.

Resultados del scree plot revela que el valor más alto es del 0.8%, lo que indica la proporción de varianza explicada por las dimensiones. Este valor puede ser útil para evaluar la contribución general del análisis.

La contribución de la variable “zona Oeste” a la Dimensión 1 y la contribución de la variable “zona Norte” a la Dimensión 2 resaltan la importancia de estas variables en la estructura del análisis de correspondencia.

La observación de que las elipses de concentración de los puntos asociados a las categorías de la variable “tipo” están diferenciadas horizontalmente sugiere que ambas dimensiones (Dimensión 1 y Dimensión 2) juegan un papel en la discriminación entre estas categorías. Esto proporciona información valiosa sobre cómo las categorías de “tipo” se distribuyen en el espacio de las dimensiones.