1. INTRODUCCIÓN

En el ámbito del sector inmobiliario, la capacidad para entender y adaptarse a las complejas dinámicas del mercado, ya que este se ha destacado por ser un mercado complejo y bastante cambiante, donde numerosos factores influyen en la compra, venta y valoración de las propiedades. En este contexto, la empresa inmobiliaria de la ciudad de Cali se enfrenta al desafío de comprender a profundidad el mercado de viviendas urbanas, con el fin de tomar decisiones estratégicas más informadas y mantener su posición competitiva.

Este proyecto se propone abordar este desafío mediante un enfoque integral y multidimensional. El objetivo principal radica en extraer conocimientos significativos de una base de datos que contiene información detallada sobre diversas propiedades residenciales disponibles en el mercado. Para lograr este objetivo, se emplearán diversas técnicas de análisis de datos, entre las cuales se destacan:

  1. Análisis de Componentes Principales (ACP)
  2. Análisis de Conglomerados (Clustering)
  3. Análisis de Correspondencia

El resultado final de este proyecto es un informe que incluirá análisis detallados de los resultados obtenidos, conclusiones clave y recomendaciones específicas para guiar las decisiones estratégicas de la empresa inmobiliaria. Se espera que este análisis de datos proporcione ventajas competitivas en el mercado, optimizando la inversión y maximizando los beneficios en un entorno altamente competitivo y en constante cambio.

2. OBJETIVOS

El objetivo principal de este proyecto es realizar un análisis exhaustivo que permita identificar patrones, relaciones y segmentaciones relevantes dentro de la base de datos de la empresa inmobiliaria, con el fin de obtener una comprensión profunda del mercado de viviendas urbanas en la ciudad de Cali.

3. ENTENDIMIENTO DE LOS DATOS

Se trabajará con la base de datos proporcionada por la Inmobiliaria, tenemos un total de 8.322 viviendas y 13 variables asociadas, las cuales veremos detalladamente en el desarrollo del proyecto.

3.1 Base de datos

Lo primero que se debe hacer para comenzar a trabajar con la base de datos es instalar las librerías que vamos a utilizar en el modelo:

Librerías

  • Librerías necesarias para cargar la base de datos
# devtools::install_github("dgonxalex80/paqueteMODELOS", force = TRUE)
# install.packages("devtools")
library(devtools)
library(paqueteMODELOS)
  • Librerías necesarias para trabajar con el RMarkdown
library(knitr)
library(rmarkdown)
library(kableExtra)
  • Librerías para hacer el análisis descriptivo
library(psych)
library(dplyr)
library(ggplot2)
library(table1)
require(table1)
library(tidyverse)
library(DescTools)
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.3.2
  • Librerías para la imputacion de NAs
library(mice)
library(naniar)
library(DescTools)
library(VIM)
  • Librerías para los análisis
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.2
library(cluster)
library(ca)
## Warning: package 'ca' was built under R version 4.3.2
library(fpc)
## Warning: package 'fpc' was built under R version 4.3.2
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.3.2
library(gridExtra)
library(pander)
library(ggdendro)
## Warning: package 'ggdendro' was built under R version 4.3.2
require(raster)
## Warning: package 'raster' was built under R version 4.3.2
require(sf)
## Warning: package 'sf' was built under R version 4.3.2

Datos

Ahora procederemos a importar los datos para el modelo, los cuales se encuentran en un repositorio de GitHub. Adicionalmente, veremos una descripción estructurada de la base de datos la cual contiene información sobre las clases de cada variable, así como las primeras observaciones de cada una. Esto nos proporciona una visión general del conjunto de datos.

# devtools::install_github("dgonxalex80/paqueteMODELOS", force = TRUE)
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")=
##   .. cols(
##   ..   id = col_double(),
##   ..   zona = col_character(),
##   ..   piso = col_character(),
##   ..   estrato = col_double(),
##   ..   preciom = col_double(),
##   ..   areaconst = col_double(),
##   ..   parqueaderos = col_double(),
##   ..   banios = col_double(),
##   ..   habitaciones = col_double(),
##   ..   tipo = col_character(),
##   ..   barrio = col_character(),
##   ..   longitud = col_double(),
##   ..   latitud = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>

Resumen estadístico

Con el fin de obtener una visión más precisa de la base de datos, procederemos a elaborar un resumen que abarque las 13 variables junto con estadísticas fundamentales, tales como la media, la mediana, los valores mínimos y máximos, los cuartiles, y la cantidad de valores faltantes (NA). Este resumen resulta de gran utilidad para adquirir una comprensión rápida de los datos. Además, exhibiremos las seis primeras observaciones de la base de datos para verificar la correcta carga de la misma.

resumen_BD <- summary(vivienda)
kable(resumen_BD, format = "html", table.attr = 'class = "table table-striped table-bordered"') %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
Min. : 1 Length:8322 Length:8322 Min. :3.000 Min. : 58.0 Min. : 30.0 Min. : 1.000 Min. : 0.000 Min. : 0.000 Length:8322 Length:8322 Min. :-76.59 Min. :3.333
1st Qu.:2080 Class :character Class :character 1st Qu.:4.000 1st Qu.: 220.0 1st Qu.: 80.0 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 3.000 Class :character Class :character 1st Qu.:-76.54 1st Qu.:3.381
Median :4160 Mode :character Mode :character Median :5.000 Median : 330.0 Median : 123.0 Median : 2.000 Median : 3.000 Median : 3.000 Mode :character Mode :character Median :-76.53 Median :3.416
Mean :4160 NA NA Mean :4.634 Mean : 433.9 Mean : 174.9 Mean : 1.835 Mean : 3.111 Mean : 3.605 NA NA Mean :-76.53 Mean :3.418
3rd Qu.:6240 NA NA 3rd Qu.:5.000 3rd Qu.: 540.0 3rd Qu.: 229.0 3rd Qu.: 2.000 3rd Qu.: 4.000 3rd Qu.: 4.000 NA NA 3rd Qu.:-76.52 3rd Qu.:3.452
Max. :8319 NA NA Max. :6.000 Max. :1999.0 Max. :1745.0 Max. :10.000 Max. :10.000 Max. :10.000 NA NA Max. :-76.46 Max. :3.498
NA’s :3 NA NA NA’s :3 NA’s :2 NA’s :3 NA’s :1605 NA’s :3 NA’s :3 NA NA NA’s :3 NA’s :3
head_BD <- head(vivienda)
kable(head_BD, format = "html", table.attr = 'class = "table table-striped table-bordered"') %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
1147 Zona Oriente NA 3 250 70 1 3 6 Casa 20 de julio -76.51168 3.43382
1169 Zona Oriente NA 3 320 120 1 2 3 Casa 20 de julio -76.51237 3.43369
1350 Zona Oriente NA 3 350 220 2 2 4 Casa 20 de julio -76.51537 3.43566
5992 Zona Sur 02 4 400 280 3 5 3 Casa 3 de julio -76.54000 3.43500
1212 Zona Norte 01 5 260 90 1 2 3 Apartamento acopi -76.51350 3.45891
1724 Zona Norte 01 5 240 87 1 3 3 Apartamento acopi -76.51700 3.36971

3.2. Limpieza de datos

Como se expuso anteriormente, la base de datos cuenta con 8,322 registros, para validar estos datos se deben seguir ciertos pasos.

1. Llevar la base de datos a un data frame para poder analizar y graficar los datos faltantes, tomando como tamaño de la muestra, las 8,322 observaciones, para así analizar todo el conjunto.

vivienda_df <- sample_n(vivienda, 8322)
nrow(vivienda_df)
## [1] 8322

2. Es importante visualizar los datos faltantes para observar su comportamiento

datosNA <- colSums(is.na(vivienda_df))
datosNA <- t(datosNA)
kable(datosNA, format = "html", table.attr = 'class = "table table-striped table-bordered"') %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
3 3 2638 3 2 3 1605 3 3 3 3 3 3

