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.
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 |
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.
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 |
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.
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.
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.