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.

Análisis exploratorio.

suppressWarnings({suppressMessages(library(paqueteMODELOS))
suppressMessages(library(mice))
suppressMessages(library(tidyverse))
suppressMessages(library(naniar))
suppressMessages(library(pacman))
suppressMessages(library(DataExplorer))
suppressMessages(library(ggcorrplot))
suppressMessages(library(Cairo))
suppressMessages(library(factoextra))
suppressMessages(library(ggrepel))
suppressMessages(library(textshape))
suppressMessages(library(cluster))
suppressMessages(library(NbClust))
suppressMessages(library(FactoMineR))
suppressMessages(library(pander))
suppressMessages(library(sf))
suppressMessages(library(corrplot))
suppressMessages(library(gridExtra))
})

Cargue y lectura de la base de datos

## # A tibble: 8,322 × 13
##       id zona   piso  estrato preciom areaconst parqueaderos banios habitaciones
##    <dbl> <chr>  <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
##  1  1147 Zona … <NA>        3     250        70            1      3            6
##  2  1169 Zona … <NA>        3     320       120            1      2            3
##  3  1350 Zona … <NA>        3     350       220            2      2            4
##  4  5992 Zona … 02          4     400       280            3      5            3
##  5  1212 Zona … 01          5     260        90            1      2            3
##  6  1724 Zona … 01          5     240        87            1      3            3
##  7  2326 Zona … 01          4     220        52            2      2            3
##  8  4386 Zona … 01          5     310       137            2      3            4
##  9  1209 Zona … 02          5     320       150            2      4            6
## 10  1592 Zona … 02          5     780       380            2      3            3
## # ℹ 8,312 more rows
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

Estructura del data frame.

## spc_tbl_ [8,322 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ id          : num [1:8322] 1147 1169 1350 5992 1212 ...
##  $ zona        : chr [1:8322] "Zona Oriente" "Zona Oriente" "Zona Oriente" "Zona Sur" ...
##  $ piso        : chr [1:8322] NA NA NA "02" ...
##  $ estrato     : num [1:8322] 3 3 3 4 5 5 4 5 5 5 ...
##  $ preciom     : num [1:8322] 250 320 350 400 260 240 220 310 320 780 ...
##  $ areaconst   : num [1:8322] 70 120 220 280 90 87 52 137 150 380 ...
##  $ parqueaderos: num [1:8322] 1 1 2 3 1 1 2 2 2 2 ...
##  $ banios      : num [1:8322] 3 2 2 5 2 3 2 3 4 3 ...
##  $ habitaciones: num [1:8322] 6 3 4 3 3 3 3 4 6 3 ...
##  $ tipo        : chr [1:8322] "Casa" "Casa" "Casa" "Casa" ...
##  $ barrio      : chr [1:8322] "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
##  $ longitud    : num [1:8322] -76.5 -76.5 -76.5 -76.5 -76.5 ...
##  $ latitud     : num [1:8322] 3.43 3.43 3.44 3.44 3.46 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   id = col_double(),
##   ..   zona = col_character(),
##   ..   piso = col_character(),
##   ..   estrato = col_double(),
##   ..   preciom = col_double(),
##   ..   areaconst = col_double(),
##   ..   parqueaderos = col_double(),
##   ..   banios = col_double(),
##   ..   habitaciones = col_double(),
##   ..   tipo = col_character(),
##   ..   barrio = col_character(),
##   ..   longitud = col_double(),
##   ..   latitud = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>

Se observa que la base de datos tiene 8322 registros y 13 variables dentro de las cuales cuenta con 3 variables cualitativas y 10 cuantitativas, 4 variables tipo texto y 8 variables tipo númericas. dentro de las variables tipo texto se encuentra piso, sin embargo, se realiza la transformación a tipo númerico.

## 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        : num [1:8322] 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        : chr [1:8322] "Casa" "Casa" "Casa" "Casa" ...
##  $ barrio      : chr [1:8322] "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
##  $ longitud    : num [1:8322] -76.5 -76.5 -76.5 -76.5 -76.5 ...
##  $ latitud     : num [1:8322] 3.43 3.43 3.44 3.44 3.46 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   id = col_double(),
##   ..   zona = col_character(),
##   ..   piso = col_character(),
##   ..   estrato = col_double(),
##   ..   preciom = col_double(),
##   ..   areaconst = col_double(),
##   ..   parqueaderos = col_double(),
##   ..   banios = col_double(),
##   ..   habitaciones = col_double(),
##   ..   tipo = col_character(),
##   ..   barrio = col_character(),
##   ..   longitud = col_double(),
##   ..   latitud = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>

