Activdad 1: Evaluación de la oferta inmobiliaria urbana

JOHN WILMAR VARGAS MENDEZ

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, se cargara la data para el desarrollo de la actividad

library(paqueteMODELOS)
## Loading required package: boot
## Loading required package: broom
## Loading required package: GGally
## Warning: package 'GGally' was built under R version 4.3.2
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## Loading required package: gridExtra
## Loading required package: knitr
## Warning: package 'knitr' was built under R version 4.3.2
## Loading required package: summarytools
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>

Analisis exploratorio de la información

Porcentaje de datos faltantes por variable

na_percentage <- sapply(vivienda, function(x) sum(is.na(x)) / length(x) * 100)
na_percentage
##           id         zona         piso      estrato      preciom    areaconst 
##   0.03604903   0.03604903  31.69911079   0.03604903   0.02403268   0.03604903 
## parqueaderos       banios habitaciones         tipo       barrio     longitud 
##  19.28622927   0.03604903   0.03604903   0.03604903   0.03604903   0.03604903 
##      latitud 
##   0.03604903

Donde la variable piso tiene 31% de NA y parqueadero es la segunda variable con mas Na donde equivale al 19%

quiero idenificar si quito todos los Na con cuantas observaciones trabajaria

# Número de observaciones original
n_obs_original <- nrow(vivienda)

# Número de observaciones después de eliminar filas con NA
vivienda_sin_na <- na.omit(vivienda)
n_obs_sin_na <- nrow(vivienda_sin_na)

# Calcular la diferencia
n_obs_original
## [1] 8322
n_obs_sin_na
## [1] 4808

con esto perderiamos el 43 % de la informacion, entonces se trabajaria contoda la informacion y los NA se llenaran con la moda de la variable

Una estrategia común es la imputación, que consiste en reemplazar los valores faltantes con un valor estimado para este caso se utilizara, Imputación por la Media/Mediana/Moda. por esto se rellenaran los Na con la moda de la variable respectiva.

Imputacion para las variables Numericas

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
vivienda <- vivienda %>%
  mutate_if(is.character, as.factor)

# Verificar los cambios
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        : Factor w/ 5 levels "Zona Centro",..: 4 4 4 5 2 2 2 2 2 2 ...
##  $ piso        : Factor w/ 12 levels "01","02","03",..: NA NA NA 2 1 1 1 1 2 2 ...
##  $ 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        : Factor w/ 2 levels "Apartamento",..: 2 2 2 2 1 1 1 1 2 2 ...
##  $ barrio      : Factor w/ 436 levels "20 de julio",..: 1 1 1 2 3 3 3 3 3 3 ...
##  $ 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>
# Imputar valores NA para variables numéricas con la mediana
vivienda <- vivienda %>%
  mutate_if(is.numeric, ~ifelse(is.na(.), median(., na.rm = TRUE), .))

# Imputación para variables categóricas con la moda
# Definir función para calcular la moda
impute_mode <- function(x) {
  ux <- unique(x[!is.na(x)])
  ux[which.max(tabulate(match(x, ux)))]
}

# Imputar valores NA para variables categóricas con la moda
vivienda <- vivienda %>%
  mutate_if(is.factor, ~ifelse(is.na(.), impute_mode(.), .))

despues de la imputacion validamos los N del nuevo data set y se observa que ya no existen Na

# Número de observaciones original
n_obs_original <- nrow(vivienda)

# Número de observaciones después de eliminar filas con NA
vivienda_sin_na <- na.omit(vivienda)
n_obs_sin_na <- nrow(vivienda_sin_na)

# Calcular la diferencia
n_obs_original
## [1] 8322
n_obs_sin_na
## [1] 8322

Analisis descriptivo

summary(vivienda)
##        id            zona            piso          estrato     
##  Min.   :   1   Min.   :1.000   Min.   : 1.00   Min.   :3.000  
##  1st Qu.:2081   1st Qu.:3.000   1st Qu.: 2.00   1st Qu.:4.000  
##  Median :4160   Median :5.000   Median : 2.00   Median :5.000  
##  Mean   :4160   Mean   :3.918   Mean   : 3.21   Mean   :4.634  
##  3rd Qu.:6239   3rd Qu.:5.000   3rd Qu.: 4.00   3rd Qu.:5.000  
##  Max.   :8319   Max.   :5.000   Max.   :12.00   Max.   :6.000  
##     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.867   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  
##   habitaciones         tipo           barrio         longitud     
##  Min.   : 0.000   Min.   :1.000   Min.   :  1.0   Min.   :-76.59  
##  1st Qu.: 3.000   1st Qu.:1.000   1st Qu.:136.0   1st Qu.:-76.54  
##  Median : 3.000   Median :1.000   Median :251.0   Median :-76.53  
##  Mean   : 3.605   Mean   :1.387   Mean   :241.5   Mean   :-76.53  
##  3rd Qu.: 4.000   3rd Qu.:2.000   3rd Qu.:367.0   3rd Qu.:-76.52  
##  Max.   :10.000   Max.   :2.000   Max.   :436.0   Max.   :-76.46  
##     latitud     
##  Min.   :3.333  
##  1st Qu.:3.381  
##  Median :3.416  
##  Mean   :3.418  
##  3rd Qu.:3.452  
##  Max.   :3.498

Analisis de Componentes pricipales

vivienda_pca <- vivienda %>%
  select(-c(id, zona, tipo, barrio)) %>%
  na.omit() # Eliminar filas con NA para simplificar el análisis

# Asumiendo que vivienda es tu data.frame
library(FactoMineR)
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# Realizar el PCA
pca_res <- PCA(vivienda_pca, scale.unit = TRUE, graph = FALSE)
fviz_screeplot(pca_res, addlabels = TRUE, ylim = c(0, 100))

Basándome en la imagen del scree plot que has proporcionado para el análisis de componentes principales (PCA), aquí te dejo algunos posibles descubrimientos y conclusiones:

  1. Dominancia del Primer Componente Principal:

    • El primer componente principal es el más significativo, explicando aproximadamente el 39.4% de la varianza en los datos. Esto indica que existe un factor subyacente o una combinación de variables que contribuye sustancialmente a la variabilidad en el conjunto de datos.
  2. Potencial de Reducción de Dimensionalidad:

    • La disminución notable en la varianza explicada después del primer componente y el cambio menos pronunciado después del segundo componente sugiere que la mayoría de la información útil puede ser capturada en dos dimensiones. Esto puede simplificar significativamente el análisis posterior sin perder gran parte de la información crítica.
  3. Decisión sobre la Retención de Componentes:

    • Siguiendo la regla del codo, podrías decidir retener solo los dos primeros componentes para futuros análisis, ya que juntos explican más del 50% de la varianza. Esto permitiría una visualización en 2D o un análisis más simplificado de los datos.
  4. Componentes Secundarios:

    • Aunque los componentes después del segundo explican una menor proporción de la varianza (17.4%, 11.3%, etc.), aún pueden ser relevantes si estás interesado en patrones más sutiles dentro de los datos.
  5. Consideraciones para la Interpretación de Componentes Adicionales:

    • Si bien los primeros dos componentes son los más informativos, los siguientes componentes aún podrían ser importantes si representan conceptos específicos o intereses de investigación relevantes. La interpretación de estos requeriría un examen más detallado de las cargas de las variables en esos componentes.
  6. Potencial para Descubrimientos Analíticos:

    • El análisis de las cargas de los dos primeros componentes principales podría revelar las variables más influyentes en el conjunto de datos, lo que puede ser esencial para descubrimientos analíticos como identificar los principales impulsores de costo en el mercado inmobiliario, si ese fuera el contexto de los datos.
