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.

Analisis exploratorio

Etapa 1: entendimiento de los datos

## # A tibble: 6 × 13
##      id zona    piso  estrato preciom areaconst parqueaderos banios habitaciones
##   <dbl> <chr>   <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
## 1  1147 Zona O… <NA>        3     250        70            1      3            6
## 2  1169 Zona O… <NA>        3     320       120            1      2            3
## 3  1350 Zona O… <NA>        3     350       220            2      2            4
## 4  5992 Zona S… 02          4     400       280            3      5            3
## 5  1212 Zona N… 01          5     260        90            1      2            3
## 6  1724 Zona N… 01          5     240        87            1      3            3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

En este paso validamos cuántos datos o registos tenemos y cuántos atributos: (8322, 13) donde el primero representa el número de registros o datos y el segundo el número de atributos o columnas del dataset.

En este paso validamos el tipo de dato de cada columna en el dataset

x
id numeric
zona character
piso character
estrato numeric
preciom numeric
areaconst numeric
parqueaderos numeric
banios numeric
habitaciones numeric
tipo character
barrio character
longitud numeric
latitud numeric

En este paso hacemos un resúmen estadistico de los atributos

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

En este paso construímos un diagrama de caja y bigotes para cada uno de los atributos de tipo cuantitativa continua

Ahora validamos cuales son las modas de cada uno de los atributos de tipo categóricos

##               id             zona             piso          estrato 
##               NA       "Zona Sur"               NA              "5" 
##          preciom        areaconst     parqueaderos           banios 
##            "350"             "60"              "1"              "2" 
##     habitaciones             tipo           barrio         longitud 
##              "3"    "Apartamento" "valle del lili"        "-76.529" 
##          latitud 
##          "3.452"

La siguiente tabla muestra la relación lineal que existe entre cada una de los atributos del dataset:

id estrato preciom areaconst parqueaderos banios habitaciones longitud latitud
id 1.0000000 0.4090518 0.3394001 0.1694898 0.2424888 0.2492865 0.0236735 -0.9598649 -0.1339968
estrato 0.4090518 1.0000000 0.5876109 0.2591140 0.4226084 0.3950842 -0.0804957 -0.3935328 -0.1684410
preciom 0.3394001 0.5876109 1.0000000 0.6839831 0.6886785 0.6719967 0.2670210 -0.3040499 -0.0854474
areaconst 0.1694898 0.2591140 0.6839831 1.0000000 0.5848290 0.6671746 0.5339207 -0.1439194 -0.0464478
parqueaderos 0.2424888 0.4226084 0.6886785 0.5848290 1.0000000 0.5705065 0.2844808 -0.2150563 -0.1130657
banios 0.2492865 0.3950842 0.6719967 0.6671746 0.5705065 1.0000000 0.5969167 -0.2225138 -0.1111514
habitaciones 0.0236735 -0.0804957 0.2670210 0.5339207 0.2844808 0.5969167 1.0000000 -0.0067843 0.0116419
longitud -0.9598649 -0.3935328 -0.3040499 -0.1439194 -0.2150563 -0.2225138 -0.0067843 1.0000000 0.1657724
latitud -0.1339968 -0.1684410 -0.0854474 -0.0464478 -0.1130657 -0.1111514 0.0116419 0.1657724 1.0000000

La siguiente tabla muestra cúantos valores nulos hay en cada atributo del dataset:

x
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

Etapa 2: Preparación de los datos

En esta etapa nos centraremos en la preparación de los datos para posteriormente iniciar con la modelación de los datos.

Manejo de valores nulos

La siguiente tabla muestra los atributos con valores nulos después de reemplazar los valores nulos de cada atributo categortico por su respectiva moda:

Atributo Conteo de Nulos
id id 3
piso piso 2638
preciom preciom 2
areaconst areaconst 3
parqueaderos parqueaderos 1605
longitud longitud 3
latitud latitud 3

La siguiente tabla muestra los atributos con valores nulos después de reemplazar los valores nulos de los atributos preciom y areaconst por su respectiva moda:

Atributo Conteo de Nulos
id id 3
piso piso 2638
parqueaderos parqueaderos 1605
longitud longitud 3
latitud latitud 3

De la anterior tabla se evidencia que existen valores nulos en los atributos longitud y latitud, por lo que se procederá eliminar estos registros que poseen valores nulos en ese atributo debido que estas propiedades corresponden a ubicaciones únicas por lo que no se puede hacer inferencias sobre estos y adicional estos no representan un gran impacto debido a que son solo 3 registros quienes tienen valores nulos en estas propiedades, por lo tanto, la siguiente tabla muestra los atributos que continúan con valores núlos en el dataset:

Atributo Conteo de Nulos
piso piso 2635
parqueaderos parqueaderos 1602

Y esta es la proporción de valores nulos en el atributo parqueaderos según el tipo de vivienda:

De las anteriores gráficas se puede evidenciar que los valores nulos en las variables piso y parqueadero tienen casi una misma proporción respecto a al tipo de vivienda, siendo apartamento el tipo de vivienda con mayor número de valores nulos.

Se procedió a inputar la variable parqueadero para los valores nulos reemplazando estos por la moda de cada uno del tipo de vivienda (apartamento, casa), adicional debido a que los valores nulos de la variable piso representan alrededor del 30% se procede a eliminar esta columna debido a una imputación de valores para una proporción tan grande puede afectar considerablemente la calidad de los datos, y se eliminó también la variable Id, longitud y latitud, quedando el dataset final así.

## # A tibble: 6 × 9
##   zona   estrato preciom areaconst parqueaderos banios habitaciones tipo  barrio
##   <chr>    <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl> <chr> <chr> 
## 1 Zona …       3     250        70            1      3            6 Casa  20 de…
## 2 Zona …       3     320       120            1      2            3 Casa  20 de…
## 3 Zona …       3     350       220            2      2            4 Casa  20 de…
## 4 Zona …       4     400       280            3      5            3 Casa  3 de …
## 5 Zona …       5     260        90            1      2            3 Apar… acopi 
## 6 Zona …       5     240        87            1      3            3 Apar… acopi

Modelado

Análisis de componentes principales (PCA)

Despúes de hacer un análisis exploratorio de los datos y preparación de los datos se evidencia y se consluye que no hace sentido el hacer uso del análisis de componentes principales para el dataset de estudio, lo anterior lo fundamento en lo siguiente:

  • El PCA es usado principalmente para datos de tipo númerico continuo, teniendo presente lo anterior se evidencia que en el dataset solo existen 2 atributos de ese tipo, el preciom y areaconst y sabiendo que el PCA se hace principalemte para reducir la dimencionalidad del dataset para este caso en especifico no hace sentido el aplicar esta técnica, en conclusión este tipo de análisis no tiene sentido para el dataset de estudio y esa es la razón principal por la cual no se aplica en el objetivo de este trabajo y caso de estudio.

Análisis de Correspondencia

La siguiente gráfica muestra la distrubución por estratos de las diferentes zonas y la tabla de frecuencias entre los atributos zona y estrato

##               
##                    3     4     5     6
##   Zona Centro  84.68 11.29  3.23  0.81
##   Zona Norte   29.79 21.20 40.05  8.96
##   Zona Oeste    4.51  7.01 24.21 64.27
##   Zona Oriente 96.87  2.28  0.57  0.28
##   Zona Sur      8.08 34.19 35.65 22.07
##         3         4         5         6 
## 0.1746604 0.2559202 0.3305686 0.2388508

Del anterior gráfico se evidencia que:

  • Zona Centro:Predominio del Estrato 3: La mayor parte de la barra está ocupada por el estrato 3 (color azul), con pequeñas proporciones de los estratos 4 (rojo) y 5 (verde).

  • Zona Norte: Alta composición del estrato 5 (Verde)

  • zona oeste: Mayor presencia del estrato 6 (Morado)

  • Zona oriente: Predominio del estrato 3.

  • Zona sur: Parece muy equivalente entre el estrato 4 y estrato 5.

  • Marginal: La barra del margen representa la distribución general de los estratos en todas las zonas combinadas.

