Introducción

Citando a la revista semana en uno de sus artículos “Santiago de Cali es considerada una de las ciudades principales de Colombia, y oficialmente Distrito especial, deportivo, cultural, turístico y empresarial. Es la tercera metrópoli más poblada del país, además de ser un gran centro económico, razón por la que es tan apetecida para considerarla como residencia permanente.”[1] En 2022 Cali tuvo un aumento en su oferta inmobiliaria, principalmente la usada y en arrendamiento. Esto se nota en un aumento significativo en las búsquedas de vivienda en Cali entre 2021 y 2022[2]. Con el fin de aprovechar el incremento en la oferta inmobiliaria el siguiente informe se analiza la distribución de la finca raíz disponible y donde se encuentran las oportunidades de inversión más favorables.

Preparación de datos

El primer cambio que se hace a los datos es convertir el atributo piso de tipo de dato carácter a número entero.

## Warning: package 'broom' was built under R version 4.4.2
## Warning: package 'gridExtra' was built under R version 4.4.2
## Warning: package 'knitr' was built under R version 4.4.2
##           id         zona         piso      estrato      preciom    areaconst 
##    "numeric"  "character"    "integer"    "numeric"    "numeric"    "numeric" 
## parqueaderos       banios habitaciones         tipo       barrio     longitud 
##    "numeric"    "numeric"    "numeric"  "character"  "character"    "numeric" 
##      latitud 
##    "numeric"

Se revisa la cantidad de faltantes por atributo y se ve que la mayoría está en piso y parqueaderos.

Campos vacios
id 3
zona 3
piso 2638
estrato 3
preciom 2
areaconst 3
parqueaderos 1605
banios 3
habitaciones 3
tipo 3
barrio 3
longitud 3
latitud 3

Para arreglar el problema de piso primero se separó los registros que pertenecían a casa y apartamento. Los registros con Casa y piso NA fueron cambiados por 1; se consideró que la variable piso representa el piso donde se encuentra el inmueble, no la cantidad de pisos construidos para que tenga sentido tanto para casas como apartamentos, por esto se decidió que todas las viviendas tipo casa tienen piso 1. Para los apartamentos se midió la media de los apartamentos según la zona y el estrato, con el valor de cada una de esas combinaciones se reemplazó los NA en cada apartamento según su clasificación. Para los parqueaderos lo primero que se notó es que los valores van desde 1 hasta 5, lo que es incongruente con la realidad porque hay muchas viviendas que no tienen parqueadero independente que sean casas o apartamentos, por esto se decidió tomar los NA como 0 para representar las viviendas que no tienen parqueadero propio.

Campos vacios
id 3
zona 3
piso 4
estrato 3
preciom 2
areaconst 3
parqueaderos 0
banios 3
habitaciones 3
tipo 3
barrio 3
longitud 3
latitud 3

Después se encontraron otros registros sin valores, pero la cantidad era menor del 4% del total de los registros por lo que se eliminaron de la base.

Campos vacios
id 0
zona 0
piso 0
estrato 0
preciom 0
areaconst 0
parqueaderos 0
banios 0
habitaciones 0
tipo 0
barrio 0
longitud 0
latitud 0

Análisis de componentes principales

Se va a hacer un análisis de componentes principales de los atributos numéricos de la base de datos, en este caso se consideran los atributos: piso, estrato, precio en millones de pesos (preciom), área construida (areaconst), parqueaderos y baños (banios).

## Warning: package 'factoextra' was built under R version 4.4.2

En la gráfica anterior se puede ver el porcentaje de la varianza explicada por cada una de las nuevas dimensiones, si tomamos la suma de las dos primeras dimensiones se puede explicar el 72.4% de la varianza de los atributos.

Al ver como contribuye cada atributo a cada dimensión vemos que en la dimensión 1 los baños, área y por último el precio mientras que la dimensión 2 tiene la mayor contribución del atributo piso y un poco por las habitaciones. La dimensión 3 se ve afectada tambien por el piso y habitaciones pero de manera mas equilibrada, la dimensión 4 por parqueaderos y area construida y la última dimensión por los baños y área construida.

Como las dos primeras dimensiones son las que permiten explicar el mayor porcentaje de los atributos y tienen contribución de todos los atributos entre ambas se toman las dimensiones 1 y 2 para el análisis.