fviz_pca_var(pca_res, col.var = "contrib", 
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), 
             repel = TRUE) # Usa repel = TRUE para evitar la superposición de texto

  1. Distribución de Variables:

    • Las variables banios, areaconst, parqueaderos, habitaciones, y preciom están posicionadas en la misma dirección general con respecto al primer componente principal (Dim1), lo que sugiere que estas variables están positivamente correlacionadas entre sí y pueden representar características relacionadas con el tamaño y el valor de las viviendas.
  2. Primer Componente Principal (Dim1):

    • Representando el 39.4% de la varianza en los datos, el primer componente principal parece estar fuertemente influenciado por preciom, banios, parqueaderos, estrato, y areaconst, que pueden ser interpretados como factores relacionados con la calidad y el precio de la propiedad.
  3. Segundo Componente Principal (Dim2):

    • El segundo componente principal, que explica el 17.4% de la varianza, parece estar más relacionado con las variables longitud y latitud, lo que podría interpretarse como una influencia geográfica en los datos.
  4. Relaciones entre Variables:

    • La proximidad de longitud y latitud sugiere una relación o dependencia entre estas dos variables, lo cual tiene sentido dado que juntas definen una ubicación geográfica. Su orientación perpendicular a preciom indica que la variabilidad en la ubicación es relativamente independiente de los precios de las viviendas.
  5. Variables Menos Influyentes:

    • piso parece tener una contribución menor en ambas dimensiones, lo que puede implicar que el número de pisos no es un factor tan decisivo en la variabilidad de los datos, al menos no tanto como las características de tamaño y ubicación.
  6. Implicaciones para Estrategias de Mercado:

    • Para profesionales en el mercado inmobiliario, este biplot puede sugerir que las estrategias de marketing y desarrollo deben enfocarse más en las características representadas por las variables más cercanas al primer componente principal, ya que estas parecen tener una mayor influencia en la variabilidad de los datos y, potencialmente, en el valor de mercado.
  7. Consideraciones de Diseño Urbano:

    • La menor influencia de la variable piso podría también sugerir que, en esta muestra específica, los compradores o el mercado no diferencian tanto el valor de las propiedades basado en el número de pisos, lo que puede tener implicaciones para el diseño y desarrollo urbano.
fviz_contrib(pca_res, choice = "var", axes = 1:2)

  1. Contribuciones Relativamente Equilibradas:

    • Las barras del gráfico muestran que la mayoría de las variables tienen contribuciones relativamente similares a las dimensiones 1 y 2, con ninguna variable dominando significativamente. Esto puede indicar que no hay una única variable que sea responsable de la mayoría de la variabilidad en los datos.
  2. Variables Significativas:

    • Las variables preciom, banios, estrato, areaconst, y habitaciones parecen ser las más contribuyentes, lo que sugiere que estas características de las viviendas son factores importantes en la variación de los datos y podrían ser claves en la determinación del precio y la oferta del mercado inmobiliario.
  3. Variables con Menor Contribución:

    • Por otro lado, longitud, latitud, y piso tienen las contribuciones más bajas en las dos dimensiones principales. Esto podría indicar que estas variables son menos importantes en la explicación de la variabilidad de los datos en este análisis específico.
  4. Línea de Corte:

    • La línea punteada roja podría representar un umbral de contribución significativa. Las variables que están por encima de esta línea son consideradas como las que tienen una contribución significativa. Todas las variables parecen estar por debajo de este umbral, sugiriendo que ninguna domina, pero todas contribuyen de manera más o menos igual.
  5. Evaluación del Modelo de PCA:

    • Si esta gráfica representa las dos primeras dimensiones de un PCA, y estas dimensiones explican una buena parte de la varianza (según se vio en el scree plot anterior), entonces las variables mostradas aquí son todas significativas en la modelación de los datos y deberían ser consideradas en análisis más profundos.
  6. Implicaciones Prácticas:

    • Para un desarrollador inmobiliario o un analista de mercado, estos hallazgos podrían implicar que estrategias de precios o de mercadeo deberían considerar un rango equilibrado de estas características de las propiedades, en lugar de centrarse en una sola característica.

Conclusiones del ACP para el negocio


Basándome en los gráficos de PCA proporcionados y en el contexto de una empresa inmobiliaria que busca obtener una comprensión profunda del mercado de viviendas urbanas, aquí hay algunas conclusiones que podrían derivarse de los resultados de PCA:

  1. Factores Influyentes en el Valor de la Propiedad:

    • El primer componente principal sugiere que el tamaño de la propiedad (área construida), la cantidad de baños y parqueaderos, y el estrato socioeconómico son los factores más significativos que afectan el valor de mercado de las propiedades. Estas variables están altamente correlacionadas entre sí y, por lo tanto, podrían considerarse indicadores clave en la valoración de propiedades.
  2. Relevancia de la Ubicación:

    • La importancia del segundo componente principal, que parece estar más relacionado con las variables de longitud y latitud, indica que la ubicación geográfica también es un factor crítico. Esto podría reflejar diferencias de precios y demanda en diferentes zonas de la ciudad.
  3. Segmentación de Propiedades:

    • Al entender las variables que más contribuyen a la variabilidad en el mercado, la empresa puede segmentar mejor las propiedades en su base de datos. Por ejemplo, podrían crear segmentos basados en el lujo (propiedades con mayor número de baños y parqueaderos) o en la ubicación (propiedades en ciertas coordenadas geográficas).
  4. Estrategias de Inversión y Desarrollo:

    • Las conclusiones del PCA podrían guiar a la empresa hacia inversiones en propiedades que tienen características que se alinean con los componentes principales, como las propiedades de mayor tamaño y mejor ubicadas, que podrían ofrecer un mayor retorno de inversión.
  5. Optimización de la Cartera de Propiedades:

    • La empresa podría utilizar estas conclusiones para optimizar su cartera, adquiriendo o construyendo propiedades con las características que se identifican como más valiosas, y deshaciéndose de aquellas que no se alinean con estos factores.
  6. Desarrollo de Herramientas de Valoración:

    • Las variables identificadas como significativas en el PCA podrían ser utilizadas para desarrollar o mejorar modelos de valoración de propiedades que permitan estimar precios más precisos y competitivos.
  7. Marketing Dirigido:

    • La empresa podría adaptar sus campañas de marketing para destacar los atributos más deseables de las propiedades según lo indicado por el PCA, como la ubicación y los aspectos de lujo, para atraer a compradores específicos.
  8. Consideraciones Sobre la Densidad de Propiedades:

    • Dado que la variable piso no pareció ser un factor significativo en los componentes principales, esto podría sugerir que la densidad de ocupación (por ejemplo, la cantidad de unidades por edificio) no es un factor diferenciador clave en el mercado actual.

ACP por Cluster

DETERMINAR EL NUMERO OPTIMO DE CLUSTER

# Cargar paquete necesario
library(factoextra)

# Calcular la suma total de cuadrados dentro del cluster para diferentes cantidades de clusters
fviz_nbclust(vivienda_pca, kmeans, method = "wss") + geom_vline(xintercept = 4, linetype = 2) + labs(subtitle = "Método del codo")
## Warning: did not converge in 10 iterations

Ejecutar K-Means

Una vez que has decidido el número de clusters, ejecuta el algoritmo K-Means:

set.seed(123) # Establecer una semilla para reproducibilidad
k_optimo <- 4 # Suponiendo que el método del codo sugirió 4 clusters