La siguiente tabla muestra la misma información pero en un diagrama de barras o un perfil de barras

##               
##                    3     4     5     6
##   Zona Centro   7.23  0.66  0.15  0.05
##   Zona Norte   39.37 19.12 27.96  8.66
##   Zona Oeste    3.72  3.95 10.55 38.75
##   Zona Oriente 23.40  0.38  0.07  0.05
##   Zona Sur     26.29 75.90 61.27 52.49
##  Zona Centro   Zona Norte   Zona Oeste Zona Oriente     Zona Sur 
##   0.01490564   0.23079697   0.14400769   0.04219257   0.56809713

Los siguientes son los resultados del análisis de correspondencia

## 
## Call:
## CA(X = tabla) 
## 
## The chi square of independence between the two variables is equal to 3830.435 (p-value =  0 ).
## 
## Eigenvalues
##                        Dim.1   Dim.2   Dim.3
## Variance               0.322   0.127   0.011
## % of var.             69.966  27.680   2.354
## Cumulative % of var.  69.966  97.646 100.000
## 
## Rows
##                Iner*1000     Dim.1     ctr    cos2     Dim.2     ctr    cos2  
## Zona Centro  |    47.079 |   1.725  13.761   0.942 |   0.364   1.547   0.042 |
## Zona Norte   |    46.762 |   0.390  10.887   0.750 |  -0.147   3.920   0.107 |
## Zona Oeste   |   135.034 |  -0.569  14.476   0.345 |   0.783  69.204   0.653 |
## Zona Oriente |   184.564 |   2.015  53.171   0.928 |   0.537   9.563   0.066 |
## Zona Sur     |    47.004 |  -0.209   7.704   0.528 |  -0.188  15.767   0.428 |
##                Dim.3     ctr    cos2  
## Zona Centro    0.228   7.148   0.016 |
## Zona Norte    -0.170  61.735   0.143 |
## Zona Oeste    -0.037   1.820   0.001 |
## Zona Oriente   0.160  10.006   0.006 |
## Zona Sur       0.061  19.291   0.044 |
## 
## Columns
##                Iner*1000     Dim.1     ctr    cos2     Dim.2     ctr    cos2  
## 3            |   253.402 |   1.187  76.333   0.970 |   0.207   5.851   0.029 |
## 4            |    47.744 |  -0.154   1.895   0.128 |  -0.380  28.966   0.773 |
## 5            |    25.471 |  -0.132   1.796   0.227 |  -0.204  10.824   0.542 |
## 6            |   133.827 |  -0.519  19.976   0.481 |   0.539  54.359   0.518 |
##                Dim.3     ctr    cos2  
## 3              0.015   0.350   0.000 |
## 4              0.136  43.547   0.099 |
## 5             -0.133  54.323   0.231 |
## 6              0.028   1.780   0.001 |

Ejes y Varianza Explicada:

  • Dim 1 (69.96%): El primer eje explica el 69.96% de la varianza total.
  • Dim 2 (27.68%): El segundo eje explica el 27.68% de la varianza total. Juntos, estos dos ejes explican una gran parte de la variabilidad en los datos, lo que indica que el gráfico bidimensional es una buena representación de la estructura de los datos.

Relaciones y Agrupaciones:

  • Zona Oriente y Zona Centro están cercanas en el espacio de factores, indicando que tienen perfiles de categoría similares.

  • Zona Oeste está claramente asociada con la categoría 6

  • Zona Sur está cercana a las categorías 4 y 5, indicando una relación más fuerte con estas categorías.

  • Zona Norte está aislada de las otras zonas y de las categorías, sugiriendo un perfil único.

Ek siguiente análisis corresponde al análisis de componenetes principales

##       eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.32215213              69.965515                          69.96551
## dim 2 0.12745096              27.680002                          97.64552
## dim 3 0.01084108               2.354483                         100.00000