En la gráfica de variables PCA encontramos las siguientes relaciones entre los atributos:
- El precio de las viviendas tiene una relación casi lineal positiva con la cantidad de parqueaderos.
- El precio de las viviendas tiene una relación ligeramente positiva con la cantidad de baños y el área construida.
- El piso es independiente del precio de la vivienda.
- La cantidad de habitaciones afecta al precio del inmueble pero es el atributo que tiene menos influencia.
- El área construida de las viviendas tiene una relación casi lineal positiva con la cantidad de baños y en menor medida por la cantidad de habitaciones.
- El piso tiene una relación muy débil con el área construida, pero es el único atributo con una relación negativa.

En la gráfica anterior se graficaron todos los individuos del conjunto de datos sobre el nuevo plano creado con las dos nuevas dimensiones con puntos negros, sobre los individuos se proyectan líneas rojas que muestran los atributos y como los individuos se relacionan con estos.
Para ver como los individuos están relacionados con las líneas de cada atributo se van a tomar 4 casos en los extremos de las líneas de piso, precio, área y habitaciones.

Información de Viviendas
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
Vivienda 3682 2643 Zona Norte 11 5 420 104 2 2 0 Apartamento la flora -76.52119 3.49008
Vivienda 5179 7505 Zona Sur 2 6 1600 330 10 5 3 Casa pance -76.55000 3.33500
Vivienda 5483 5396 Zona Sur 1 6 1600 1600 3 6 6 Casa parcelaciones pance -76.53621 3.34642
Vivienda 585 4597 Zona Sur 1 3 470 366 0 10 10 Casa bretaña -76.53200 3.42800

Análisis de conglomerados

Se va a hacer un análisis de conglomerados de las variables cualitativas Zona, Estrato y Tipo de vivienda.
Primero se preparan los atributos nominales codificándolos en forma numérica mientras que el estrato no se modifica porque su representación ya es numérica. Después se juntan la nueva representación de los datos un dataframe.

## Warning: package 'StatMatch' was built under R version 4.4.2
## Warning: package 'survey' was built under R version 4.4.2
## Warning: package 'lpSolve' was built under R version 4.4.2
##   Estrato zonaZona Centro zonaZona Norte zonaZona Oeste zonaZona Oriente
## 1       3               0              0              0                1
## 2       3               0              0              0                1
## 3       3               0              0              0                1
## 4       4               0              0              0                0
## 5       5               0              1              0                0
## 6       5               0              1              0                0
##   zonaZona Sur tipoApartamento tipoCasa
## 1            0               0        1
## 2            0               0        1
## 3            0               0        1
## 4            1               0        1
## 5            0               1        0
## 6            0               1        0

Después de busca la cantidad de clústeres usando el método del codo y la silueta. El método del codo muestra 4 mientras que la silueta muestra 9. Las pruebas posteriores mostraron que 4 es una cantidad muy baja y 9 deja muchos clústeres con pocos individuos. Se tomó 8 como el número más efectivo.

Se hace el clustering de los datos y se añade a la fuente de datos original.

## # A tibble: 6 × 5
##   zona         estrato tipo        barrio      Cluster
##   <chr>          <dbl> <chr>       <chr>       <fct>  
## 1 Zona Oriente       3 Casa        20 de julio 2      
## 2 Zona Oriente       3 Casa        20 de julio 2      
## 3 Zona Oriente       3 Casa        20 de julio 2      
## 4 Zona Sur           4 Casa        3 de julio  2      
## 5 Zona Norte         5 Apartamento acopi       5      
## 6 Zona Norte         5 Apartamento acopi       5

Se hace la grafica para mostrar el comportamiento de los datos en cada cluster

Se ve que los clústeres 4 y 2 se sobreponen en gran cantidad de sus valores mientras que el 3 y 7 son cercanos, pero no se tocan mientras que el 5 se sobrepone a ambos. Mientras que el 1, 6 y 7 no se sobreponen con nadie y son los que menos valores agrupan.