# Aplicar el modelo K-Means
kmeans_res <- kmeans(vivienda_pca, centers = k_optimo, nstart = 25)

Ver los Resultados

# Ver los centros de los clusters
kmeans_res$centers
##       piso  estrato   preciom areaconst parqueaderos   banios habitaciones
## 1 3.058475 4.851837  436.4812 198.12992     1.904386 3.521533     4.031213
## 2 3.016198 5.531969  780.4893 306.57116     2.643649 4.538789     4.255754
## 3 3.363237 4.095807  212.8762  89.06863     1.398098 2.188445     3.066797
## 4 3.168605 5.798450 1389.8740 444.22180     3.645349 5.189922     4.315891
##    longitud  latitud
## 1 -76.53185 3.421674
## 2 -76.53732 3.410036
## 3 -76.52281 3.418885
## 4 -76.53897 3.405304
# Ver la asignación de cada observación a un cluster
kmeans_res$cluster
##    [1] 3 3 1 1 3 3 3 3 3 2 2 2 2 1 1 1 1 3 1 3 3 2 1 3 1 1 3 3 1 1 3 1 3 1 1 3 3
##   [38] 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 1 1 3 3 3 3 1 1 1 3 3 1 1 3 3 3 1 3 3 3 1 3
##   [75] 1 1 3 1 3 3 3 1 1 3 3 1 2 3 3 1 3 1 3 3 3 1 3 3 2 3 4 2 1 2 1 2 1 2 2 2 1
##  [112] 3 2 2 2 2 2 2 1 3 2 2 2 1 1 1 1 3 3 2 2 2 3 1 1 1 1 2 1 3 3 2 1 1 1 1 3 4
##  [149] 1 4 2 3 4 1 1 3 1 3 3 2 3 1 3 3 3 2 3 3 3 1 3 3 2 3 3 3 3 3 4 3 4 2 4 2 3
##  [186] 3 3 2 3 3 2 2 4 3 3 3 3 3 2 2 3 3 2 3 2 3 3 3 2 2 2 3 2 3 2 2 4 3 3 2 4 2
##  [223] 2 2 3 2 4 4 2 2 4 2 1 4 2 3 2 3 2 2 2 2 2 4 2 2 2 2 2 2 2 3 1 2 2 3 3 3 4
##  [260] 3 4 3 4 2 4 3 4 2 4 2 2 3 3 3 2 1 1 1 3 2 3 3 3 3 2 3 1 1 1 3 3 3 3 3 3 3
##  [297] 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 1 1 1 3 1 3 1 1 1 3 3
##  [334] 3 3 1 1 3 3 1 3 2 1 1 1 3 3 1 1 1 3 3 3 1 3 3 1 1 3 1 3 2 3 1 1 3 1 2 4 4
##  [371] 4 3 1 4 2 1 3 1 2 1 1 1 1 1 2 1 2 1 1 1 4 2 2 2 2 1 2 4 2 2 1 2 2 1 2 4 1
##  [408] 2 2 1 1 3 3 3 3 3 1 1 1 1 1 3 3 3 3 3 3 3 2 1 3 3 1 1 3 3 3 3 3 3 3 3 4 3
##  [445] 1 3 3 3 3 1 3 3 3 3 1 4 1 3 1 3 4 1 3 4 1 4 3 1 2 2 2 1 2 1 1 1 1 3 3 4 2
##  [482] 2 1 3 1 1 2 2 2 1 2 2 2 2 1 2 1 2 1 2 1 1 3 1 1 3 1 3 3 3 1 1 1 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 3 3 3 3 3 3 3 3 2 1 1 3 3 1
##  [556] 3 2 3 3 3 3 3 3 3 3 3 3 3 3 2 1 1 3 3 3 3 1 1 3 1 1 3 3 3 1 3 1 1 2 3 3 3
##  [593] 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
##  [630] 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
##  [667] 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 2 4 4 1 1 1 2 3 3 1 3 3 3 3 3 3 1 1 3 3 3 3
##  [704] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 3 3 3 3 2 3 3 3 1 3 3 3 3 3 3 2 4
##  [741] 3 4 3 2 2 1 2 2 1 2 4 2 2 1 3 2 4 1 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 1 3 1
##  [778] 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 3 1 1 3 1 1 1 3 3 3 3 3 3 3 3
##  [815] 3 2 1 1 3 1 3 1 3 1 1 3 1 1 3 1 1 3 3 3 3 3 3 3 3 3 3 1 1 3 3 3 1 3 3 1 3
##  [852] 3 3 1 3 1 3 1 3 3 3 3 3 1 1 3 1 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3
##  [889] 1 1 3 3 3 3 3 1 1 1 3 3 3 1 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 3 1 3
##  [926] 1 1 3 3 3 1 2 3 3 3 1 1 1 1 3 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3
##  [963] 1 1 3 3 3 3 3 3 3 3 3 3 2 3 1 1 1 3 3 3 3 2 1 3 3 2 3 3 1 3 3 3 3 1 1 3 2
## [1000] 3 2 1 1 1 2 3 1 1 1 1 1 3 3 1 1 3 3 1 1 3 3 3 1 1 2 3 1 2 3 1 1 1 1 3 1 1
## [1037] 1 1 1 1 1 1 1 1 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 3 1
## [1074] 1 1 1 1 1 3 1 2 1 3 3 1 1 2 2 1 1 1 1 1 1 2 1 2 3 1 1 3 1 3 1 3 3 1 3 1 1
## [1111] 3 3 3 3 1 1 1 1 3 3 3 3 3 3 3 1 3 1 1 1 1 3 1 1 3 1 3 1 1 3 1 1 1 1 3 3 3
## [1148] 1 3 1 1 1 1 1 1 1 2 1 3 3 3 1 3 3 3 3 3 1 1 3 1 1 1 1 1 1 3 1 3 1 3 1 3 3
## [1185] 3 3 3 1 1 3 3 1 3 1 3 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [1222] 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
## [1259] 3 3 3 3 3 3 2 1 3 3 2 2 3 3 3 1 2 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 1 3 3 3 3
## [1296] 3 3 3 2 1 3 2 1 2 3 3 1 3 1 4 1 1 1 1 1 2 2 1 1 2 1 1 1 2 4 4 4 1 1 1 2 1
## [1333] 2 1 4 2 2 2 1 2 4 4 2 1 4 2 2 2 1 2 4 1 4 4 2 4 4 2 1 4 2 1 2 2 2 4 4 2 1
## [1370] 2 2 2 2 4 3 2 2 2 1 2 1 1 1 2 1 2 4 2 2 2 2 2 4 2 2 4 1 2 2 4 2 2 2 2 2 2
## [1407] 2 1 4 2 2 1 4 1 1 2 2 1 2 2 1 4 2 2 2 2 4 2 2 2 2 2 4 2 2 4 2 4 1 2 1 4 2
## [1444] 2 2 1 1 4 2 1 1 2 2 2 4 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 4 4 1 4 4 2 2 4
## [1481] 4 2 2 4 1 3 3 4 4 4 1 2 2 1 4 2 2 1 2 1 1 1 2 1 3 2 1 1 1 4 3 1 1 4 4 3 1
## [1518] 1 4 4 4 1 1 1 1 1 4 1 1 1 2 1 2 2 3 1 1 1 1 1 1 1 2 1 1 1 1 1 1 4 1 1 1 4
## [1555] 4 2 1 1 2 2 4 1 4 4 2 1 2 4 1 4 1 1 1 1 3 1 1 1 3 3 2 4 3 3 2 1 1 3 3 3 2
## [1592] 3 4 1 2 1 2 4 1 3 1 3 3 1 4 1 3 1 1 1 1 1 1 1 1 1 3 3 1 3 1 3 1 1 2 2 3 2
## [1629] 2 1 2 2 1 2 1 3 1 1 1 4 2 3 2 2 2 3 1 4 4 4 2 2 4 2 2 3 3 3 3 1 1 3 1 4 1
## [1666] 4 3 3 3 1 1 1 1 1 3 1 3 1 2 3 2 2 1 2 4 2 2 1 2 1 2 2 2 2 3 3 3 4 1 1 3 3
## [1703] 2 3 3 1 1 1 1 2 1 1 2 3 2 1 2 2 2 2 1 2 1 1 4 2 4 2 1 4 2 4 2 4 2 2 2 4 2
## [1740] 2 1 4 2 1 1 4 2 1 2 2 2 2 4 2 2 4 1 2 1 4 4 4 2 1 1 1 2 1 1 2 2 2 2 4 2 2
## [1777] 1 1 4 2 2 2 3 2 1 4 2 2 2 2 2 1 2 4 1 2 4 4 1 2 2 2 1 2 4 2 1 2 2 2 2 1 1
## [1814] 4 4 1 2 4 2 4 2 4 4 4 4 4 2 3 1 3 4 2 2 3 3 3 3 2 2 3 3 3 3 3 3 3 3 3 3 3
## [1851] 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 1 3 1 3 3 3 3 3 3 1
## [1888] 3 3 3 3 3 3 1 1 3 1 3 3 3 3 2 4 4 4 2 4 2 2 4 2 2 2 4 4 4 1 2 2 4 2 2 4 3
## [1925] 3 3 1 3 3 2 3 3 3 1 3 3 3 3 3 1 1 1 1 3 1 1 2 1 3 3 2 1 1 2 3 3 3 3 3 3 3
## [1962] 3 3 3 3 3 1 3 1 3 1 1 1 1 1 1 1 1 3 3 3 1 1 1 1 3 3 3 2 3 3 3 1 1 2 2 2 3
## [1999] 1 1 3 2 1 3 2 3 1 3 1 1 1 1 4 2 1 1 1 1 1 1 1 3 3 3 1 1 4 1 1 1 1 4 1 2 2
## [2036] 2 2 1 2 3 4 3 2 1 1 1 1 4 4 2 1 4 2 4 3 1 1 1 3 1 1 1 1 1 2 1 1 1 2 4 3 1
## [2073] 2 3 3 1 1 1 3 1 1 1 1 3 3 3 3 1 3 1 1 1 1 1 3 1 2 3 1 1 1 3 1 3 3 3 1 3 3
## [2110] 3 3 1 1 3 1 3 2 1 1 3 3 1 1 1 2 3 2 1 1 2 3 1 3 3 3 1 3 3 3 2 3 3 2 3 1 3
## [2147] 2 3 1 3 3 3 1 3 3 2 3 2 2 1 3 1 1 3 1 1 1 1 1 1 1 3 1 3 1 1 1 1 3 3 1 3 1
## [2184] 1 1 1 1 3 1 1 1 3 3 2 2 3 3 3 1 1 1 1 3 1 1 1 1 2 1 1 2 3 3 3 3 3 3 3 3 3
## [2221] 3 3 3 1 3 3 3 3 3 3 1 1 3 3 3 3 1 3 3 3 3 3 1 1 3 1 3 3 1 1 3 1 3 3 3 1 3
## [2258] 3 1 3 3 3 1 3 3 3 3 1 1 1 1 3 1 1 1 1 3 1 1 1 1 3 3 3 1 3 3 3 3 3 3 3 3 1
## [2295] 1 1 3 3 2 1 1 3 3 1 3 3 3 2 1 1 3 3 3 3 3 3 3 1 3 3 3 3 3 1 1 3 3 3 1 3 3
## [2332] 3 3 3 3 2 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
## [2369] 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 1 1 3 1 3 3 3 3 3 1 3 3 1 1 3 1 1 3 3 1 3
## [2406] 3 3 1 3 3 3 1 3 3 3 3 3 1 3 3 1 3 1 1 3 3 1 1 4 1 1 1 1 1 3 1 3 3 3 3 3 3
## [2443] 2 3 3 1 1 2 3 2 3 3 3 3 3 1 3 1 3 1 3 3 3 1 3 3 3 3 1 3 1 1 3 3 1 1 3 3 2
## [2480] 1 3 3 3 3 1 1 1 3 3 1 1 1 1 2 1 2 3 3 1 4 2 1 2 1 3 3 3 1 2 3 1 2 1 2 2 1
## [2517] 1 2 2 2 2 1 1 2 3 1 2 3 3 3 4 3 3 3 2 3 3 3 2 2 4 3 2 3 2 2 3 3 3 3 3 2 2
## [2554] 3 3 4 3 1 3 3 1 1 3 3 1 1 3 4 1 1 3 3 1 1 3 1 3 3 3 3 3 1 3 3 1 3 3 3 1 3
## [2591] 3 3 3 2 3 3 3 3 2 1 1 1 3 3 3 3 3 3 3 3 3 1 1 1 3 3 1 1 1 3 3 1 3 3 3 2 2
## [2628] 3 3 2 1 1 1 2 3 3 3 3 3 3 1 3 1 1 1 3 1 1 1 1 2 3 2 3 1 1 1 2 1 1 2 1 2 2
## [2665] 1 1 3 2 1 3 1 3 3 3 1 2 1 2 3 3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 2 2 2 1 1 1 2
## [2702] 4 2 2 2 3 1 3 3 1 3 1 2 3 1 1 2 2 3 2 3 3 2 3 3 3 3 2 2 1 1 2 3 3 3 3 3 1
## [2739] 1 3 1 3 1 1 3 1 1 1 3 3 3 4 1 1 3 3 1 1 1 3 3 1 1 1 1 1 3 3 2 1 3 3 3 3 3
## [2776] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 4 3 1 1 1 1 1 1 3 3 1 3 3 1 3 1
## [2813] 3 1 3 1 1 1 1 1 1 3 2 3 2 3 1 2 1 2 1 3 1 1 1 1 2 1 1 2 2 1 2 1 1 1 1 1 2
## [2850] 2 1 2 2 2 2 3 3 2 3 1 3 2 3 3 1 3 2 3 3 1 1 3 2 2 2 3 3 1 2 3 3 3 3 3 3 3
## [2887] 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 3 1 3 3 1 1 3 1 3 3 1 1 1 2 3 1 3 1 1 1 3 1
## [2924] 1 3 2 3 2 2 1 2 1 1 2 2 1 1 3 3 3 2 2 1 3 3 3 1 3 3 1 3 1 2 2 1 3 1 3 1 2
## [2961] 1 3 1 1 1 1 1 1 4 1 1 2 1 3 2 2 1 2 3 1 3 4 1 1 1 1 4 3 3 4 2 1 1 1 2 1 1
## [2998] 1 1 1 1 3 1 1 2 2 1 1 3 3 3 1 3 1 3 1 3 3 1 1 3 3 3 3 1 3 1 3 1 1 1 2 3 1
## [3035] 3 3 1 2 1 3 3 1 1 3 2 3 3 1 3 3 3 3 3 1 1 1 1 3 1 3 3 1 3 3 1 3 3 2 3 3 3
## [3072] 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 3 1 3
## [3109] 3 1 3 3 3 3 3 3 3 1 1 1 3 3 1 3 1 3 3 3 1 3 3 3 3 1 3 3 1 3 3 3 3 2 1 1 3
## [3146] 1 3 3 3 3 3 3 1 1 2 3 3 3 4 3 3 2 3 3 3 3 3 3 1 1 3 3 1 3 3 3 3 1 3 3 1 3
## [3183] 3 3 3 3 3 3 1 3 1 1 1 1 4 1 1 2 3 2 1 1 1 2 3 3 2 3 3 3 3 2 1 3 1 1 1 1 1
## [3220] 1 4 1 4 1 3 3 1 2 2 2 3 3 1 1 2 3 1 1 1 1 1 1 2 3 3 3 3 3 1 3 2 3 3 3 3 3
## [3257] 3 2 3 3 3 3 3 3 3 1 1 1 3 3 1 1 4 3 3 3 3 3 1 1 1 3 2 1 1 1 1 1 2 4 1 1 2
## [3294] 2 2 4 2 2 1 3 1 2 1 2 2 2 2 2 2 1 2 4 4 1 2 4 2 2 2 1 1 1 2 1 2 1 2 1 2 4
## [3331] 1 1 2 3 1 1 2 3 3 3 1 1 3 3 3 1 3 3 3 3 3 3 1 3 1 3 3 3 3 1 1 3 3 3 3 3 3
## [3368] 3 3 3 3 1 4 2 2 2 1 2 1 2 4 1 2 2 1 2 4 4 2 3 3 3 2 3 3 1 3 3 1 1 1 1 1 1
## [3405] 3 2 4 3 3 3 1 3 3 1 1 1 1 3 3 1 1 1 1 3 2 1 3 3 1 3 1 3 3 3 1 3 1 1 3 3 3
## [3442] 3 1 1 3 1 1 3 1 3 3 1 3 3 3 3 3 3 1 3 3 2 2 2 3 1 3 1 3 3 3 2 3 1 1 1 1 3
## [3479] 1 2 1 1 1 3 1 1 2 1 2 3 1 1 1 3 3 2 3 1 3 1 2 2 3 1 2 1 3 1 3 1 1 1 1 2 1
## [3516] 3 1 1 1 1 1 1 3 1 2 2 2 1 2 3 3 1 1 3 3 3 3 3 3 3 3 3 3 1 1 1 3 3 1 3 2 3
## [3553] 3 1 1 1 3 3 1 1 1 3 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
## [3590] 3 3 3 3 3 3 1 3 1 1 3 3 3 3 1 3 3 3 3 3 3 3 3 3 1 1 3 1 3 3 3 3 3 3 1 1 3
## [3627] 1 1 1 3 1 1 3 3 3 3 3 1 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
## [3664] 1 3 3 3 1 1 1 1 1 1 3 1 1 1 1 1 3 1 1 1 1 3 1 3 3 1 3 3 1 1 1 1 1 3 1 3 1
## [3701] 1 3 3 3 3 1 1 3 3 1 1 3 3 1 1 1 3 3 1 3 1 1 1 1 1 2 1 3 3 3 3 1 1 3 1 3 1
## [3738] 1 3 1 3 1 3 1 1 1 1 1 3 3 1 1 1 1 1 1 2 1 3 1 3 2 1 1 1 3 1 2 1 1 2 3 3 3
## [3775] 1 3 1 1 1 2 1 1 3 3 1 1 1 3 1 1 3 3 2 1 3 1 4 3 3 1 3 1 1 3 1 3 3 3 3 3 1
## [3812] 3 3 3 1 1 1 1 3 3 3 3 3 1 1 1 1 1 3 3 3 3 1 3 4 1 1 3 3 1 1 3 3 3 3 3 1 3
## [3849] 3 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 3 3 1 1 1 1 1 1 1 1 2 3 1 3 1 3 3 3 3 3 3
## [3886] 1 3 1 3 1 1 3 3 3 1 3 1 3 3 3 1 3 3 3 3 3 3 3 1 1 3 2 3 1 1 1 3 3 3 3 3 1
## [3923] 1 3 3 3 3 1 1 3 3 1 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 1 3 3 1 3 3 3 3
## [3960] 3 3 1 3 1 1 2 1 3 3 3 1 3 2 3 1 3 3 1 1 1 3 3 1 1 1 1 3 3 3 3 3 3 1 3 3 1
## [3997] 1 3 3 1 3 1 1 1 1 3 1 1 1 1 1 3 1 1 1 1 3 3 1 1 1 1 3 1 1 3 1 1 3 3 3 1 3
## [4034] 3 3 1 1 4 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 1 1 3 3 3 3 1 3
## [4071] 3 3 3 3 3 3 1 1 3 1 1 1 3 1 3 1 3 3 1 3 1 1 3 3 1 1 3 3 3 3 3 3 3 3 3 1 1
## [4108] 3 3 3 1 1 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3
## [4145] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 1 3 3 3 3 1 1 3 3 1 3 1 3 3 1 3 1
## [4182] 2 3 3 3 3 3 3 3 1 1 3 1 3 3 3 3 3 1 3 1 1 1 3 1 2 2 3 4 1 3 3 1 1 1 2 1 3
## [4219] 1 1 2 1 3 1 1 3 2 1 1 4 4 1 1 1 2 1 1 3 3 1 2 1 1 4 4 3 2 2 2 1 3 3 1 1 2
## [4256] 1 2 1 3 1 2 1 1 1 3 1 1 1 1 1 2 2 1 2 1 4 1 1 3 1 1 1 1 1 1 1 3 3 3 1 1 1
## [4293] 3 1 2 2 2 1 2 1 2 1 1 2 1 1 1 1 4 4 1 1 1 1 3 2 1 2 4 1 2 4 2 2 2 1 1 3 2
## [4330] 2 1 1 2 2 2 1 1 1 2 2 3 1 2 1 1 1 3 2 2 1 3 1 1 1 1 1 2 3 1 1 1 3 3 3 3 3
## [4367] 3 3 3 3 3 3 3 3 3 1 1 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 2 1 1 3 1 3 3 3 3
## [4404] 3 3 3 3 3 1 1 3 3 3 3 3 3 3 1 1 1 1 1 3 1 3 3 3 1 1 3 3 3 1 3 3 3 3 3 3 3
## [4441] 3 3 3 3 3 3 1 1 1 2 3 3 2 1 1 2 1 2 1 3 1 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3
## [4478] 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 1 3 3 3 3 3 3 1 3 3 1 3 3 3 3 3 3 3
## [4515] 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 4 2 3 3 3 3 3 3 3 3 2 1 2
## [4552] 1 1 1 4 1 3 1 1 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 4 1 1 1
## [4589] 3 1 1 3 1 1 2 3 1 1 1 1 1 1 4 1 1 4 1 4 3 3 3 3 3 1 3 1 3 1 3 1 1 3 1 3 1
## [4626] 3 1 3 3 3 1 1 1 4 1 3 3 3 3 3 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 1 3 1 3 3 3 1
## [4663] 3 3 1 3 3 3 3 3 1 3 3 3 3 4 1 3 1 4 4 4 1 4 4 2 1 1 4 1 1 2 1 2 1 1 2 1 1
## [4700] 1 3 4 2 3 2 1 1 3 3 4 4 1 1 2 1 4 4 1 2 1 4 2 2 1 1 1 1 4 2 1 3 1 2 1 1 1
## [4737] 3 1 1 1 4 4 1 1 2 4 1 1 1 2 1 4 1 2 2 1 2 4 3 1 2 4 4 3 2 4 4 4 2 4 4 4 3
## [4774] 3 3 1 4 2 2 4 3 1 1 3 1 3 1 1 2 1 3 3 3 1 2 4 3 1 4 1 3 1 1 4 1 1 2 1 1 1
## [4811] 4 1 4 1 4 1 1 4 2 1 4 2 1 2 1 2 1 3 4 1 4 4 1 3 3 1 3 3 1 1 1 1 1 3 3 1 3
## [4848] 3 3 3 1 1 1 3 1 3 3 3 1 1 3 1 3 1 1 1 1 1 3 1 1 1 3 2 3 1 1 1 1 1 3 3 1 1
## [4885] 3 3 3 3 1 1 3 2 3 3 3 3 1 1 3 3 3 1 3 3 3 3 3 3 3 1 1 1 3 1 1 1 1 1 1 1 1
## [4922] 1 1 2 1 1 1 1 2 2 3 3 3 3 1 3 3 3 1 1 2 1 2 4 4 4 1 1 3 3 3 3 3 3 3 3 3 3
## [4959] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 1 1 1 1 2 2 1 3 3 3 3 3 3 3 3 2 3 3 3 2
## [4996] 2 1 2 1 1 2 1 2 2 2 3 3 1 3 1 1 1 3 3 1 3 3 2 3 2 2 4 4 4 2 4 1 4 2 4 1 4
## [5033] 1 4 1 1 2 3 1 4 1 4 2 4 4 1 1 2 2 4 1 1 4 4 4 4 4 1 4 2 1 4 1 2 4 4 2 4 1
## [5070] 2 1 2 4 1 2 4 1 1 4 4 2 2 2 2 4 2 2 1 2 2 1 4 1 2 2 1 1 1 2 2 2 2 2 1 1 4
## [5107] 4 4 4 1 4 1 2 2 2 2 4 1 2 4 2 1 2 2 4 4 4 4 2 2 1 2 2 4 1 2 2 4 1 2 1 2 1
## [5144] 2 4 4 4 4 2 1 4 4 2 4 4 2 2 2 4 4 2 4 1 1 1 2 2 1 4 1 4 4 4 4 2 4 2 2 4 1
## [5181] 1 2 1 2 1 2 1 3 1 3 1 1 1 1 1 2 2 2 1 2 2 1 2 4 4 1 4 1 2 1 2 1 2 4 4 2 3
## [5218] 2 3 2 2 2 2 1 2 1 1 2 2 2 1 1 1 1 2 1 1 1 2 2 1 1 1 2 2 1 1 1 1 1 1 3 2 2
## [5255] 1 2 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 2 4 2 2 2 2 1 2 2 2 2
## [5292] 2 1 2 1 4 1 2 1 2 1 2 1 4 4 2 4 4 1 4 4 4 2 4 4 4 4 1 2 1 2 2 1 1 2 2 4 4
## [5329] 2 1 1 1 4 2 4 1 1 2 4 1 4 4 4 1 1 2 4 2 4 2 4 2 2 2 2 2 2 2 4 4 4 2 2 2 2
## [5366] 2 1 2 4 1 2 1 1 2 4 4 4 4 2 2 4 4 2 2 4 4 2 4 4 2 4 1 1 2 4 2 2 2 2 2 1 2
## [5403] 4 2 2 2 2 1 4 2 2 1 2 2 2 1 4 2 1 4 4 4 2 2 2 1 4 4 4 1 1 4 1 4 4 4 4 2 4
## [5440] 4 2 4 4 2 2 2 2 4 2 1 4 2 2 2 2 4 2 2 2 2 2 2 2 4 1 1 1 1 2 2 1 1 1 2 2 1
## [5477] 4 4 2 2 2 4 2 4 2 1 2 2 2 4 4 1 2 1 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 2 3 1
## [5514] 3 3 1 1 3 3 3 3 1 2 3 3 3 3 3 1 3 3 3 1 1 1 1 1 3 2 1 2 1 1 1 2 2 1 1 1 4
## [5551] 3 3 1 2 1 1 3 1 1 3 3 3 3 3 1 1 1 1 3 2 3 1 1 3 3 3 3 3 3 3 3 3 2 3 1 3 3
## [5588] 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 3 3
## [5625] 3 3 3 3 3 1 3 1 3 3 3 3 3 3 3 1 1 3 3 1 3 3 3 3 1 3 3 3 3 3 1 1 2 3 1 1 3
## [5662] 3 3 3 3 3 3 1 3 1 1 3 2 1 3 3 3 3 3 3 3 3 2 3 3 3 1 1 2 1 3 2 3 1 3 3 3 3
## [5699] 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 1 3 3 3 3 3 3 1
## [5736] 3 3 1 1 1 1 3 1 1 1 1 1 1 4 3 3 3 3 3 1 1 3 1 3 3 3 3 3 3 3 1 1 3 3 1 3 1
## [5773] 3 3 3 3 1 3 1 1 1 1 1 1 1 1 2 1 1 1 1 1 3 3 1 1 1 3 3 3 3 3 3 3 3 1 1 3 1
## [5810] 3 3 1 3 3 3 3 1 3 3 3 3 3 1 3 3 3 2 3 1 3 2 3 3 1 3 3 3 3 3 3 1 3 3 3 3 1
## [5847] 3 1 3 3 3 3 1 3 1 3 4 3 3 3 1 2 4 1 2 4 1 4 1 2 2 3 1 1 1 1 3 2 1 2 1 3 3
## [5884] 1 1 3 3 3 2 3 3 3 3 1 3 3 3 1 1 3 2 1 1 1 3 1 3 3 1 1 1 3 2 1 1 1 3 2 1 1
## [5921] 1 1 2 1 1 1 3 1 3 1 1 1 1 3 3 1 1 3 3 1 1 1 1 1 1 1 3 1 3 1 1 1 2 1 4 1 1
## [5958] 1 3 1 3 1 1 1 1 1 3 1 1 1 1 2 1 2 1 1 3 1 1 1 1 1 1 1 1 1 2 3 1 1 1 1 1 1
## [5995] 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 3 1 3 3 3 1 3 3 4 1 3 3 1 2 3 3 3 2 1 2 1 3
## [6032] 1 1 2 1 1 2 2 1 2 3 1 3 3 3 2 2 2 4 3 3 1 3 3 3 3 1 3 3 2 2 1 1 1 1 1 1 1
## [6069] 1 1 4 3 4 1 4 3 3 3 3 3 1 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [6106] 3 3 3 1 3 3 1 3 3 1 3 3 3 3 3 3 1 1 2 2 1 1 3 1 3 3 1 1 1 3 3 1 1 1 3 3 3
## [6143] 1 3 1 3 1 1 1 1 3 3 1 3 3 3 3 1 3 1 1 2 1 1 3 2 1 1 3 2 1 1 3 1 1 1 1 1 1
## [6180] 2 1 3 1 1 1 1 1 3 1 1 1 1 2 1 2 2 1 3 1 1 3 1 1 1 3 2 1 2 1 1 1 2 2 2 1 2
## [6217] 3 3 3 1 3 3 3 2 1 2 1 4 2 2 2 2 2 2 2 4 1 1 2 2 2 2 2 3 1 4 2 3 1 1 1 1 2
## [6254] 2 1 1 2 1 4 1 2 2 1 2 1 2 1 1 4 1 2 3 2 1 3 2 3 2 2 1 2 1 2 2 1 2 2 1 1 2
## [6291] 1 1 2 1 2 2 3 3 2 1 2 1 4 4 2 3 2 2 2 3 2 1 4 2 2 2 3 3 1 2 2 2 1 4 4 2 1
## [6328] 1 1 1 1 4 1 4 1 1 1 3 4 3 1 2 4 4 4 4 2 4 1 1 1 4 2 4 4 4 2 1 4 1 2 1 4 4
## [6365] 3 1 1 2 3 1 1 4 3 1 2 4 2 4 1 2 2 4 2 4 2 2 2 2 2 2 1 1 4 1 1 1 4 4 1 2 2
## [6402] 1 4 4 1 1 1 2 2 2 1 4 1 2 4 4 1 2 2 2 2 2 1 3 4 1 1 2 1 1 1 2 2 1 2 1 3 2
## [6439] 1 2 2 1 1 1 4 1 2 2 1 1 1 1 2 2 1 2 1 4 1 1 4 3 2 2 1 2 1 1 4 4 2 4 2 1 2
## [6476] 1 1 2 2 2 1 1 2 2 4 4 4 1 2 4 2 4 3 4 4 4 4 2 4 1 2 2 2 4 4 2 4 2 4 4 2 4
## [6513] 4 4 1 4 2 2 1 4 4 4 1 4 4 1 2 1 4 2 1 4 2 2 2 4 4 4 1 4 4 3 1 1 2 2 4 2 2
## [6550] 1 4 4 1 1 1 1 1 1 2 2 2 2 2 1 4 1 2 2 2 2 1 2 2 4 4 1 2 4 1 4 4 1 1 2 1 4
## [6587] 2 1 3 1 2 2 4 2 2 2 2 2 4 1 3 4 1 4 2 4 4 1 1 2 2 2 2 1 1 4 2 1 2 1 1 4 2
## [6624] 4 1 2 4 1 4 1 2 4 1 3 1 1 3 1 2 3 3 3 3 1 4 3 3 1 1 1 3 3 3 3 1 1 1 3 3 3
## [6661] 3 3 1 1 1 3 2 3 2 1 3 3 3 3 1 3 3 3 3 3 3 1 1 3 3 2 3 2 4 4 4 1 2 2 2 2 2
## [6698] 4 1 1 2 2 4 2 3 3 2 1 3 2 2 1 2 2 2 3 2 2 1 1 2 2 1 1 2 3 2 2 1 2 1 1 3 1
## [6735] 3 1 1 1 1 1 3 4 1 1 1 4 1 1 1 1 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [6772] 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
## [6809] 3 3 3 3 1 4 3 3 3 1 1 3 1 3 2 3 3 3 3 1 3 3 1 2 1 2 2 3 1 2 3 1 1 3 3 1 1
## [6846] 3 3 1 1 3 1 1 1 3 1 3 3 1 3 1 1 1 1 3 1 3 1 1 1 1 1 1 2 1 3 2 2 1 1 1 1 3
## [6883] 1 1 2 3 1 1 1 3 3 3 3 1 1 3 1 3 2 3 3 3 3 3 1 1 1 1 1 3 3 1 3 1 1 1 3 3 2
## [6920] 1 1 1 3 1 1 1 1 2 1 3 2 3 4 1 3 3 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [6957] 3 3 3 3 3 3 3 3 3 3 3 1 2 1 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3
## [6994] 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 3
## [7031] 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 3 3 3 3 3
## [7068] 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 3 3 1 3 1 3 3 3 3 3 3 3
## [7105] 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 1 3
## [7142] 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 2 2 1 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 3 3 3 3
## [7179] 3 3 1 3 1 3 1 2 3 3 3 3 1 3 1 1 3 3 3 3 3 3 2 3 1 3 3 1 1 3 1 3 3 3 3 3 3
## [7216] 3 2 1 3 3 3 3 3 1 3 3 3 3 3 3 1 2 3 3 3 3 3 3 3 3 3 1 1 3 3 3 3 3 1 3 3 3
## [7253] 3 1 3 3 2 2 1 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3 3 3
## [7290] 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 3 3 3 3 3
## [7327] 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 1 3 1 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [7364] 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 1 3 3
## [7401] 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 1 3 1 3 3 1
## [7438] 1 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 3 3 3 3 3 3
## [7475] 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 3 3 1 1
## [7512] 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 3 3 3 3 3
## [7549] 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
## [7586] 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 1 3 3 3 3 3 3 3 3 3 3 3
## [7623] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 1 3 3 3 3 3 1 3 3 3 3 3 3 3
## [7660] 3 3 3 3 1 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 1 1 1 3 1
## [7697] 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 3 1 3 3 3 3 3 3
## [7734] 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 1 3 1 3 3 3 3 3 3 3 3 1
## [7771] 3 3 3 3 1 3 3 3 3 3 3 3 1 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3
## [7808] 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 1 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3
## [7845] 3 3 3 3 3 1 3 3 3 3 1 3 3 1 1 3 3 1 1 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3
## [7882] 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
## [7919] 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 2 4 1 2 2 3
## [7956] 1 2 2 4 3 3 1 1 3 1 1 3 3 3 3 3 3 3 3 3 1 1 1 1 1 3 3 3 3 3 1 1 3 3 3 1 3
## [7993] 3 3 3 3 2 1 3 2 3 2 3 3 3 3 3 3 2 1 1 1 3 3 4 1 3 3 3 2 1 3 1 2 1 1 3 3 3
## [8030] 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
## [8067] 3 1 3 3 3 3 2 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
## [8104] 3 3 3 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 3 3 3 1 3 1 1 1 1
## [8141] 1 1 1 1 3 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 4 3 3 3 2 1 3 3 3 3 3 3
## [8178] 1 3 1 3 3 3 3 3 3 3 3 3 1 3 3 3 1 3 3 3 3 2 3 1 3 3 3 3 1 3 3 1 1 3 3 3 1
## [8215] 2 3 1 1 3 3 2 1 2 4 1 2 3 3 3 3 3 3 3 3 1 1 3 3 1 3 3 3 1 1 3 3 2 2 1 1 3
## [8252] 1 3 3 1 4 2 3 3 3 3 2 1 1 2 1 1 2 2 1 1 1 1 3 1 1 1 3 3 3 3 3 1 4 3 3 3 1
## [8289] 1 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 1 3 3 3 3 1 3 1 1 2 4 1 4 2 1 3 3 3