Se procede a realizar la verificación de la existencia de datos faltantes.

De acuerdo a esto, se observa en el siguiente gráfico la existencia de valores faltantes en el dataset, siendo las variables piso y parqueaderos las que mayor cantidad de datos faltantes presentan.

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

A continuación, vemos de forma más detallada la distribución de los valores faltantes en el dataset.

Se presenta a continuación la suma de los valores faltantes por cada atributo de la data. Donde, piso cuenta con un toal de 2638 datos faltantes y parqueaderos con un total de 1605 de datos faltantes.

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

Se opta por remover estás columnas (parqueaderos y piso) con valores faltantes en el conjunto de datos, ya que la imputación utilizando medidas de tendencia central podría distorsionar incorrectamente el análisis del problema. Además, la columna parqueadderos tiene un total de 19.29% de NA y la columna piso de 31.70%.

##  /\     /\
## {  `---'  }
## {  O   O  }
## ==>  V <==  No need for mice. This data set is completely observed.
##  \  \|/  /
##   `-----'

##      zona estrato preciom areaconst habitaciones banios tipo barrio longitud
## 8319    1       1       1         1            1      1    1      1        1
##         0       0       0         0            0      0    0      0        0
##      latitud  
## 8319       1 0
##            0 0
## 'data.frame':    8319 obs. of  10 variables:
##  $ zona        : chr  "Zona Oriente" "Zona Oriente" "Zona Oriente" "Zona Sur" ...
##  $ estrato     : num  3 3 3 4 5 5 4 5 5 5 ...
##  $ preciom     : num  250 320 350 400 260 240 220 310 320 780 ...
##  $ areaconst   : num  70 120 220 280 90 87 52 137 150 380 ...
##  $ habitaciones: num  6 3 4 3 3 3 3 4 6 3 ...
##  $ banios      : num  3 2 2 5 2 3 2 3 4 3 ...
##  $ tipo        : chr  "Casa" "Casa" "Casa" "Casa" ...
##  $ barrio      : chr  "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
##  $ longitud    : num  -76.5 -76.5 -76.5 -76.5 -76.5 ...
##  $ latitud     : num  3.43 3.43 3.44 3.44 3.46 ...

Distribución de los datos según variable.

De los gráficos de histograma se deduce que los precios de las propiedades disponibles se concentran en precios menores a 500 millones de pesos. También, gran parte de las propiedades tienen en 2 a 4 baños.

Por otro lado, en promedio el área construida de las propiedades es de 174 metros cuadrados y cuentan con 2 o 3 habitaciones. Asimismo, la mayoría de las propiedades se centran en estratos 4,5 y 6.

En general, se puede concluir que las variables Área construida y Precio están medianamente fuerte correlacionadas. Esto significa que las propiedades con una mayor área construida tienden a tener un precio más alto. Las variables habitaciones y Área construida también están correlacionadas, pero menos fuertemente que Área construida y Precio. Esto significa que las propiedades ubicadas en pisos más altos o en estratos más altos tienden a tener un precio más alto.

En particular, se puede concluir que:

• Área construida y Precio tienen una correlación positiva de 0,7. Esto significa que las dos variables están directamente relacionadas.

• Precio y Estrato tienen una correlación positiva de 0,61. Esto significa que las dos variables también están directamente relacionadas, pero en menor medida que Área construida y Precio.

• Baños y Área construida tienen una correlación positiva (0.65), entre mayor sea el área construida mayor cantidad de baños hay. También las variables precio y baños presentan una correlación positiva (0.67).

En particular, se puede inferir que:

• Habitaciones y Área construida tienen una distribución muy dispersa, lo que indica que hay una gran variabilidad en el número de habitaciones de las propiedades y sus tamaños.

• Baños también tiene una distribución dispersa, pero en menor medida que Habitaciones.

• Estrato tienen una distribución más concentrada, lo que indica que hay menos variabilidad en el piso y el estrato de las propiedades.

Teniendo en cuenta la estructura de la base de datos, la limpieza realizada y el análisis exploratorio que se realizó, pasamos a realizar el Análisis de Componentes Principales (ACP).

