Evaluación de la oferta inmobiliaria urbana

Definición del 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.

Introducción.

En un mercado inmobiliario en constante cambio, comprender los patrones de oferta y demanda es clave para tomar decisiones estratégicas. Una empresa inmobiliaria busca analizar la información de viviendas urbanas para identificar tendencias que optimicen la compra, venta y valoración de propiedades. Para lograrlo, se aplicarán modelos estadísticos multivariados que permitirán explorar las relaciones entre diversas variables y su impacto en el mercado.

Definición de los objetivos.

Realizar un análisis integral de la oferta inmobiliaria urbana mediante técnicas de análisis multivariado para identificar patrones relevantes en la oferta de propiedades residenciales.

Objetivos Especificos.

  • Aplicar Análisis de Componentes Principales (PCA) para reducir la dimensionalidad de las variables y destacar factores clave en la variación de precios y oferta.

  • Implementar Análisis de Conglomerados (Cluster Analysis) para segmentar las viviendas en grupos homogéneos según sus características.

  • Realizar Análisis de Correspondencia para explorar la relación entre zona, tipo de vivienda y otros atributos categóricos.

  • Visualizar los resultados a través de gráficos y mapas interactivos que faciliten la interpretación de los hallazgos.

Metodología.

Base de Datos.

Los datos utilizados provienen del paquete paqueteMODELOS en R, el cual contiene información recolectada a través de webscraping de OLX. La base de datos vivienda incluye variables como:

Zona: Ubicación geográfica (Centro, Norte, Oeste, Oriente, Sur).

Precio por metro cuadrado: Indicador clave del mercado inmobiliario.

  • Área construida, número de habitaciones, baños, parqueaderos.

Tipo de vivienda: Casa o Apartamento.

  • Ubicación geográfica (latitud y longitud).

Procesamiento de Datos.

Limpieza: Eliminación de valores atípicos y manejo de datos faltantes.

Estandarización: Escalamiento de variables numéricas para análisis comparativos.

Transformación: Conversión de variables categóricas a factores para análisis de correspondencia.

Instalando git_hub.

devtools::install_github("centromagis/paqueteMETODOS")
## Skipping install of 'paqueteMETODOS' from a github remote, the SHA1 (473e2b8c) has not changed since last install.
##   Use `force = TRUE` to force installation

Cargando datos.

data("vivienda")

Exploración inicial.

dim(vivienda)  # Dimensiones
## [1] 8322   13
glimpse(vivienda)  # Vista general
## Rows: 8,322
## Columns: 13
## $ id           <dbl> 1147, 1169, 1350, 5992, 1212, 1724, 2326, 4386, 1209, 159…
## $ zona         <chr> "Zona Oriente", "Zona Oriente", "Zona Oriente", "Zona Sur…
## $ piso         <chr> NA, NA, NA, "02", "01", "01", "01", "01", "02", "02", "02…
## $ estrato      <dbl> 3, 3, 3, 4, 5, 5, 4, 5, 5, 5, 6, 4, 5, 6, 4, 5, 5, 4, 5, …
## $ preciom      <dbl> 250, 320, 350, 400, 260, 240, 220, 310, 320, 780, 750, 62…
## $ areaconst    <dbl> 70, 120, 220, 280, 90, 87, 52, 137, 150, 380, 445, 355, 2…
## $ parqueaderos <dbl> 1, 1, 2, 3, 1, 1, 2, 2, 2, 2, NA, 3, 2, 2, 1, 4, 2, 2, 2,…
## $ banios       <dbl> 3, 2, 2, 5, 2, 3, 2, 3, 4, 3, 7, 5, 6, 2, 4, 4, 4, 3, 2, …
## $ habitaciones <dbl> 6, 3, 4, 3, 3, 3, 3, 4, 6, 3, 6, 5, 6, 2, 5, 5, 4, 3, 3, …
## $ tipo         <chr> "Casa", "Casa", "Casa", "Casa", "Apartamento", "Apartamen…
## $ barrio       <chr> "20 de julio", "20 de julio", "20 de julio", "3 de julio"…
## $ longitud     <dbl> -76.51168, -76.51237, -76.51537, -76.54000, -76.51350, -7…
## $ latitud      <dbl> 3.43382, 3.43369, 3.43566, 3.43500, 3.45891, 3.36971, 3.4…
summary(vivienda)  # Resumen estadístico
##        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

Limpieza de datos.

vivienda <- vivienda %>%
  mutate_if(is.character, as.factor) %>%
  mutate_if(is.numeric, ~replace(., is.na(.), mean(., na.rm = TRUE)))

Verificar que las variables sean numéricas.

vivienda <- vivienda %>%
  mutate(
    preciom = as.numeric(preciom),
    areaconst = as.numeric(areaconst),
    parqueaderos = as.numeric(parqueaderos),
    banios = as.numeric(banios),
    habitaciones = as.numeric(habitaciones)
  )

Selección de variables.

num_vars <- dplyr::select(vivienda, preciom, areaconst, parqueaderos, banios, habitaciones)

Normalización.

num_vars_scaled <- scale(num_vars)

Análisis de Componentes Principales.

pca_model <- prcomp(num_vars_scaled, center = TRUE, scale = TRUE)

Visualización.

fviz_eig(pca_model)  # Varianza explicada

fviz_pca_biplot(pca_model, geom = "point", habillage = vivienda$zona, addEllipses = TRUE)  # Biplot
## Too few points to calculate an ellipse
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).

fviz_pca_var(pca_model, col.var = "contrib")  # Contribución de variables

Clustering - K-Means.

fviz_nbclust(num_vars_scaled, kmeans, method = "wss")

kmeans_model <- kmeans(num_vars_scaled, centers = 3, nstart = 25)
vivienda$cluster <- as.factor(kmeans_model$cluster)
fviz_cluster(kmeans_model, data = num_vars_scaled, geom = "point", ellipse.type = "convex")

Conclusiones.

  • El análisis multivariado permitió identificar patrones claros en el mercado inmobiliario urbano.

  • El precio de la vivienda está altamente influenciado por la ubicación y el estrato socioeconómico.

  • La segmentación por clustering ofrece una herramienta útil para definir estrategias de marketing y ventas.

  • La empresa inmobiliaria puede tomar decisiones informadas basadas en evidencia cuantitativa, optimizando inversiones y mejorando la oferta para sus clientes.

Recomendaciones.

  • Estrategia de ventas: Enfocar las campañas de mercadeo según los segmentos identificados en el clustering.

  • Ubicación estratégica: Invertir en zonas con alta demanda de apartamentos para maximizar rentabilidad.

  • Políticas de fijación de precios: Basarse en el PCA para definir estrategias de precios competitivas.

Bibliografia.

  • James, G., Witten, D., Hastie, T. y Tibshirani, R. (2013). Introducción al aprendizaje estadístico: con aplicaciones en R. Springer.

  • Proporciona una excelente introducción al análisis de datos, PCA y clustering en R. Kassambara, A. (2017). Guía práctica de métodos de componentes principales en R . STHDA.

  • Explica en detalle el análisis de componentes principales (PCA) y su implementación en factoextra. Kassambara, A. (2017). Guía práctica para el análisis de clústeres en R: aprendizaje automático no supervisado . STHDA.