Agregar Clusters al Data Frame Original

vivienda$cluster <- kmeans_res$cluster

Visualización de Clusters

# Visualizar los clusters en las dos primeras componentes principales
fviz_cluster(kmeans_res, data = vivienda_pca)

Diagrama de Cajas y bigotes por cada Cluster de acuerdo al precio del inmueble

# Cargar la librería necesaria
library(ggplot2)

# Crear el diagrama de cajas
ggplot(vivienda, aes(x=factor(cluster), y=preciom, fill=factor(cluster))) +
  geom_boxplot() +
  labs(x="Cluster", y="Precio del Inmueble", fill="Cluster") +
  theme_minimal() +
  theme(axis.title=element_text(size=12), 
        axis.text=element_text(size=10))

  1. Diferencias en la Mediana de Precios:

    • Cada caja (o “box”) representa la mediana y la distribución intercuartílica (IQR) de los precios en cada cluster.

    • Los clusters muestran diferencias claras en la mediana de precios, lo cual sugiere que el algoritmo de clustering ha agrupado las propiedades en segmentos con diferentes niveles de valor de mercado.

  2. Variabilidad de Precios:

    • La longitud de las cajas indica la variabilidad o dispersión de los precios dentro de cada cluster. Un cluster con una caja más larga tiene precios más variados.

    • El Cluster 4 muestra la mayor variabilidad en precios, mientras que el Cluster 3 parece tener la menor.

  3. Valores Atípicos:

    • Los puntos negros representan valores atípicos, es decir, precios de inmuebles que caen fuera del rango típico (más allá de 1.5 veces el IQR desde la caja).

    • Los Clusters 1 y 2 tienen algunos valores atípicos, indicando la presencia de propiedades con precios que son inusualmente altos o bajos comparados con el resto del cluster.

  4. Comparación de Rangos de Precios:

    • El Cluster 1 parece tener los precios más bajos, con la mediana más baja y sin valores atípicos por encima del bigote superior.

    • El Cluster 2 tiene precios ligeramente más altos que el Cluster 1, pero con menos variabilidad.

    • El Cluster 3 tiene precios más bajos en comparación con los Clusters 2 y 4, y presenta poca variabilidad.

    • El Cluster 4 destaca por tener tanto la mediana más alta como la mayor variabilidad de precios, y una cantidad significativa de valores atípicos, sugiriendo que este cluster podría contener propiedades de lujo o ubicadas en áreas de alta demanda.

  5. Implicaciones Estratégicas:

    • Si estos clusters representan segmentos del mercado, la empresa inmobiliaria podría personalizar estrategias de marketing y precios para cada segmento.

    • Por ejemplo, podrían enfocarse en el Cluster 4 para clientes de alto poder adquisitivo, mientras que el Cluster 1 podría ser más adecuado para compradores con presupuestos más ajustados.