Análisis de Componentes Principales (ACP)

Retengamos en la memoria que el procedimiento de componentes principales (PCA) se emplea principalmente para examinar variables numéricas y disminuir la complejidad dimensional de los datos. Dado que la base de datos actual incluye variables cualitativas, es necesario eliminar las columnas que contienen este tipo de datos, y para ello, se aplican las siguientes instrucciones:

##      estrato preciom areaconst habitaciones banios  longitud latitud
## 1147       3     250        70            6      3 -76.51168 3.43382
## 1169       3     320       120            3      2 -76.51237 3.43369
## 1350       3     350       220            4      2 -76.51537 3.43566
## 5992       4     400       280            3      5 -76.54000 3.43500
## 1212       5     260        90            3      2 -76.51350 3.45891
## 1724       5     240        87            3      3 -76.51700 3.36971

Con el fin de evitar que las variables que tiene una escala con valores más grandes afecten las estimaciones realizadas (sesgos) se realiza la estandarización de las variables antes de proceder a realizar el proceso de estimación de los componentes principales.

##         estrato    preciom  areaconst habitaciones      banios
## 1147 -1.5872276 -0.5595498 -0.7339949    1.6406840 -0.07793773
## 1169 -1.5872276 -0.3465670 -0.3842568   -0.4147626 -0.77811479
## 1350 -1.5872276 -0.2552886  0.3152194    0.2703863 -0.77811479
## 5992 -0.6156201 -0.1031580  0.7349051   -0.4147626  1.32241640
## 1212  0.3559875 -0.5291236 -0.5940997   -0.4147626 -0.77811479
## 1724  0.3559875 -0.5899759 -0.6150839   -0.4147626 -0.07793773

Desviación estandar

## Standard deviations (1, .., p=5):
## [1] 1.7126464 1.0901014 0.6673458 0.4916079 0.4375986
## 
## Rotation (n x k) = (5 x 5):
##                    PC1        PC2        PC3        PC4        PC5
## estrato      0.3300032 -0.6744363  0.4208934  0.4795545  0.1706159
## preciom      0.5068715 -0.2807656 -0.3015468 -0.2213868 -0.7240921
## areaconst    0.4940473  0.1638135 -0.6525373  0.2984641  0.4628138
## habitaciones 0.3475270  0.6538568  0.4051685  0.4359154 -0.3122700
## banios       0.5189619  0.1092831  0.3767649 -0.6647648  0.3672488
## Importance of components:
##                           PC1    PC2     PC3     PC4    PC5
## Standard deviation     1.7126 1.0901 0.66735 0.49161 0.4376
## Proportion of Variance 0.5866 0.2377 0.08907 0.04834 0.0383
## Cumulative Proportion  0.5866 0.8243 0.91337 0.96170 1.0000
get_eigenvalue(res.pca)
##       eigenvalue variance.percent cumulative.variance.percent
## Dim.1  2.9331575        58.663151                    58.66315
## Dim.2  1.1883211        23.766422                    82.42957
## Dim.3  0.4453505         8.907009                    91.33658
## Dim.4  0.2416783         4.833567                    96.17015
## Dim.5  0.1914925         3.829851                   100.00000

Elección del número de componentes principales.

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

A continuación, se representan las variables sobre los componentes principales, donde, área construida, baños y precio se situan sobre el componente 1 y habitaciones y estrato sobre el 2.

Se visualiza que las características área construida, baños y precio están bien representadas sobre la dimensión 1. Estas características están relacionadas con las dimensiones físicas, comodidades y valor de la propiedad. Mientras que habitaciones y Estrato están representan en la Dimensión 2.

A continuación, se visualiza la correlación de las dimensiones con los atributos, donde se evidencia que la Dim 1, engloba los atributos Precio, Area Construida y Baños. La Dim 2, el resto de los atributos.

En el gráfico vemos como se distribuyen las porpiedades ofertadas sobre o dentro del PCA.

Por otro lado, podemos observar el comportamiento de los datos según las variables Habitaciones, Área construida, Baños, Precio y Estrato.

Una vez calculadas las componentes principales, se puede conocer la varianza explicada por cada una de ellas, la proporción respecto al total y la proporción de varianza acumulada.

proporción de varianza acumulada:

## [1] 0.58663151 0.23766422 0.08907009 0.04833567 0.03829851