##   Group.1       zona  estrato        tipo
## 1       1   Zona Sur 5.309030 Apartamento
## 2       2   Zona Sur 3.493438        Casa
## 3       3 Zona Norte 3.359649 Apartamento
## 4       4   Zona Sur 5.493416        Casa
## 5       5 Zona Oeste 5.530429 Apartamento
## 6       6 Zona Oeste 5.500000        Casa
## 7       7 Zona Norte 4.053973        Casa
## 8       8   Zona Sur 3.852097 Apartamento
##               
##                   1    2    3    4    5    6    7    8
##   Zona Centro     0   98   14    2    3    0    0    7
##   Zona Norte      0    0  583   55  615    0  667    0
##   Zona Oeste      0   51   29    0  942  118    0   58
##   Zona Oriente    0  288   58    1    1    0    0    2
##   Zona Sur     1495  706    0 1233    0    0    0 1292
##    
##        1    2    3    4    5    6    7    8
##   3    0  579  438    0    0    0  235  201
##   4    0  564  246    0    0    0  161 1158
##   5 1033    0    0  654  733   59  271    0
##   6  462    0    0  637  828   59    0    0
##              
##                  1    2    3    4    5    6    7    8
##   Apartamento 1495    0  684    0 1561    0    0 1359
##   Casa           0 1143    0 1291    0  118  667    0

Revisando las tablas de cada clúster se puede ver por qué se sobreponen, por ejemplo, los clústeres 2 y 4 tienen la zona sur como la más representativa y también el tipo de vivienda, su diferencia se da en que los estratos difieren. En el caso de los clústeres 3,5 y 8 tienen en común que el tipo de vivienda más representativa es el apartamento.

Análisis de correspondencia

Se va a analizar las relaciones entre los atributos zona, tipo de vivienda y barrio. Primero se va a ver la relacion entre tipo de vivienda y zona ya que el barrio es un dato que se deriva de la zona.

## Warning: package 'FactoMineR' was built under R version 4.4.2
## Warning: package 'FactoClass' was built under R version 4.4.2
## Warning: package 'ade4' was built under R version 4.4.2
## Warning: package 'ggrepel' was built under R version 4.4.2

##               
##                Apartamento  Casa
##   Zona Centro        19.35 80.65
##   Zona Norte         62.40 37.60
##   Zona Oeste         85.89 14.11
##   Zona Oriente       17.43 82.57
##   Zona Sur           58.97 41.03
## Apartamento        Casa 
##   0.6130079   0.3869921

Se puede ver que en la zona centro y oriente las casas ocupan cerca el 80% de las viviendas, en la única zona donde esto es contrario es en la zona oeste. En las demás zonas la distribución es equilibrada.

##               
##                Apartamento  Casa
##   Zona Centro         0.47  3.11
##   Zona Norte         23.49 22.43
##   Zona Oeste         20.18  5.25
##   Zona Oriente        1.20  8.98
##   Zona Sur           54.66 60.24
##  Zona Centro   Zona Norte   Zona Oeste Zona Oriente     Zona Sur 
##   0.01490743   0.23082472   0.14402501   0.04207742   0.56816542

En la gráfica vemos que tanto los apartamentos como las casas tienen una distribución mayor en el sur, esa zona representa casi el 50% en ambos tipos de vivienda. En los apartamentos la zona norte y oeste tienen una distribución casi igual. Mientras que las casas tienen un porcentaje considerable en el norte y en el resto de zonas la proporción ya es menor.

Se hace la prueba de chi cuadrado para cada combinación de zona, barrio y tipo. En cada caso no se cumple la Ho: ambos atributos son independientes.
Se hizo el análisis de correspondencia creando una tabla con la combinación de los atributos y usando la funciona CA (tabla). Pero solo se dieron resultados para la combinación barrio - zona. Esto se da porque las demás combinaciones no generan la suficiente varianza para generar el análisis.

## Warning in chisq.test(tabla): Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  tabla
## X-squared = 29363, df = 1740, p-value < 2.2e-16

Al final se genera esta grafica que muestra la relación de cada barrio con la zona pero no genera mucho valor porque el barrio se puede derivar de la zona.

Conclusiones

Usando las diferentes herramientas de análisis de datos se pueden conseguir insights que normalmente no serían posible. - Aprovechando las gráficas generadas con PCA se pueden buscar viviendas que tiendan a ciertos atributos según su distancia al centro de la gráfica y que tan cerca estén de la línea que representa el atributo a buscar. Haciendo más fácil encontrar casos anómalos donde se tenga una casa de gran área, pero bajo costo o que tienda a tener más habitaciones que baños.
- Con las gráficas de clustering se pueden buscar que grupos de individuos son más grandes y comparten con otros grupos, permitiendo planear estrategias que abarquen la mayor cantidad de ofertas de vivienda o al contrario ver porque hay grupos tan pequeños que no comparten con los demás individuos y aprovechar un nicho de marcado. - El análisis de correspondencia permite ver de forma más específica como son las relaciones de los atributos a nivel de valores individuales, siempre y cuando haya una varianza suficiente para generar ese análisis.