Este análisis puede ayudar a la empresa inmobiliaria a entender mejor la estructura del mercado y a diseñar estrategias que se alineen con las características y expectativas de cada segmento de clientes.

Diagrama de Cajas y bigotes por cada Cluster de acuerdo al estrato

ggplot(vivienda, aes(x=factor(cluster), y=estrato, fill=factor(cluster))) +
  geom_boxplot() +
  labs(x="Cluster", y="ESTRATO", fill="Cluster") +
  theme_minimal() +
  theme(axis.title=element_text(size=12), 
        axis.text=element_text(size=10))

  1. Variabilidad entre grupos: Los cuatro grupos mostrados tienen medianas diferentes, lo que sugiere variaciones en la centralidad de los datos entre los grupos. Esto puede indicar diferencias significativas en la variable ‘ESTRATO’ entre los clusters.

  2. Consistencia interna: El cluster 1 y el cluster 3 tienen una variabilidad interna similar, como se indica por el tamaño de las cajas, que representan el rango intercuartílico (IQR). Esto sugiere una dispersión de datos similar dentro de estos dos clusters.

  3. Posibles valores atípicos: Hay puntos individuales representados fuera de las cajas en los clusters 1, 3 y 4. Estos puntos podrían ser valores atípicos y podrían requerir una investigación adicional para entender su naturaleza y si representan errores de datos o variabilidad natural.

  4. Tendencia central: La línea dentro de cada caja indica la mediana de cada cluster. El cluster 2 tiene la mediana más alta, lo que indica que su valor central es superior al de los otros clusters. El cluster 4 tiene la mediana más baja, lo que sugiere que es el grupo con la valoración más baja en ‘ESTRATO’.