Dimensiones Principales:

  • Las primeras dos dimensiones (Dim 1 y Dim 2) explican conjuntamente el 97.64% de la varianza en los datos, lo cual es una representación muy fuerte.La tercera dimensión (Dim 3) explica una cantidad muy pequeña de varianza adicional (2.35%) y puede no ser necesaria para una interpretación general.

Contribuciones:

La Zona Oriente tiene la mayor contribución a la Dim 1, lo que significa que esta zona es la más significativa en definir la variabilidad capturada por esta dimensión. La gran contribución sugiere que las diferencias en los perfiles de la Zona Oriente son cruciales para la estructura de los datos en la Dim 1.

La Zona Oeste tiene la mayor contribución a la Dim 2, significativamente más alta que cualquier otra zona. Esto indica que esta zona es la más influyente en definir la variabilidad capturada por la Dim 2. Las diferencias en los perfiles de la Zona Oeste son cruciales para la estructura de los datos en esta dimensión.

Análisis de Conglomerados

La siguiente tabla muestra los datos normalizados:

estrato preciom areaconst parqueaderos banios habitaciones
-1.5872276 -0.5595498 -0.7339949 -0.6343338 -0.0779377 1.6406840
-1.5872276 -0.3465670 -0.3842568 -0.6343338 -0.7781148 -0.4147626
-1.5872276 -0.2552886 0.3152194 0.3063120 -0.7781148 0.2703863
-0.6156201 -0.1031580 0.7349051 1.2469577 1.3224164 -0.4147626
0.3559875 -0.5291236 -0.5940997 -0.6343338 -0.7781148 -0.4147626
0.3559875 -0.5899759 -0.6150839 -0.6343338 -0.0779377 -0.4147626

La siguiente gráfica muestra la variabilidad interna vs el número de conglomerados. Haciendo el análisis de codo se evidencia que número de conglomerados óptimo es 5. Luego usamos el algoritmo K-means para realizar el análisis de conglomerados, sabiendo que previamente se selección el número de comglomerados como 5, con este número de conglomerados construímos la gráfica evidenciando los 5 cluster que se ven la siguiente figura:

La siguientes tabla muestra las caraterísticas (promedio) de cada conglomerado y su distribución

##   cluster     zona  estrato   preciom areaconst parqueaderos   banios
## 1       1 4.250847 5.672881 1192.5542 480.56598     4.220339 5.433898
## 2       2 3.823040 3.824228  436.3575 297.83233     1.461995 4.456057
## 3       3 3.864955 3.594494  192.9356  90.45505     1.063988 1.999628
## 4       4 3.869976 5.615839  696.7275 230.68356     2.238180 4.165485
## 5       5 3.960112 5.112086  335.5233 114.68498     1.420423 2.593538
##   habitaciones     tipo   barrio
## 1     4.750847 1.815254 234.1051
## 2     6.591449 1.980998 225.9869
## 3     2.946057 1.264137 246.5636
## 4     3.706856 1.455083 231.2264
## 5     2.971280 1.172318 250.0116
## 
##    1    2    3    4    5 
##  590  842 2688 1692 2507

Resultados

  • De los resultados obtenidos se recomienda a la empresa inmobiliaria que si va invertir y comprar en casas o apartamentos de estrado 5, que estos deben tener como 5 habitaiciones y 5 baños adicional que el área construída sea también como mínimo de 480 m^2.
  • También tener presente que las Zona Oriente y Zona Centro de la ciudad tiene características similares, es decir estás 2 zonas pueden tratadas como unas solas, lo mismo sucede con la Zona Sur y Norte de la ciudad. Lo anterior siginifica que este pares de zonas pueden ser tratadas como un mismo mercado respectivamente.
  • La Zona Oeste de la ciudad no tiene semejanzas con las demás zonas lo cual significa que esta zona debe ser tratada de forma individual con un publico objetivo diferente a los de lás demás zonas.
  • Las zonas centro y oriente esta claramanente definida para un público estrado 3 donde las viviendas deben tener como mínimo un parqueadero 2 baños y 3 habitaciones, es decir esta zona esta muy segmentada un público objetivo conformado por familias completas (madre, padre e hijo) con un poder adquisitivo medio, clase media.