Varianza acomulada:

## [1] 0.5866315 0.8242957 0.9133658 0.9617015 1.0000000

En este caso, la primera componente explica el 58% de la varianza observada en los datos y la segunda el 23%. Las 3 últimas componentes no superan por separado el 1% de varianza explicada. Si se empleasen únicamente las dos primeras componentes se conseguiría explicar el 82% de la varianza observada.

Conlusiones:

  • La primera componente explica el 58.66 % de la varianza observada de los datos y la segunda componente el 23.76% de la varianza observada, por tanto, en conjunto ambas componentes logran explicar el 82.42% de esta varianza. Es decir, en ambas componentes contienen la mayor parte de la información contenida en las 5 variables.

  • En la primera componente, se observa que las variables, a saber, el número de baños, el precio de la vivienda y el área construida, exhiben una influencia significativa en orden de importancia. En la segunda componente, las variables estrato y habitaciones son las que presentan una influencia más destacada en sus respectivas posiciones. El análisis de la matriz de correlaciones inicial revela una fuerte correlación entre las variables de mayor influencia en la primera componente, indicando una posible dependencia entre ellas.

  • En caso de optar por un modelo de regresión simple, se pueden emplear las dos componentes obtenidas mediante el ACP. Por otro lado, si se busca desarrollar un modelo de regresión múltiple, se pueden utilizar las cinco variables originales. Posteriormente, se recomienda comparar el ajuste y las predicciones de ambos modelos para evaluar su desempeño relativo.

Análisis de Conglomerados.

Se seleccionan las variables Estrato, precio, área construida, baños y habitaciones.

Dado que los rangos de las variables son diferente y con fin de que estas diferencias en las dimensiones de las variables no afecte los cálculos de las distancias se aconseja estandarizar las variables (restar la media y dividir el resultado por la desviación estándar) antes de generar las cálculos de las distancias.

##         estrato    preciom  areaconst habitaciones      banios
## 1147 -1.5872276 -0.5595498 -0.7339949    1.6406840 -0.07793773
## 1169 -1.5872276 -0.3465670 -0.3842568   -0.4147626 -0.77811479
## 1350 -1.5872276 -0.2552886  0.3152194    0.2703863 -0.77811479
## 5992 -0.6156201 -0.1031580  0.7349051   -0.4147626  1.32241640
## 1212  0.3559875 -0.5291236 -0.5940997   -0.4147626 -0.77811479
## 1724  0.3559875 -0.5899759 -0.6150839   -0.4147626 -0.07793773

Determinar el número de clusters.

  • Método del codo.

EL método codo muestra que posiblemente el número óptimo de clústeres adecuado es 4. Esto se puede ver en el hecho de que la gráfica muestra un cambio brusco en la pendiente de la línea de la curva del codo en el punto 4.

  • Método de la silueta.

EL método de la silueta muestra que posiblemente el número óptimo de clústeres adecuado es 2. Ya que, el mismo método nos señala en el número de clúster K el número 2, a su vez en este clúster se visualiza el cambio abrupto que presenta la línea.

Al observar que no es claro el número de clusters óptimos, utilizamos el método de enlace completo (complete linkage), también conocido como el método de enlace máximo. Este método es una estrategia utilizada en la técnica de agrupamiento jerárquico aglomerativo.

## *** : The Hubert index is a graphical method of determining the number of clusters.
##                 In the plot of Hubert index, we seek a significant knee that corresponds to a 
##                 significant increase of the value of the measure i.e the significant peak in Hubert
##                 index second differences plot. 
## 

## *** : The D index is a graphical method of determining the number of clusters. 
##                 In the plot of D index, we seek a significant knee (the significant peak in Dindex
##                 second differences plot) that corresponds to a significant increase of the value of
##                 the measure. 
##  
## ******************************************************************* 
## * Among all indices:                                                
## * 7 proposed 2 as the best number of clusters 
## * 13 proposed 3 as the best number of clusters 
## * 2 proposed 6 as the best number of clusters 
## * 2 proposed 10 as the best number of clusters 
## 
##                    ***** Conclusion *****                            
##  
## * According to the majority rule, the best number of clusters is  3 
##  
##  
## *******************************************************************

Los resultados de la implementación del método son los siguientes:

Entre todos los índices:

  • 7 propusieron 2 como el mejor número de clústeres.

  • 13 propusieron 3 como el mejor número de clústeres.

  • 2 propusieron 6 como el mejor número de clústeres.

  • 2 propusieron 10 como el mejor número de clústeres.

Conclusión

De acuerdo con la regla de la mayoría (mayoría de los índices), se concluye que el mejor número de clústeres es 3.

De acuerdo a esta información, se gráfica los clúster.

Donde cada clústers quedo con la siguiente distribución:

## asignacion_clusters
##    1    2    3 
## 5270 2008 1041

Vizualizaciones según variable por clúster.

A continuación, se realiza el diagrama de dispersión que representa la relación entre el precio y el área construida de propiedades inmuebles, agrupadas por clústeres. El eje horizontal representa el área construida en metros cuadrados, mientras que el eje vertical representa el precio en miles de pesos colombianos.

Clúster 1: Presenta propiedades con áreas construidas medianamente grandes y a su vez con precios no muy altos.

Clúster 2: Presenta propiedades con áreas construidas muy pequeñas y precios bajos.

Clúster 3: Presentan Propiedades con grandes cantidades de área construida y con precios muy altos.

El clúster 1 se haya presente en todas las zonas (Centro, Norte, Oeste, Oriente, Sur), pero se visualiza que en las zonas Sur y Norte hay bastantes propiedades con precios muy altos. Sin embargo, los precios en promedio son bajos.

Dentro de la relación que hay en entre el precio por zona, se observar que el clúster 2 está presente en las zonas Norte, Oeste y Sur, en estas zonas como se había mencionado se encuentran las propiedades más costosas, y existe presencia de valores atípicos en relación con el precio en estas zonas según lo observado.

Por último, para el clúster 3 los precios más bajos para este grupo se encuentran en la zona Oriente, para las zonas Centro, Norte y Oriente los precios son relativamente homogéneos; y para la zona Oeste se encuentran los precios más altos para el clúster 3.

## Reading layer `mazanascali' from data source 
##   `C:\Users\juanr\Downloads\mazanascali.shp' using driver `ESRI Shapefile'
## Simple feature collection with 16071 features and 25 fields
## Geometry type: POLYGON
## Dimension:     XY
## Bounding box:  xmin: -76.63822 ymin: 3.297279 xmax: -76.46032 ymax: 3.521935
## Geodetic CRS:  MAGNA-SIRGAS

Por último, se realiza un mapa de la ciudad de Santiago de Cali, Colombia, donde se plasma como se distribuyen los clústeres en la ciudad. Recordemos las características de cada uno de los clústeres.

Clúster 1:

  • Esta presente en todas las zonas (Norte, Sur, Centro, Oeste y Oriente).

  • Los precios en promedio del clúster son de 263 millones de pesos. Y el 50% de las propiedades tiene un precio igual o menor a 250 millones de pesos.

  • En promedio el número de habitaciones es de 3.

  • Las propiedades cuentan con 2 baños, esto entre los 50% de las propiedades.

  • El 75% de las viviendas tienen un estrato igual o menos al 5.

  • El 77.3% de las propiedades corresponden a Apartamentos y el 22.7% a Casas.

Clúster 2:

  • Está presente solo en las zonas Norte, Oeste y Sur.

  • Los precios en promedio del clúster son de 866 millones de pesos. Y el 50% de las propiedades tiene un precio igual o menor a 760 millones de pesos.

  • En promedio el número de habitaciones es de 4.

  • Las propiedades cuentan con 4 baños, esto entre los 50% de las propiedades.

  • El 75% de las viviendas tienen un estrato igual o menos al 6.

  • El 49.7% de las propiedades corresponden a Apartamentos y el 50.3% a Casas.

Clúster 3:

  • Está presente en todas las zonas (Norte, Sur, Centro, Oeste y Oriente).

  • Los precios en promedio del clúster son de 464 millones de pesos. Y el 50% de las propiedades tiene un precio igual o menor a 420 millones de pesos.

  • En promedio el número de habitaciones es de 6.

  • Las propiedades cuentan con 4 baños, esto entre los 50% de las propiedades.

  • El 75% de las viviendas tienen un estrato igual o menos al 5.

  • El 2.88% de las propiedades corresponden a Apartamentos y el 97.1% a Casas.

Análisis de Correspondencia.

Examinar la relación entre las variables categóricas (tipo de vivienda, zona y barrio), para identificar patrones de comportamiento de la oferta en mercado inmobiliario.