Análisis de Correspondencia 

Preparar los Datos

# Verificar los cambios
# Asegúrate de que las variables son factores
tipo <- as.factor(vivienda$tipo)
zona <- as.factor(vivienda$zona)
barrio <- as.factor(vivienda$barrio)
str(vivienda)
## spc_tbl_ [8,322 × 14] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ id          : num [1:8322] 1147 1169 1350 5992 1212 ...
##  $ zona        : int [1:8322] 4 4 4 5 2 2 2 2 2 2 ...
##  $ piso        : int [1:8322] 2 2 2 2 1 1 1 1 2 2 ...
##  $ 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        : int [1:8322] 2 2 2 2 1 1 1 1 2 2 ...
##  $ barrio      : int [1:8322] 1 1 1 2 3 3 3 3 3 3 ...
##  $ 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 ...
##  $ cluster     : int [1:8322] 3 3 1 1 3 3 3 3 3 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>

Ejecutar el Análisis de Correspondencia Multiples

tabla <- table(vivienda$zona, vivienda$estrato)
tabla # Tabla cruzada
##    
##        3    4    5    6
##   1  105   14    4    1
##   2  572  407  769  172
##   3   54   84  290  770
##   4  340    8    2    1
##   5  382 1616 1688 1043
chisq.test(tabla)
## 
##  Pearson's Chi-squared test
## 
## data:  tabla
## X-squared = 3831.8, df = 12, p-value < 2.2e-16