Con estos dos pasos y de acuerdo con esta última tabla comprobamos que hay varios datos faltantes, especialmente en las variables “piso” y “parqueadero”, con 2,638 y 1,605 datos faltantes respectivamente.

Gráfico de patrón de datos faltantes

md.pattern(vivienda_df, rotate.names = TRUE)

##      preciom id zona estrato areaconst banios habitaciones tipo barrio longitud
## 4808       1  1    1       1         1      1            1    1      1        1
## 1909       1  1    1       1         1      1            1    1      1        1
## 876        1  1    1       1         1      1            1    1      1        1
## 726        1  1    1       1         1      1            1    1      1        1
## 1          1  0    0       0         0      0            0    0      0        0
## 2          0  0    0       0         0      0            0    0      0        0
##            2  3    3       3         3      3            3    3      3        3
##      latitud parqueaderos piso     
## 4808       1            1    1    0
## 1909       1            1    0    1
## 876        1            0    1    1
## 726        1            0    0    2
## 1          0            0    0   12
## 2          0            0    0   13
##            3         1605 2638 4275

De este gráfico podemos concluir y constatar varias cosas: 1. Se comprueban que las variables piso y parqueadero tienen un total de faltantes de 4,275 faltantes entre las dos. 2. Dos apartamentos no cuentan con ningún dato diligenciado, por lo que procederemos a eliminarlos al ser pocos registros. 3. Un apartamento solo cuenta con la variable precio diligenciada, las demás están en blanco. Este registro también se eliminará. 4. Solo 4,808 apartamentos tienen la información completa, es decir, apenas un poco más de la mitad.

viv_sinNA <- vivienda_df %>%
  filter(!is.na(vivienda_df$id))
nrow(viv_sinNA)
## [1] 8319
md.pattern(viv_sinNA, rotate.names = TRUE)

##      id zona estrato preciom areaconst banios habitaciones tipo barrio longitud
## 4808  1    1       1       1         1      1            1    1      1        1
## 1909  1    1       1       1         1      1            1    1      1        1
## 876   1    1       1       1         1      1            1    1      1        1
## 726   1    1       1       1         1      1            1    1      1        1
##       0    0       0       0         0      0            0    0      0        0
##      latitud parqueaderos piso     
## 4808       1            1    1    0
## 1909       1            1    0    1
## 876        1            0    1    1
## 726        1            0    0    2
##            0         1602 2635 4237

3. Imputación de los datos faltantes

Vamos a generar un indicador para cada variable que tenga datos faltantes, con el fin de comparar el promedio de los pisos en las viviendas donde no hay información sobre los parqueaderos, y el promedio de los parqueaderos en las viviendas donde no hay información sobre los pisos.

Para hacer esto, primero debemos convertir la variable “piso” en una variable numérica, ya que el dataframe la está tomando como un caracter.

viv_sinNA$piso <- as.numeric(viv_sinNA$piso)

piso_NA <- is.na(viv_sinNA$piso)
parq_NA <- is.na(viv_sinNA$parqueaderos)

#Para los pisos
tapply(X=viv_sinNA$piso, INDEX=parq_NA, FUN = mean, na.rm = T)
##    FALSE     TRUE 
## 3.885607 3.141553
#Para los parqueaderos
tapply(X=viv_sinNA$parqueaderos, INDEX=piso_NA, FUN = mean, na.rm = T)
##    FALSE     TRUE 
## 1.815100 1.885804

De acuerdo con esto, se puede inferir que los resultados entre los datos faltantes y los completos son prácticamente idénticos en ambos casos, con una diferencia mínima: 0.7 en el caso de los pisos y 0.07 en los parqueaderos. Por lo tanto, podemos avanzar con la imputación de datos.

4. Reemplazo de los valores faltantes

Se tomó la decisión de reemplazar los valores vacíos de los pisos por la mediana y de los parqueaderos por la moda por las siguientes razones:

  1. Las variables piso y parqueadero tienen una gran cantidad de valores NA, 2.638 y 1.605 respectivamente y ambas son variables cuantitativas discretas que toman valores enteros.
  2. Para los parqueaderos se mantendría la distribución inicial de los datos, ya que tienden a tener un valor que es predominante en el conjunto de datos y se muestra en el siguiente diagrama.
barplot(table(viv_sinNA$parqueaderos), main = "Histograma de parqueaderos")