##             tipo         zona      barrio
## 1147        Casa Zona Oriente 20 de julio
## 1169        Casa Zona Oriente 20 de julio
## 1350        Casa Zona Oriente 20 de julio
## 5992        Casa     Zona Sur  3 de julio
## 1212 Apartamento   Zona Norte       acopi
## 1724 Apartamento   Zona Norte       acopi

Se revisa si la base tiene datos faltantes (rectángulos de color rojo)

##  /\     /\
## {  `---'  }
## {  O   O  }
## ==>  V <==  No need for mice. This data set is completely observed.
##  \  \|/  /
##   `-----'

##      tipo zona barrio  
## 8319    1    1      1 0
##         0    0      0 0

Observamos la frecuencia de los datos para las variables zona y tipo.

Se ve que hay una gran concentración de propiedades en la zona sur y también, aunque en menos cantidad en la zona norte. Por otro lado, hay mayor cantidad de apartamentos que de casas.

##              
##               Zona Centro Zona Norte Zona Oeste Zona Oriente ZonaSur  Sum
##   Apartamento          24       1198       1029           62    2787 5100
##   Casa                100        722        169          289    1939 3219
##   Sum                 124       1920       1198          351    4726 8319

Antes de realizar el Análisis de Correspondencia se aplica el test de chi-cuadrado de Pearson como paso previo cuando se tienen dos variables categóricas y se desea explorar la relación entre ellas.

En este caso se realiza el test de chi-cuadrado para las variables “Zona” y “Tipo” (Apartamento y Casa), lo cual es apropiado antes de realizar un análisis de correspondencia para determinar si existe una asociación significativa entre estas dos variables categóricas.

## 
##  Pearson's Chi-squared test
## 
## data:  tabla2
## X-squared = 690.93, df = 4, p-value < 2.2e-16

El resultado del test muestra un valor de chi-cuadrado de 690.93 con 4 grados de libertad y un valor p muy pequeño (< 2.2e-16), lo que indica que hay una relación significativa entre las variables “Zona” y “Tipo”. Esto sugiere que estas variables no son independientes entre sí y que hay una asociación entre las zonas y el tipo de vivienda (apartamento o casa).

Por lo tanto, es adecuado proceder con el análisis de correspondencia para explorar más a fondo la relación entre estas variables y visualizar patrones en los datos.

Los resultados indican que el primer componente contiene el 25.8% de la varianza de los datos y el segundo componente el 20.0%, es decir que entre ambos se aporta el 45.8.% de los datos categoricos.

A continuación, se realiza el análisis de componentes principales para las 3 variables categóricas: Zona, Barrio y tipo.

En el gráfico, se nota la proximidad entre las variables “zona” y “barrio”, lo cual sugiere una similitud en sus perfiles de categorías. En contraste, la variable “tipo” está más alejada, indicando diferencias significativas en sus perfiles de categorías.

Interpretación de Variables Cercanas: La proximidad entre las variables “zona” y “barrio” en el gráfico sugiere que comparten categorías que están relacionadas en el conjunto de datos. Eso se debe a que hay ciertos tipos de barrios que solo están en una zona específica.

Eigenvalues / Varianzas.

  eigenvalue variance.percent cumulative.variance.percent
Dim.1 0.711 0.4848 0.4848
Dim.2 0.6602 0.4501 0.9349
Dim.3 0.6508 0.4438 1.379
Dim.4 0.6232 0.4249 1.804
Dim.5 0.4442 0.3029 2.106
Dim.6 0.3333 0.2273 2.334

Coordenadas puntuales.

Si queremos ver las coordenadas puntuales de cada categoría en cada dimensión:

  Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
Apartamento -0.46 -0.01 -0.02 -0.06 -0.5
Casa 0.72 0.01 0.04 0.1 0.8
Zona Centro 2.01 0.24 0.77 7.44 -1.13
Zona Norte -0.06 1.6 -0.84 -0.07 0.04
Zona Oeste -1.73 0.16 1.57 0.26 0.51
Zona Oriente 2.93 1.09 3.06 -1.41 -0.95
Zona Sur 0.19 -0.78 -0.3 -0.13 -0.04
20 de julio 3.22 1.12 3.25 -1.51 -0.45
3 de julio 0.81 -0.78 -0.28 -0.03 2.26
acopi 0.01 1.62 -0.88 -0.07 0.32
agua blanca 3.22 1.12 3.25 -1.51 -0.45
aguablanca 1.49 0.16 1.45 -0.87 -1.05
aguacatal -1.81 0.15 1.61 0.24 0.41
alameda 1.65 -0.07 0.48 5.91 -0.96
alameda del rio -0.45 1.63 -0.91 -0.15 -1.41