Visualización de los Resultados

ac <- CA(tabla) # Gráfico

  1. Dominio de la Dimensión 1:

    • La primera dimensión (Dim 1) explica un gran porcentaje de la variabilidad (69.97%), lo que sugiere que es el factor más significativo en la diferenciación entre las zonas.
  2. Distribución de las Zonas:

    • Las zonas están distribuidas a lo largo de la Dimensión 1, lo que podría significar que esta dimensión captura un gradiente importante, como tal vez el nivel socioeconómico, la densidad poblacional, o algún otro factor geográfico o de mercado que varía de una zona a otra.
  3. Relación entre Zonas:

    • Las zonas Centro y Oriente están más cercanas entre sí en comparación con las otras zonas, lo que puede indicar que comparten características similares o que hay patrones de oferta de vivienda similares entre estas áreas.

    • Las zonas Sur y Oeste también están más cercanas entre sí en relación con la Dimensión 1, lo que podría indicar una relación o similitud entre estas zonas.

  4. Contraste entre Zonas:

    • La Zona Norte está ubicada cerca del origen en la Dimensión 1, lo que sugiere que podría tener características medias o menos extremas en comparación con las demás zonas en el factor que captura esta dimensión.
  5. Influencia de la Dimensión 2:

    • Aunque la Dimensión 2 explica menos variabilidad (27.68%), hay una distinción clara entre la Zona Oeste y las demás zonas en esta dimensión. Esto podría significar que hay una segunda característica o conjunto de características que diferencian a la Zona Oeste de las demás.
  6. Implicaciones para la Empresa Inmobiliaria:

    • Si estas dimensiones reflejan factores como el precio, el tipo de propiedad, o el deseo del mercado, la empresa inmobiliaria podría utilizar esta información para ajustar su enfoque de marketing y ventas en cada zona.

    • La empresa podría considerar desarrollar estrategias personalizadas para cada zona basándose en cómo se agrupan en el mapa de factores.

fviz_screeplot(ac, addlabels = TRUE, 
               ylim = c(0, 80))+ggtitle("")+
  ylab("Porcentaje de varianza explicado") + xlab("Ejes")

  1. Dominancia del primer factor: Al igual que en el PCA, el primer factor en un análisis de correspondencias es el que captura la mayor parte de la inercia (una medida similar a la varianza en PCA). En este caso, el primer factor explica el 70% de la inercia total, lo que indica que es la dimensión más informativa para entender las relaciones entre las categorías.

  2. Decremento de la inercia explicada: El segundo factor explica el 27.7% de la inercia, lo cual es significativamente menor que el primer factor, pero aún puede contener información valiosa sobre las relaciones entre las categorías.

  3. Contribución mínima del tercer factor: El tercer factor contribuye solo con un 2.4% a la inercia explicada. Este factor podría ser menos relevante para interpretar las relaciones entre las categorías y en algunos casos puede ser excluido para simplificar el modelo.

  4. Simplificación del modelo: En el análisis de correspondencias, a menudo se seleccionan solo los primeros factores más significativos para la interpretación y la visualización. Este gráfico sugiere que, para una simplificación efectiva, se podrían considerar principalmente el primer y segundo factor, ya que explican casi el 98% de la inercia total.