moda_parq <- Mode(viv_sinNA$parqueaderos, na.rm = TRUE)
viv_sinNA$parqueaderos[is.na(viv_sinNA$parqueaderos)] <- moda_parq
summary(viv_sinNA$parqueaderos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.000   1.000   1.674   2.000  10.000
  1. Para los pisos no hay una tendencia tan marcada a un solo dato predominante, sino que la distribución se enfoca particularmente en los primeros 5 pisos, lo que nos muestra una distribución asimétrica con sesgo a la derecha, por esto se hará imputación con la mediana.
barplot(table(viv_sinNA$piso), main = "Histograma de pisos", col = "cyan3")

mediana_piso <- median(viv_sinNA$piso, na.rm = TRUE)
viv_sinNA$piso[is.na(viv_sinNA$piso)] <- mediana_piso
str(viv_sinNA$piso)
##  num [1:8319] 1 3 3 7 3 3 3 6 2 3 ...

Con la imputación de estas dos variables, el mapa de valores faltantes queda sin ningún valor, como se puede ver en la siguiente gráfica

gg_miss_var(viv_sinNA)

El conjunto de datos está ahora preparado para su análisis, tras haberse eliminado y corregido información que podría distorsionar el objetivo del proyecto. Para futuros análisis, es importante considerar las razones detrás de estos datos faltantes. Puede interpretarse que la casilla no se completó o que el valor es cero, indicando una vivienda sin parqueaderos o de un solo piso.

5. Ahora, se procederá con la eliminación de la variable “ID”, por las siguientes razones:

  1. Representa un identificador único para cada observación.
  2. No aporta información relevante para el análisis estadístico debido a su naturaleza de mera enumeración secuencial.
  3. Podría alterar los resultados debido a que es un valor que va sumando de uno en uno y puede llegar a proporcionar sesgos no deseados.
  4. Eliminar la variable contribuye a reducir la dimensionalidad del conjunto de datos, lo que facilita la interpretación y el análisis de los resultados.
viv_sinNA <- viv_sinNA[, !names(viv_sinNA) %in% "id"]

6. Finalmente para la limpieza de los datos, identificaremos si hay alguna redundancia en nuestro conjunto de datos. Esto lo haremos a través de una matriz de correlación de los atributos numéricos.Por esto, lo primero que se debe hacer antes de graficar la matriz, es llevar los atributos numéricos a un data frame a parte.

num_cols <- viv_sinNA[sapply(viv_sinNA, is.numeric)]
matriz_cor <- cor(num_cols, use = "complete.obs")
corrplot(matriz_cor, method = "circle", type = "lower", title = "Matriz de correlación", diag = FALSE, number.cex = 0.5, number.digits = 2, addCoef.col = "gray4", mar = c(0, 0, 2, 0))

De la matriz de correlaciones se puede concluir que no hay atributos con correlaciones demasiado altas, esto debido a que ninguna correlación sobre pasa el 0.7; por lo tanto, parece no haber redundancia en los datos.

5. ANÁLISIS DE LOS DATOS

5.1. Análisis de Componentes Principales (ACP)

El objetivo principal del PCA es transformar un conjunto de variables correlacionadas en un conjunto de variables no correlacionadas llamadas componentes principales. Estas componentes principales son combinaciones lineales de las variables originales y están ordenadas de acuerdo a la cantidad de varianza que explican. Al visualizar la estructura de los datos en términos de estos componentes principales, podemos identificar las características clave que explican la mayor parte de la variación en los datos, lo que puede ser crucial para comprender el mercado inmobiliario y tomar decisiones estratégicas informadas.

1. Estandarizar variables numéricas evita que aquellos atributos con escalas altas afecten las estimaciones

znumvivienda = scale(num_cols)
head(znumvivienda)
##            piso    estrato    preciom  areaconst parqueaderos      banios
## [1,] -1.1533052 -0.6156201 -0.3617800  0.3711775   -0.6343338 -0.07793773
## [2,] -0.2404274 -1.5872276 -0.9550893 -0.7339949   -0.6343338 -0.77811479
## [3,] -0.2404274  0.3559875 -0.5595498 -0.6640473   -0.6343338 -0.77811479
## [4,]  1.5853282 -0.6156201 -0.8333848 -0.8039425   -0.6343338 -0.77811479
## [5,] -0.2404274 -1.5872276 -0.9246631 -0.8459111   -0.6343338 -0.77811479
## [6,] -0.2404274 -0.6156201 -0.8577257 -0.7899530   -0.6343338 -0.77811479
##      habitaciones    longitud      latitud
## [1,]   -0.4147626 -0.36809141  0.005530019
## [2,]   -0.4147626 -0.02265473 -0.108920613
## [3,]   -0.4147626  0.40784788 -1.248736332
## [4,]   -0.4147626  0.69580757  0.794957943
## [5,]   -0.4147626  1.75165976  1.385504441
## [6,]   -0.4147626  0.55211511 -0.929775554

2. Elección del número de componentes principales

acp_res <- prcomp(znumvivienda)
fviz_eig(acp_res, addlabels = TRUE, barfill = "lightblue1",barcolor = "lightblue2",linecolor = "lightblue4", main = "Gráfico de sedimentación")

En este caso el primer componente principal explica el 40.3% de la variabilidad contenida en la base de datos y entre los dos primeros está el 57.7% de los datos, lo cual indicaría que con solo una variable (CP1) que se obtiene mediante una combinación lineal de las variables se puede resumir un poco más de la variabilidad que contiene la base de datos.

fviz_pca_var(acp_res,
             col.var = "contrib",
             gradient.cols = c("red1", "yellow3", "green3"),
             repel = TRUE)

fviz_contrib(acp_res, choice = "var", axes = 1, top = 10, fill = "lightblue1")

fviz_contrib(acp_res, choice = "var", axes = 2, top = 10, fill = "lightblue1")

De estos gráficos podemos concluir lo siguiente: 1. Las variables relacionadas con características físicas y de valoración de las propiedades (precio, baños, área, parqueaderos, estrato) están fuertemente asociadas entre sí y contribuyen significativamente a la variabilidad a lo largo de la dimensión 1. Es decir, las propiedades con precios más altos tienden a tener más baños, mayor área, más parqueaderos y están ubicadas en estratos más altos, lo que tiene sentido. 2. Las variables relacionadas con la ubicación geográfica de las propiedades (latitud y longitud) y el piso en el que está ubicada la propiedad tienen una asociación diferente y moderada con la dimensión 2. Esto puede indicar que la ubicación geográfica puede ser un factor importante que influye en la variabilidad del mercado inmobiliario urbano. Por ejemplo, propiedades ubicadas en ciertas áreas geográficas pueden tener características particulares o estar sujetas a ciertas dinámicas del mercado. 3. El área del inmueble y el número de los baños están altamente correlacionados, lo que nos lleva a la conclusión de que entre más metros cuadrados más baños tiene el inmueble

5.2. Análisis de Conglomerados (Clustering)

Un análisis de conglomerados, también conocido como análisis de clusters, tiene como objetivo identificar grupos homogéneos de observaciones dentro de un conjunto de datos, donde las observaciones dentro de cada grupo son más similares entre sí que con aquellas en otros grupos. Un análisis de conglomerados puede ser una herramienta valiosa para explorar la estructura del mercado inmobiliario urbano, identificar segmentos de mercado, comprender patrones y tendencias, personalizar estrategias de marketing y ventas, y mejorar la precisión en la valoración de propiedades. Esto puede ayudar a la empresa inmobiliaria a tomar decisiones más informadas y estratégicas para optimizar su desempeño en el mercado.

1. Elección del método de agrupamiento y número de clusters Debido a que en el gráfico Biplot no queda tan claro el número de clusters, se utilizará el método de agrupamiento K-Means usando el método del codo, un algoritmo que se usa para dividir un conjunto de datos en k grupos diferentes, donde cada observación pertenece al grupo con la media más cercana. Este algoritmo busca iterativamente minimizar la suma de las distancias al cuadrado de cada punto al centroide de su grupo asignado.

set.seed(123)
wcss <- sapply(1:10, function(k) kmeans(znumvivienda, centers = k)$tot.withinss)
## Warning: did not converge in 10 iterations
plot(1:10, wcss, type = "b", main = "Método del Codo", xlab = "K clusters", ylab = "Suma total de cuadrados")

sil_width <- function(k){
  km.res <- kmeans(znumvivienda, k, nstart = 10)
  ss <- silhouette(km.res$cluster, dist(znumvivienda))
  mean(ss[, 3])
}

k.values <- 2:10
sil_values <- sapply(k.values, sil_width)

plot(k.values, sil_values, type = "b")

fviz_nbclust(znumvivienda, kmeans, method = "silhouette")

De acuerdo con el método del codo y el método de la silueta, el número óptimo de clusters es igual a 2, esta conclusión se basa en la observación de un cambio significativo en la variación intra-cluster y una alta cohesión entre los clusters cercanos, lo que indica una clara división del conjunto de datos en dos grupos distintos.

2. Ejecución del análisis de conglomerados

cluster_kmeans <- kmeans(znumvivienda, centers = 2)
cluster_kmeans
## K-means clustering with 2 clusters of sizes 5614, 2705
## 
## Cluster means:
##          piso    estrato    preciom  areaconst parqueaderos     banios
## 1  0.06730709 -0.3572285 -0.5057122 -0.4416209   -0.4081365 -0.5039806
## 2 -0.13969020  0.7413978  1.0495632  0.9165470    0.8470529  1.0459694
##   habitaciones   longitud     latitud
## 1   -0.2982116  0.2430411  0.07905036
## 2    0.6189131 -0.5044113 -0.16406238
## 
## Clustering vector:
##    [1] 1 1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 1 2 2 1 2 1 1 1 1 2 1 1 1 1 1 1 2 1 1
##   [38] 1 1 2 1 2 1 1 1 1 2 1 2 1 1 2 1 2 2 2 2 1 1 1 2 2 1 2 2 1 1 1 1 2 1 1 1 1
##   [75] 1 1 2 1 1 1 2 2 1 2 1 1 1 1 1 2 1 1 2 2 1 2 2 1 1 2 2 1 1 2 1 1 2 2 1 1 1
##  [112] 2 1 1 2 2 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 2 1 1 2 2
##  [149] 1 1 1 2 1 1 1 2 1 1 1 2 1 1 2 1 1 1 1 1 1 1 2 2 1 1 2 2 1 2 1 1 1 2 1 2 2
##  [186] 1 1 1 1 2 1 2 2 2 1 1 1 2 1 1 2 1 2 1 2 1 2 1 1 1 2 1 2 2 2 1 2 1 1 2 1 1
##  [223] 1 1 1 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 2 1 1 2 2 1 1
##  [260] 1 1 2 1 1 1 1 1 2 2 1 1 2 1 1 1 2 2 2 1 1 1 2 1 1 1 1 1 1 2 1 2 1 2 2 1 1
##  [297] 2 1 1 2 2 2 1 1 2 2 1 2 1 1 1 2 1 1 2 2 1 2 1 1 2 2 2 2 1 1 2 1 1 2 2 1 1
##  [334] 1 2 2 1 2 1 1 1 1 1 2 2 1 1 1 2 2 1 1 2 1 2 1 1 1 2 1 2 1 2 1 2 1 2 1 1 1
##  [371] 2 1 1 1 1 1 1 2 2 2 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 2 2 1 1 1 1 1 2 1 1 2 2
##  [408] 2 2 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 2 2 1 1 1 2 1 1 1 1
##  [445] 1 1 1 1 1 1 2 1 1 1 2 1 1 1 2 1 1 2 2 2 2 2 1 2 1 1 2 2 2 1 2 2 2 1 1 1 1
##  [482] 1 1 1 2 2 2 2 2 1 1 2 2 1 1 1 1 1 2 1 1 1 2 2 1 1 1 1 1 1 2 1 1 1 2 1 1 2
##  [519] 1 1 2 1 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 2 2 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 2
##  [556] 1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 1 1 2 1 2 1 2 2 1 1 2 2 2 1 1 2 1 2 2 1
##  [593] 1 2 2 1 1 2 1 1 1 1 1 2 2 1 1 2 1 2 1 1 1 1 2 2 1 1 2 2 2 2 1 1 1 1 2 2 1
##  [630] 2 2 1 1 1 1 2 1 1 1 2 2 1 1 1 1 2 2 1 1 2 1 1 2 1 1 2 1 1 2 2 1 1 2 1 1 2
##  [667] 2 2 2 2 2 1 2 2 1 1 1 2 1 1 1 1 1 1 2 1 2 1 2 1 1 2 1 1 2 2 1 1 1 1 1 2 1
##  [704] 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 2 1 2 1 1 1 2 2 2 1 2 2 2 1 2
##  [741] 2 1 2 2 2 1 2 2 1 1 2 1 1 2 1 1 2 1 1 2 1 2 1 1 1 1 1 2 2 2 1 1 2 1 1 1 2
##  [778] 2 2 1 1 2 1 2 2 1 2 1 1 2 1 2 1 1 1 1 1 2 1 1 1 2 2 2 1 1 2 1 2 2 1 1 1 1
##  [815] 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 2 1 1 2 2 1 1 1 1 2 1 1 2 2 1 1 1 1 1 1 1
##  [852] 2 1 2 1 1 1 2 1 1 1 2 2 1 1 1 1 1 1 2 1 2 1 1 1 1 2 2 1 1 2 2 1 1 1 1 1 2
##  [889] 1 2 1 1 2 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 1 2
##  [926] 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1
##  [963] 1 1 2 2 2 2 2 1 2 1 1 1 1 1 2 1 1 2 2 1 1 2 2 2 2 1 1 1 2 1 1 1 2 1 1 2 1
## [1000] 1 1 1 1 1 1 2 1 1 2 2 1 2 2 2 1 2 1 1 2 1 2 2 2 2 2 1 1 2 2 1 2 1 2 1 1 1
## [1037] 1 2 1 2 2 1 1 1 1 1 2 2 2 1 1 1 2 2 1 1 1 1 2 2 1 1 1 1 1 1 2 1 1 1 1 2 1
## [1074] 2 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 1 2 2 1
## [1111] 1 1 1 1 2 2 1 1 1 2 1 2 1 1 1 1 1 2 1 2 1 2 2 2 1 2 1 1 1 1 1 2 1 1 1 2 2
## [1148] 2 2 1 1 1 1 1 1 1 1 1 2 1 2 1 1 2 1 1 2 1 1 1 1 2 1 1 2 1 2 1 1 1 2 2 2 1
## [1185] 1 1 1 1 1 2 2 1 1 1 2 1 1 2 1 2 1 2 1 1 2 1 1 1 2 2 1 1 1 1 2 1 2 1 1 1 1
## [1222] 1 1 1 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 1 2 2 1 1 2 2 2 1 1 1 1 1 1 2 1 2 1 1
## [1259] 2 1 1 1 1 2 1 2 2 2 1 2 1 2 1 1 1 2 1 1 1 2 1 1 2 1 1 2 2 1 1 2 1 1 1 1 1
## [1296] 1 2 1 1 1 2 1 1 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 2 1 1 1 1 1 1
## [1333] 2 2 2 1 1 1 2 1 2 2 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 2 1 2 2 1 1 1 1 2 1 1 2
## [1370] 2 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 1 2 1 1 1 2 1 1 1 1 1 2 1 1 2
## [1407] 1 1 1 1 2 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 2 1 1 1 1
## [1444] 1 1 2 1 1 2 2 1 2 2 1 1 1 1 2 1 1 2 2 1 2 1 1 1 1 1 1 1 1 2 1 1 2 1 1 2 1
## [1481] 1 2 1 1 2 1 1 2 1 1 1 2 1 1 1 1 2 2 2 1 1 2 1 2 2 1 2 2 2 1 2 2 1 2 1 1 2
## [1518] 2 1 2 1 2 2 1 1 1 1 1 1 1 1 2 1 1 1 2 1 2 2 1 1 1 2 1 2 1 1 1 1 1 2 1 2 2
## [1555] 1 1 1 2 2 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 2 2 1 2 2 1
## [1592] 2 1 2 1 1 1 1 2 2 1 1 1 2 1 1 1 2 2 1 1 1 2 1 1 2 1 1 1 1 1 1 1 2 1 2 2 1
## [1629] 1 2 1 1 1 2 1 1 1 1 2 2 1 1 2 2 1 1 1 2 1 1 2 1 1 2 1 2 1 2 2 2 1 1 2 1 1
## [1666] 2 2 1 2 1 1 1 2 1 2 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 2 1 2 1 1 1 2 1 2 1
## [1703] 1 2 1 1 1 2 1 2 2 1 1 2 1 1 1 2 1 2 2 1 1 1 1 1 1 2 1 2 1 1 1 1 1 2 1 2 1
## [1740] 1 1 1 1 2 2 1 1 1 2 1 1 1 2 2 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 2 2 2 1 1 1
## [1777] 1 2 1 1 1 1 1 2 1 2 1 1 2 1 2 1 1 1 1 2 1 1 2 1 1 2 1 2 1 1 1 1 2 1 2 2 1
## [1814] 1 1 1 2 1 1 1 2 1 2 1 1 1 2 1 1 1 1 1 2 1 1 1 2 2 2 1 1 2 1 1 1 1 1 1 2 1
## [1851] 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 2 2 1 1 1 1 1 1 1 2 2 1 1 2 2
## [1888] 1 2 2 1 1 1 2 1 1 1 2 2 2 1 2 1 2 1 1 2 2 1 1 2 1 2 1 2 1 1 2 1 1 1 1 2 1
## [1925] 1 1 1 1 1 2 2 1 2 1 2 1 2 1 1 1 2 2 1 1 1 2 1 1 2 1 2 2 1 1 2 1 1 1 1 1 1
## [1962] 2 1 2 2 1 2 1 1 1 1 2 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 2 1 1 1 1
## [1999] 1 2 1 1 2 1 2 1 1 1 1 2 1 1 2 1 1 1 1 2 2 2 1 1 1 2 1 2 2 1 2 1 1 1 1 1 1
## [2036] 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 2 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1
## [2073] 1 1 2 2 2 2 2 2 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 2 2 1 1 2 1 1 2 2 2 1 1 1 1
## [2110] 2 2 2 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 1 2 1 1
## [2147] 1 2 1 2 1 2 2 1 1 1 1 1 1 2 1 2 1 2 2 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 2 1
## [2184] 1 2 1 1 2 1 2 1 1 1 1 2 1 2 1 1 2 1 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 1 1 2 2
## [2221] 2 1 1 1 1 1 2 2 1 1 2 2 1 2 2 1 2 2 1 1 1 1 2 1 1 1 2 2 1 1 2 1 1 2 1 1 1
## [2258] 2 2 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 2 2 2 1 1 1 2 1 1 2 2 1 2 1 2
## [2295] 1 1 2 1 2 2 2 1 2 1 2 2 2 1 2 2 2 1 2 2 1 1 1 1 1 1 1 1 2 2 1 2 1 1 2 1 1
## [2332] 1 1 1 2 2 1 1 2 1 1 2 1 1 1 1 1 1 2 2 1 2 1 1 1 1 2 1 1 1 1 2 2 1 1 1 1 1
## [2369] 1 2 1 1 1 2 1 2 1 1 1 2 2 1 1 2 1 1 2 1 1 2 1 1 1 2 1 1 1 1 1 2 1 1 1 2 2
## [2406] 2 2 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1
## [2443] 2 1 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 2 2 2 2 2 2 1 1 2 1 1 1 1 1 1
## [2480] 1 1 1 1 1 2 2 1 2 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1
## [2517] 2 2 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 2 1 1 2 2 1 2 1 1 1 2 1 1 1 1 2 2 1 2
## [2554] 1 1 2 2 2 2 1 1 1 1 2 1 1 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 2 1 1 2 2 1 1 2 2
## [2591] 1 1 2 1 2 1 1 1 2 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1
## [2628] 2 1 1 1 2 2 2 1 1 1 2 1 1 1 1 2 1 1 1 2 1 1 2 2 1 2 1 1 1 2 1 1 2 1 1 2 1
## [2665] 1 1 2 2 2 2 1 1 1 1 1 1 2 1 2 2 2 2 2 1 2 2 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1
## [2702] 1 1 1 2 1 2 2 1 1 1 1 1 2 2 1 1 1 2 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1
## [2739] 2 1 1 2 1 1 2 1 2 2 1 1 2 1 1 1 1 1 1 2 1 1 1 2 2 2 2 1 1 1 1 1 1 1 2 1 2
## [2776] 2 2 2 1 1 2 1 2 2 1 1 1 1 1 2 1 1 2 1 1 1 2 1 2 2 1 1 1 1 1 1 2 1 1 2 1 2
## [2813] 1 1 2 1 1 2 1 2 2 2 2 1 1 1 1 1 2 2 2 1 2 1 1 1 1 1 2 2 1 1 1 1 2 1 2 1 1
## [2850] 1 2 1 1 1 1 1 1 1 1 2 1 2 2 2 1 1 1 1 2 1 1 1 2 1 1 1 2 2 2 1 1 1 2 2 1 1
## [2887] 2 2 1 2 1 1 1 1 1 1 2 2 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 2 2 1 1 2 2 1 2 1 1
## [2924] 1 1 1 2 1 1 1 1 2 2 1 1 2 1 1 1 2 1 1 1 1 1 1 2 2 1 1 1 1 2 1 1 1 1 1 1 1
## [2961] 2 2 1 2 1 1 2 1 1 1 1 1 2 1 1 2 1 1 1 1 2 1 1 1 2 2 1 2 1 2 1 2 2 1 1 1 2
## [2998] 1 1 2 1 1 2 2 1 1 1 1 2 2 1 1 1 1 2 1 1 1 2 1 2 1 1 1 1 2 2 1 1 1 1 1 1 1
## [3035] 1 1 1 1 1 2 2 2 1 1 1 2 2 1 1 1 1 1 1 2 2 1 2 2 1 1 1 2 1 1 1 2 2 2 2 1 2
## [3072] 1 2 1 2 1 2 2 2 1 1 2 1 2 2 2 2 1 1 1 2 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 1 1
## [3109] 1 1 2 1 1 2 2 1 2 1 1 2 1 2 1 2 2 1 2 2 2 2 1 2 1 1 1 2 1 2 2 1 2 2 1 1 2
## [3146] 1 2 2 2 1 1 2 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 2 2 2 1 1 2 2 2 2
## [3183] 2 1 1 1 2 1 1 2 1 1 1 1 1 2 1 2 1 1 1 1 1 1 2 2 1 1 1 1 2 1 1 1 1 2 2 2 2
## [3220] 1 1 1 2 1 1 2 1 2 1 1 1 1 2 2 1 2 2 2 1 2 1 2 2 1 1 1 1 1 2 1 1 1 1 2 2 2
## [3257] 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 2 2 1 2 2 1 1 1 2 1 2 2 1 2 1 1 1 2 2 1
## [3294] 1 2 1 1 1 2 1 1 1 1 1 1 1 2 1 2 1 1 2 1 1 2 1 1 2 2 2 2 1 1 2 1 1 2 2 1 1
## [3331] 1 2 1 1 2 1 2 1 1 1 1 2 1 1 1 2 2 2 1 2 1 1 1 2 2 1 1 1 1 1 2 1 2 2 1 1 1
## [3368] 2 1 2 1 2 1 1 2 2 2 1 2 1 1 1 2 1 2 1 1 1 1 2 2 2 1 2 1 2 1 1 1 1 1 1 1 1
## [3405] 2 1 2 1 1 1 1 2 1 2 2 1 1 1 2 1 1 2 1 1 1 1 2 1 1 1 1 2 1 2 1 1 2 1 1 1 2
## [3442] 2 1 1 1 1 2 2 1 1 1 2 1 2 1 1 1 2 2 2 1 1 1 1 1 1 1 1 2 1 2 1 1 2 1 1 2 1
## [3479] 1 1 2 1 1 1 1 2 2 2 2 1 1 1 2 1 1 2 1 1 1 2 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1
## [3516] 1 1 2 1 1 2 2 2 1 1 1 1 1 2 2 2 1 2 2 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1
## [3553] 1 1 1 1 2 2 1 1 2 1 2 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 2 1 1 2 1 1 1 1 2 1
## [3590] 2 1 2 2 2 2 1 2 2 2 1 1 2 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 1 2 2 2 1 2 2 1 1
## [3627] 2 2 2 2 2 2 1 2 2 1 1 2 2 2 2 2 1 1 1 1 1 1 2 2 1 1 1 1 1 2 2 1 1 2 1 1 2
## [3664] 1 2 1 1 1 1 1 2 1 1 1 1 2 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1
## [3701] 1 2 1 1 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 2 1 2 2 1 1 2 2 1
## [3738] 1 1 2 2 1 2 2 2 1 1 1 2 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 2 2 2 1 2 1 2
## [3775] 1 2 2 1 1 1 1 1 1 2 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 2 1
## [3812] 1 1 2 2 1 2 2 1 1 1 1 2 1 1 1 2 2 2 2 1 2 2 2 1 2 2 1 1 2 1 1 2 2 1 2 2 1
## [3849] 2 2 2 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 2 1 1 2 1 1 2 2 1 1 1 2 2 2 1 2 1 2 1
## [3886] 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1
## [3923] 1 1 1 1 1 2 1 2 1 1 1 2 2 2 1 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1 2 2 1 1 2 1 1
## [3960] 2 2 1 2 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 2 1 1 1 1 1 2 2
## [3997] 1 1 1 2 1 2 2 1 2 1 1 1 1 1 2 1 1 1 1 2 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1
## [4034] 2 2 1 2 1 1 1 1 2 2 2 1 1 1 2 1 2 1 2 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 2 1
## [4071] 1 2 1 2 1 2 1 2 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 1 2 2 1 2 2 2 1 2 2
## [4108] 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 2 1 1 1 1 2 2 1 2 1 2 2 2 1 1 2
## [4145] 1 1 1 1 2 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 2 1 1 1 1
## [4182] 1 1 1 1 2 2 1 1 1 2 2 2 1 1 1 2 2 2 1 1 2 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1
## [4219] 1 2 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 2 2 1 2 1 1 1 1
## [4256] 2 1 1 1 1 1 1 1 2 2 1 2 2 2 1 1 2 2 2 2 2 1 1 2 1 1 1 1 1 2 1 1 1 1 2 1 2
## [4293] 2 2 1 1 1 2 1 1 2 2 2 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 2 1 1
## [4330] 1 1 1 1 1 2 1 1 2 1 2 1 2 1 1 1 2 1 1 2 1 1 1 1 2 1 1 2 2 1 1 1 1 1 1 1 1
## [4367] 1 1 1 1 1 1 2 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 1 2 1 1 2 1 2 1
## [4404] 1 1 1 1 1 2 1 2 2 2 2 1 1 1 1 2 1 1 1 2 1 1 2 2 1 2 2 2 1 2 2 2 2 1 1 1 2
## [4441] 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 2 1 1 1 1 1 2 2 1 1 2 1 2 1 1 1 1 2 1 1 1 2
## [4478] 1 1 1 2 1 2 1 1 2 2 2 1 1 1 2 1 2 1 2 2 1 1 2 1 2 2 2 1 1 1 1 1 1 2 1 2 2
## [4515] 1 2 2 1 2 1 1 2 1 2 1 1 1 1 2 1 1 2 1 1 1 1 1 2 1 1 1 2 1 2 1 2 1 2 1 1 2
## [4552] 2 2 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 1 1 1 1 1 1 2 2 2 1 2 1 2 2 1 1 1 1 1 2
## [4589] 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 2 1 1 2 1 2 1 2 2 1 2 1 2 1 2 1 1 2
## [4626] 1 2 1 1 1 1 1 1 1 1 1 2 1 2 1 1 2 1 2 2 2 1 1 2 1 1 1 2 2 1 1 1 1 1 1 2 1
## [4663] 2 2 1 1 2 1 1 2 1 1 1 2 2 1 1 2 1 1 1 1 1 1 1 2 2 1 1 2 2 1 2 1 1 1 1 1 2
## [4700] 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 2 2 2 2 1 1 2 2 2 1 1 2
## [4737] 1 2 2 1 1 2 1 1 1 1 1 1 2 1 2 2 1 1 2 1 1 1 1 1 1 1 1 1 2 1 2 2 1 1 1 1 1
## [4774] 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 2 1 1 1 2 1 1 1 1 1 2 1 1 1 2
## [4811] 2 1 2 1 1 2 1 2 1 1 1 1 1 1 2 2 2 1 1 1 1 1 2 2 2 1 1 1 1 1 1 2 2 2 1 2 1
## [4848] 1 1 1 2 2 1 2 2 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1
## [4885] 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 2 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1
## [4922] 1 1 1 2 2 1 1 1 1 1 1 2 1 1 2 2 2 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 2 1 1 2 1
## [4959] 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 2 1 1 1 1 2 2 1 1 1 1 2 2
## [4996] 2 2 1 2 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 2 2 1 1 2 2 2
## [5033] 2 2 1 1 2 1 2 2 1 1 1 2 2 1 2 1 2 1 1 1 1 1 1 2 1 2 1 1 1 1 1 2 1 1 1 1 1
## [5070] 2 1 1 1 1 2 1 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 2 1 1 1 1 1
## [5107] 1 1 2 2 1 1 1 2 1 1 1 1 2 2 1 2 1 1 1 1 1 2 1 1 1 2 2 1 2 1 1 1 1 1 1 2 2
## [5144] 1 1 1 1 1 2 1 2 2 1 1 2 1 2 1 1 1 2 1 1 2 1 1 1 1 2 2 1 2 2 2 1 1 2 2 1 1
## [5181] 1 2 1 2 2 1 1 2 2 1 2 1 1 1 2 1 2 2 2 2 2 2 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1
## [5218] 2 1 1 2 2 1 1 2 1 1 2 1 2 1 1 1 1 1 1 2 1 2 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1
## [5255] 1 1 1 1 1 1 1 2 1 1 2 2 1 1 2 1 1 1 2 1 2 1 1 2 1 2 1 1 1 1 1 2 1 2 2 1 1
## [5292] 1 1 1 1 1 2 2 2 1 1 1 1 2 1 1 2 1 2 1 2 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1
## [5329] 1 2 2 2 1 2 1 1 2 1 1 2 1 2 2 1 2 1 1 1 1 2 2 1 1 1 2 1 2 2 2 2 2 2 1 1 2
## [5366] 1 1 2 2 1 1 2 2 1 1 1 1 2 2 1 2 1 1 2 1 1 1 2 1 1 1 2 2 2 1 1 1 1 2 1 1 2
## [5403] 1 1 1 2 1 1 1 2 1 1 2 1 1 1 1 2 1 1 2 2 1 2 1 1 1 2 2 1 1 2 1 1 1 1 1 1 1
## [5440] 2 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 1 2 1 1 2 1 1 1 1 2 1 1 1
## [5477] 1 1 1 1 1 2 2 1 1 1 2 1 1 1 1 1 2 2 1 1 2 2 1 2 1 1 2 2 1 1 1 1 2 1 1 2 1
## [5514] 2 1 2 2 1 1 2 2 1 1 2 1 1 1 1 1 1 2 1 1 2 1 1 1 1 2 1 1 1 1 1 2 2 2 1 2 2
## [5551] 1 1 1 2 1 2 1 2 2 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 2 1 1 1 2
## [5588] 1 1 2 1 1 1 1 2 1 1 2 1 1 1 1 1 1 2 1 2 1 1 2 1 1 1 1 2 1 1 1 1 2 2 1 2 2
## [5625] 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 2 2 1 1 2 2 1 2 1 1 1
## [5662] 1 2 1 1 2 1 2 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 2 1 1 1 1 1 2 1 2 2
## [5699] 1 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 2 2 1 1 2 1 1 1 1 1
## [5736] 1 1 2 2 1 2 1 2 1 2 1 1 1 1 1 2 1 1 2 1 2 2 1 2 1 1 1 1 1 1 2 2 2 1 2 2 2
## [5773] 2 1 1 2 2 1 1 1 1 1 1 2 1 1 2 2 2 2 2 1 1 2 2 1 1 1 2 1 2 1 1 1 2 2 1 1 1
## [5810] 1 1 1 1 1 2 2 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 2 1 2 1 1 2 2
## [5847] 2 1 2 1 2 1 2 1 2 1 1 1 1 2 2 1 1 2 2 2 2 1 2 1 2 1 1 2 1 2 2 1 1 1 1 1 2
## [5884] 1 2 1 1 1 1 2 1 2 1 2 2 1 2 2 2 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 2 1 1
## [5921] 2 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1
## [5958] 1 1 2 1 2 2 2 1 2 1 1 1 2 1 1 1 2 2 2 2 2 1 1 1 1 2 1 1 2 1 1 1 2 1 1 1 1
## [5995] 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 2 2 1 1 2 1 1 1 2 2 1 1
## [6032] 1 2 1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 2 1 2 2 1 1 1 1 1 2 1 2 1 2 2 2 1 2 1 1
## [6069] 1 1 2 1 1 1 1 1 1 1 1 1 2 1 2 1 2 2 2 2 1 2 2 2 2 2 2 1 1 1 2 1 1 1 1 1 1
## [6106] 1 1 1 2 1 2 2 2 1 1 1 2 2 2 1 2 2 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1
## [6143] 2 1 1 1 2 1 1 1 1 1 2 2 1 2 2 2 2 1 2 1 1 1 2 1 1 1 2 1 2 1 2 1 1 1 1 2 1
## [6180] 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 2 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1
## [6217] 2 2 1 1 2 2 1 1 2 1 1 1 2 2 1 1 2 2 1 1 2 2 2 2 1 1 2 2 1 1 1 1 2 1 1 2 2
## [6254] 2 1 1 2 1 2 1 1 2 1 2 1 1 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 1 2 1 1 1 2 1 1 2
## [6291] 1 2 2 2 1 2 2 1 1 2 2 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1
## [6328] 1 1 1 1 2 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 2 2 2 1 2 2 1 1 1 1 1 1 2 1 1 1 2
## [6365] 2 1 1 1 1 1 2 2 1 1 1 1 1 2 1 1 2 2 1 2 1 2 1 1 1 2 1 1 1 2 1 1 1 1 1 2 2
## [6402] 2 2 1 2 1 1 2 1 1 1 1 2 1 1 1 2 1 1 2 2 1 2 1 2 1 1 1 1 2 1 2 1 1 2 1 1 1
## [6439] 1 2 2 1 2 1 2 1 2 2 1 1 1 1 1 1 1 2 1 1 1 2 1 2 1 1 1 2 2 1 2 1 1 1 1 2 1
## [6476] 1 1 1 2 1 2 1 1 1 1 1 2 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 2
## [6513] 1 2 2 1 1 1 1 1 2 2 1 2 2 1 1 2 2 1 1 1 1 1 1 2 2 2 1 1 1 1 2 1 2 1 1 1 1
## [6550] 1 2 1 1 1 1 1 1 2 1 1 2 1 1 1 1 2 1 2 2 2 1 1 2 2 2 1 2 2 1 1 2 2 2 2 1 1
## [6587] 1 1 2 2 1 1 1 2 1 1 2 1 1 2 1 2 1 2 2 2 2 2 2 1 1 2 1 2 1 2 1 1 2 2 1 2 1
## [6624] 1 1 1 1 1 1 1 2 1 2 1 2 2 2 1 1 2 2 1 2 1 2 1 2 2 1 1 1 2 2 1 1 1 1 1 1 2
## [6661] 2 2 1 2 1 1 2 2 1 2 1 1 1 1 2 1 2 1 2 1 2 1 1 2 2 1 2 1 1 1 2 2 1 2 1 1 1
## [6698] 2 2 1 1 1 1 2 1 1 2 1 2 2 1 1 1 2 1 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1
## [6735] 2 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 1 2 1 2 1 1 1 2 1 1 2 1
## [6772] 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 2 1 1 1 1 1 1 1 1 2 2 2
## [6809] 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 2 1 2 2 1 2 1 2 1 1 2 2 1 1 2 1 2 1 2 2 1 2
## [6846] 1 1 1 1 2 1 2 1 1 2 1 2 2 1 1 2 1 1 1 1 1 1 2 1 1 2 1 2 2 1 2 1 1 1 1 1 1
## [6883] 1 1 1 1 1 1 2 1 1 1 2 1 2 1 1 1 2 1 2 1 1 1 1 1 1 2 1 1 2 2 2 1 1 2 2 1 1
## [6920] 2 1 2 1 2 1 2 1 2 1 2 1 2 2 1 1 2 1 1 2 2 1 1 1 2 2 1 1 1 1 1 1 2 1 1 2 1
## [6957] 1 1 2 1 2 1 1 1 2 1 2 1 1 2 2 1 2 1 2 2 1 1 1 2 1 1 1 1 2 2 2 1 1 1 1 2 2
## [6994] 1 2 1 1 2 1 1 1 2 2 2 1 1 2 1 1 1 1 2 1 2 1 1 1 1 2 1 1 1 1 1 1 2 2 1 1 1
## [7031] 1 1 2 2 2 2 1 1 2 2 1 1 1 1 1 1 1 2 1 1 2 2 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1
## [7068] 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1 2 1 1 2 2 1 1 1 1 2 2 1 1 1 1 2 1 1 2 1
## [7105] 1 1 1 1 2 1 1 1 2 1 2 1 1 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [7142] 2 2 2 2 1 1 2 2 1 1 1 1 1 2 1 2 1 1 1 2 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 2 1
## [7179] 1 1 1 1 2 2 1 2 2 2 1 1 2 1 2 2 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 2 2 1 1
## [7216] 1 2 1 1 2 2 1 1 1 2 2 1 1 1 1 2 2 2 2 1 1 2 1 2 1 2 2 1 1 1 1 1 2 2 1 1 2
## [7253] 1 2 1 2 2 1 1 1 1 2 1 1 1 2 2 2 2 1 2 1 1 1 1 1 1 2 2 1 1 1 1 2 2 2 2 2 2
## [7290] 1 1 1 1 1 2 1 2 2 2 1 1 1 1 2 2 1 2 1 2 1 2 2 1 1 2 1 1 1 2 1 2 1 2 2 1 1
## [7327] 2 2 1 1 1 2 1 1 1 1 2 2 2 1 1 1 2 2 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 2 1 2 2
## [7364] 2 1 2 1 2 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 1 1 1 1 2 2 1 1 1 2 1 2 1 1 1 1
## [7401] 1 1 2 1 2 1 2 1 2 1 2 1 1 1 1 1 1 2 1 2 2 1 2 1 2 1 2 1 1 2 1 1 1 1 1 1 1
## [7438] 1 2 1 2 2 2 2 1 1 1 1 1 1 1 1 2 2 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 2
## [7475] 1 1 2 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 1 2 2 1 2
## [7512] 2 1 2 1 1 1 2 1 1 2 2 1 2 2 1 1 2 1 1 2 1 1 2 2 1 2 1 1 1 2 1 1 1 1 2 1 1
## [7549] 1 1 1 2 1 1 1 1 2 1 2 1 2 1 1 1 2 1 2 1 2 1 1 1 1 2 2 2 1 1 1 2 1 1 1 1 2
## [7586] 1 2 1 2 1 2 2 1 1 2 2 2 2 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 2
## [7623] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 1 1 2 1 1 1 2 2 1 1 2 1 1 1 1 1
## [7660] 1 2 2 2 1 2 1 1 1 2 2 1 1 1 1 1 1 2 2 1 1 2 1 2 1 1 2 1 1 1 1 1 2 1 1 1 1
## [7697] 2 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 2 2 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 1 2
## [7734] 1 1 1 1 1 2 2 1 2 1 1 1 2 1 1 2 2 1 2 1 2 1 1 1 1 1 1 2 1 1 2 2 1 2 1 1 1
## [7771] 1 2 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 2 2 1 1 1 2 1 1 1 2 1 1 2 1 1 1 1 2 1 1
## [7808] 1 1 1 1 1 1 2 2 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 2 1 1 1
## [7845] 2 1 1 1 2 1 1 1 1 2 1 1 2 1 1 1 1 2 1 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 2 2
## [7882] 1 2 1 1 1 1 1 2 2 1 1 1 1 2 2 2 1 1 1 1 1 2 1 1 1 1 2 2 1 2 1 1 1 1 1 2 1
## [7919] 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 2 1 1 2 2 1 1 1 1 1 2 1 2 1 1 1 1 2 1 1 1 2
## [7956] 1 1 1 1 1 2 1 2 2 1 1 1 1 1 1 1 1 2 1 2 1 1 2 1 2 1 1 2 2 1 2 1 1 1 1 1 1
## [7993] 2 2 1 1 1 1 1 1 2 2 1 1 2 1 2 1 1 2 2 1 2 2 2 2 2 2 1 2 2 1 1 2 1 2 2 2 2
## [8030] 1 2 1 1 2 1 1 2 1 2 2 2 2 1 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1
## [8067] 1 2 2 1 1 2 1 2 2 1 1 1 1 1 1 1 1 2 1 1 2 1 2 2 2 1 1 1 1 2 1 2 1 1 2 1 1
## [8104] 1 1 1 1 1 2 1 2 1 2 1 1 1 1 1 1 2 1 2 1 1 1 2 1 1 1 2 1 2 1 2 1 1 1 1 2 2
## [8141] 1 1 2 2 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 2 1 1 1 2 2 1
## [8178] 1 1 1 1 1 1 1 2 1 2 1 1 1 1 2 1 2 1 1 2 1 1 1 2 1 1 1 2 1 1 1 1 1 1 2 1 1
## [8215] 2 1 1 1 2 1 2 1 1 1 2 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 2 2 1
## [8252] 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 2 1 2 1 1 2 1 1 2 2 1 1 1 2 1 2 2 2 2 1 1
## [8289] 1 2 1 2 1 1 1 1 2 1 2 2 1 1 1 1 2 2 1 2 2 1 1 1 1 2 1 1 1 1 2
## 
## Within cluster sum of squares by cluster:
## [1] 29301.20 25572.04
##  (between_SS / total_SS =  26.7 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

3. Visualización de clusters

fviz_cluster(cluster_kmeans, data = znumvivienda)

Basándonos en los resultados obtenidos del análisis de conglomerados utilizando tanto el método del codo como el método de la silueta, se puede determinar que el mercado de viviendas urbanas estudiado puede ser mejor comprendido y segmentado en dos grupos distintos de tamaños 2705 y 5614. Estos dos clusters representan segmentos claros dentro del mercado inmobiliario, con propiedades que comparten características similares dentro de cada grupo.

La identificación de dos clusters distintos sugiere la presencia de diferencias significativas en las características de las propiedades, así como posiblemente diferentes dinámicas y tendencias en el mercado. Esto proporciona información valiosa para la empresa inmobiliaria, ya que permite una comprensión más profunda de las necesidades y preferencias de los clientes, así como la posibilidad de adaptar estrategias de marketing y ventas de manera más efectiva.

5.3. Análisis de Correspondencia

El análisis de correspondencia es una herramienta útil para explorar relaciones entre variables categóricas, identificar patrones y tendencias en los datos, tomar decisiones estratégicas informadas y segmentar el mercado en grupos homogéneos.

En nuestro conjunto de datos tenemos 3 variables categóricas que son: la zona, el barrio y el tipo de vivienda. Sin embargo, el barrio es una variable muy compleja de analizar por la cantidad de datos únicos que hay en ella. Por esto, no se tomará como parte del análisis.

1. Crear una tabla de contingencia para estas dos variables

tipo_zona <- table(viv_sinNA$tipo, viv_sinNA$zona)
print(tipo_zona)
##              
##               Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
##   Apartamento          24       1198       1029           62     2787
##   Casa                100        722        169          289     1939

Observamos una clara variación en las preferencias de tipo de propiedad entre las diferentes zonas. Por ejemplo, la Zona Sur muestra una clara preferencia por los apartamentos, con una frecuencia considerablemente mayor en comparación con otras zonas. En contraste, las zonas Centro y Oriente presentan una distribución más equilibrada entre casas y apartamentos.

La distribución geográfica de la oferta inmobiliaria parece estar influenciada por factores como la ubicación, la infraestructura y las características socioeconómicas de cada zona. Esto se refleja en las diferencias significativas en la composición de tipos de propiedad entre zonas. Por ejemplo, la Zona Sur, que puede ser más densamente poblada y tener una infraestructura urbana más desarrollada, tiende a tener una mayor proporción de apartamentos.

Para analizar a profundidad la asociación entre ambas variables, haremos una prueba Chi-cuadrado.

chisq.test(tipo_zona)
## 
##  Pearson's Chi-squared test
## 
## data:  tipo_zona
## X-squared = 690.93, df = 4, p-value < 2.2e-16

El resultado de la prueba de chi-cuadrado indica que hay una asociación significativa entre las variables “tipo” y “zona”.

El valor extremadamente bajo del valor p (p-value = 2.2e-16) indica que la asociación entre el tipo de propiedad y la zona es altamente significativa. Esto significa que la distribución de tipos de propiedad varía significativamente según la zona en la que se encuentran las propiedades.

Dado que el valor de chi-cuadrado (X-squared = 690.93) es bastante grande en comparación con el número de grados de libertad (df = 4), se rechaza la hipótesis nula de independencia entre las variables “tipo” y “zona”.

La asociación significativa entre el tipo de propiedad y la zona es importante para el análisis, ya que indica que la ubicación (zona) puede ser un factor importante a considerar al analizar el tipo de propiedad. Esto puede tener implicaciones importantes para la segmentación de mercado, las estrategias de marketing y la toma de decisiones estratégicas.

2. Convertimos las dos variables categóricas a factores

viv_sinNA$zona <- as.factor(viv_sinNA$zona)
viv_sinNA$tipo <- as.factor(viv_sinNA$tipo)
cat_cols <- viv_sinNA[sapply(viv_sinNA, is.factor)]

3. Hacenmos finalmente el análisis de correspondencia

res_AC <- MCA(cat_cols, ncp = 4, graph = FALSE)

rpAC <- fviz_screeplot(res_AC, addlabels = TRUE, ylim = c(0, 40))
varAC <- fviz_mca_var(res_AC, choice = "mca.cor",repel = TRUE, ggtheme = theme_minimal())

grid.arrange(rpAC, varAC, nrow = 1, ncol = 2)

Se puede concluir lo siguiente: Las dos primeras dimensiones explican un 45.8 % de la varianza. Aunque el porcentaje de varianza explicada puede parecer relativamente bajo, el hecho de que las dos primeras dimensiones capturen casi la mitad de la variabilidad total indica una reducción significativa en la dimensionalidad de los datos. Esto sugiere que estas dos dimensiones son representativas de las principales fuentes de variación en los datos. Aunque las dos primeras dimensiones explican una parte significativa de la varianza, es posible que aún quede una cantidad sustancial de información no capturada en dimensiones adicionales. Esto sugiere que puede haber oportunidades para realizar análisis más detallados explorando dimensiones adicionales y examinando cómo contribuyen a la variabilidad restante en los datos.

6. RESULTADOS

Análisis de Componentes Principales (ACP):

Se identificaron patrones significativos en la base de datos, con el primer componente principal explicando el 40.3% de la variabilidad y los dos primeros componentes principales que en conjunto explican el 57.7% de la variabilidad. Se observó una fuerte asociación entre las variables relacionadas con las características físicas y de valoración de las propiedades, así como una asociación moderada entre las variables relacionadas con la ubicación geográfica de las propiedades. Se concluyó que las propiedades con precios más altos tienden a tener más baños, mayor área, más parqueaderos y están ubicadas en estratos más altos.

Análisis de Conglomerados (Clustering): Se determinó que el mercado de viviendas urbanas puede ser segmentado en dos grupos distintos, con propiedades que comparten características similares dentro de cada grupo. Se identificaron dos clusters claros, con tamaños de 2705 y 5614, lo que indica diferencias significativas en las características de las propiedades y posiblemente diferentes dinámicas y tendencias en el mercado.

Análisis de Correspondencia: Se encontró una asociación significativa entre el tipo de propiedad y la zona, lo que sugiere que la distribución de tipos de propiedad varía significativamente según la zona en la que se encuentran las propiedades. Se concluyó que la ubicación (zona) puede ser un factor importante a considerar al analizar el tipo de propiedad, lo que tiene implicaciones importantes para la segmentación de mercado, las estrategias de marketing y la toma de decisiones estratégicas.

7. CONCLUSIONES

El análisis integral y multidimensional proporcionó una comprensión profunda del mercado de viviendas urbanas en la ciudad de Cali. Se identificaron patrones, relaciones y segmentaciones relevantes en los datos, lo que permitirá a la empresa inmobiliaria tomar decisiones estratégicas más informadas. La segmentación del mercado en dos clusters distintos sugiere la presencia de diferencias significativas en las características de las propiedades y en las dinámicas del mercado. La asociación entre el tipo de propiedad y la zona resalta la importancia de considerar la ubicación al analizar el mercado inmobiliario urbano.

8. RECOMENDACIONES

Utilizar los resultados del análisis de conglomerados para adaptar estrategias de marketing y ventas específicas para cada grupo de propiedades. Considerar la ubicación como un factor clave al evaluar y valorar las propiedades, especialmente al establecer precios y estrategias de comercialización. Explorar análisis más detallados para comprender aún más las dinámicas del mercado y las preferencias de los clientes. Continuar monitoreando y actualizando la base de datos para mantenerse al tanto de los cambios en el mercado y ajustar las estrategias en consecuencia.