PCA graph of individuals.

Se puede observar cómo las elipses de concentración de los puntos correspondientes a las categorías de la variable tipo están diferenciadas entre sí horizontalmente, indicando que ambas dimensiones discriminan entre estas dos categorías de la variable.

fviz_ellipses(mca_result,1:2 ,
              geom = "point")
## Warning: `gather_()` was deprecated in tidyr 1.2.0.
## ℹ Please use `gather()` instead.
## ℹ The deprecated feature was likely used in the factoextra package.
##   Please report the issue at <https://github.com/kassambara/factoextra/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Al realizar entre ambas variables categóricas, en este caso son Tipo y Zona, deducimos que la zonas centro y Oeste pertenecen a la dimensión 1 y las zonas Norte y Sur en la dimensión 2.

A continuación, se detalla un poco más la distribución individual de la variable Zona, donde se confirma lo anteriormente mencionado. En resumen, la dimensión 1 esta compuesta por zona Centro, Oeste y Oriente; y la dimensión 2 está compuesta por Zona Norte y Sur.

fviz_mca_ind(mca_result,
            label = "none",
            habillage = "zona",
            pallette = c("#CCCCFF", "#F08080"),
            addEllipses = TRUE,
            ggtheme = theme_grey())

Conclusiones generales.

En este trabajo se aplican 3 algoritmos el Análisis de Componentes Principales (PCA), el Análisis de Conglomerados y en Análisis de correspondencia, con el fin identificar patrones, relaciones y segmentaciones relevantes que permitan mejorar la toma de decisiones en cuanto a la compra, venta y valoración de propiedades.

En relación con el Análisis de Componentes Principales (PCA) se encontró que:

  • La dimensión 1 explica el 58.7% de la variabilidad en los datos, destacando la influencia significativa de variables como área construida, baños y precio en la estructura de las propiedades.

  • La dimensión 2, con el 23.8% de explicación, resalta la relación clave entre habitaciones y estrato.

  • En la dimensión 1 las propiedades tienden a diferenciarse principalmente por su tamaño (área construida) y comodidades (baños y precio).

  • En la dimensión 2 la estratificación y el número de habitaciones juegan un papel destacado en la diferenciación de las propiedades.

En relación con el Análisis de conglomerados o clustering se encontró que:

  • Los clústeres 2 y 3 es donde se ubican menos propiedades entre los dos dan una suma de 3049 propiedades, en cambio en el clúster 1 hay un total de 5270 propiedades.

  • En el clúster 1 los precios son significativamente menores que en los otros dos clústeres.

  • Las propiedades con estratos más altos se encuentran se encuentran en los clústeres 2 y 3, a su vez en estos es donde se encuentran los precios más altos para las viviendas (866 millones y 464 millones en promedio, respectivamente).

  • Con relación a las características físicas o estructurales de las propiedades en los clústeres 2 y 3 el 50% de las propiedades cuentan con al menos 4 baños, en cambio en el clúster 1 el 50% de las propiedades cuentan con 2 baños.

  • En la misma línea, en relación con la cantidad de habitaciones hay diferencia entre los 3 clúster, donde el clúster 1 la media es de 3 habitaciones; en el clúster 2 la media es de 4 habitaciones; y en el clúster 3 la media es de 6 habitaciones.

  • El área construida en el 50% de las propiedades son de: el cluster 1 de 90 m2; clúster 2 de 250 m2; clúster 3 de 280 m2.

En relación con el Análisis de Correspondencia se encontró que:

  • Existe una relación entre las variables “zona” y “barrio”, lo que indica una similitud en sus patrones de categorías. Por otro lado, la variable “tipo” se encuentra más distante, señalando diferencias significativas en sus perfiles de categorías.

  • Se observaron agrupamientos claros de propiedades en la gráfica “PCA graph of individuals”, lo que sugiere la existencia de segmentos distintos en el mercado inmobiliario, como propiedades de lujo, propiedades urbanas, etc.