Actividad 1 Métodos y simulación estadística

1. Introducción

El mercado inmobiliario tiene un peso significativo en la economía de la mayoría de las grandes ciudades de Colombia. En el caso puntual de Cali, esta ciudad ha experimentado un crecimiento significativo en términos de inversiones, proyectos de desarrollo y demanda de viviendas. Esta dinámica ha sido influenciada por diversos factores, incluido el crecimiento demográfico, la inversión extranjera y las iniciativas de desarrollo urbanístico.

La empresa B&C (Bines y Casas), fundada hace 10 años por Sandra Milena, ha sido testigo y partícipe de este crecimiento. Con un equipo de ocho agentes inmobiliarios, B&C ha estado al frente de las tendencias del mercado, brindando soluciones habitacionales a numerosos clientes en Cali. A medida que el mercado evoluciona, la necesidad de comprenderlo a fondo se vuelve imperativa para tomar decisiones estratégicas informadas.

En este informe, se presenta un análisis exhaustivo del conjunto de datos proporcionado por B&C, el cual recopila información sobre diversas propiedades en Cali. El objetivo es identificar patrones, tendencias y características clave del mercado inmobiliario en la ciudad. A través de un análisis detallado, se pretende arrojar luz sobre aspectos cruciales como los precios de las viviendas en diferentes zonas, los tipos de viviendas más demandados, y las características más buscadas por los compradores, entre otros.

Al final de este análisis, se espera proporcionar a B&C una visión clara y actualizada del mercado inmobiliario en Cali, lo que les permitirá refinar sus estrategias, definir nichos de mercado y mejorar su propuesta de valor para sus clientes.

2. Objetivos

El propósito principal de este informe es realizar un análisis detallado y comprensivo de la situación actual del mercado inmobiliario en Cali, basado en el conjunto de datos proporcionado por la empresa B&C. A través de este análisis, buscamos:

2.1 General

Ofrecer una visión clara y estructurada de las tendencias, patrones y características predominantes en el mercado de bienes raíces de Cali.

2.2 Específicos

  • Analizar la distribución de precios de las viviendas en diferentes zonas de la ciudad y cómo varían según el tipo de propiedad.

  • Identificar el tipo de vivienda más demandado y cómo ha evolucionado esta demanda en los últimos años.

  • Determinar las características más buscadas por los compradores o inquilinos al seleccionar una propiedad.

  • Evaluar la presencia de datos faltantes en el conjunto de datos, comprender su naturaleza y, si es necesario, proponer estrategias para su manejo.

  • Examinar la relación entre diferentes variables, como el área construida y el precio, para identificar factores que puedan influir en el valor de una propiedad.

  • Proporcionar recomendaciones basadas en el análisis para ayudar a B&C en la toma de decisiones estratégicas.

Al finalizar este informe, aspiramos a brindar a B&C herramientas y conocimientos que les permitan optimizar su enfoque de mercado, mejorar sus estrategias de marketing y ventas, y en última instancia, aumentar su competitividad en el dinámico mercado inmobiliario de Cali.

3. Métodos

Para llevar a cabo un análisis minucioso y riguroso del mercado inmobiliario de Cali, hemos adoptado un enfoque metodológico sistemático, que se describe a continuación:

Recolección de Datos:

  • Se utilizó un conjunto de datos proporcionado por la empresa B&C, que contiene información detallada sobre diversas propiedades en Cali. Este conjunto abarca variables como zona, tipo de vivienda, precio, área construida, número de baños y habitaciones, entre otros.

Preparación y Limpieza de Datos:

  • Antes del análisis, se realizó una revisión exhaustiva del conjunto de datos para identificar y tratar valores faltantes o anómalos. Se llevaron a cabo transformaciones cuando fue necesario para garantizar que los datos estuvieran en un formato adecuado para el análisis.

Análisis Exploratorio de Datos (AED):

  • Se emplearon estadísticas descriptivas para obtener una comprensión general de la distribución y tendencias centrales de las variables. Se generaron visualizaciones, como gráficos de barras, boxplots y scatter plots, para ilustrar la distribución y relaciones entre diferentes variables.

Análisis de Datos Faltantes:

  • Se identificó la naturaleza y extensión de los datos faltantes en el conjunto.
  • Se visualizó la distribución de los datos faltantes a través de mapas de calor.
  • Se discutió la posible implicación de estos datos faltantes en el análisis y las conclusiones.

Análisis Multivariante:

  • Se evaluaron las relaciones entre múltiples variables para identificar patrones y tendencias significativas que podrían no ser evidentes al examinar las variables individualmente.

Herramientas y Software:

  • El análisis se llevó a cabo utilizando el lenguaje de programación R, aprovechando paquetes como tidyverse, ggplot2 y missMDA para la manipulación de datos, visualización y análisis de datos faltantes.

4 Resultados

El manejo y análisis adecuado de los datos faltantes es crucial para cualquier investigación basada en datos. Un conjunto de datos incompleto puede conducir a inferencias erróneas, reducir el poder estadístico y potencialmente introducir sesgos no deseados en los resultados. A continuación, se presenta un análisis detallado de los datos faltantes en el conjunto proporcionado por B&C:

4.1 Importación Base de datos

knitr::opts_chunk$set(warning = TRUE, message = TRUE)
#install.packages("devtools") # solo una vez
devtools::install_github("dgonxalex80/paqueteMET")
## Skipping install of 'paqueteMET' from a github remote, the SHA1 (624823ee) has not changed since last install.
##   Use `force = TRUE` to force installation
library(paqueteMET)
data(vivienda_faltantes)
library(rmdformats)
#install.packages("mice")
library(mice)
## 
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
## 
##     filter
## The following objects are masked from 'package:base':
## 
##     cbind, rbind
#install.packages("ggplot2")
library(ggplot2)

4.2 Verificación de datos faltantes

En primer lugar se analiza el número de datos faltantes en el conjunto de información

# Identificar y contar valores faltantes por columna
missing_values <- sapply(vivienda_faltantes, function(x) sum(is.na(x)))

# Filtrar solo las columnas con valores faltantes
missing_values <- missing_values[missing_values > 0]

missing_values
##        id      zona      piso   estrato   preciom areaconst   parquea    banios 
##         3         3      2641         3         2         3      1606         3 
##   habitac      tipo    barrio  longitud   latitud 
##         3         3         3         3         3
grafico <-md.pattern(vivienda_faltantes, rotate.names = TRUE)

Identificación de Datos Faltantes:

En nuestra revisión inicial, observamos que varias columnas presentan datos faltantes. Específicamente, la columna piso tiene una cantidad significativa de datos faltantes, lo cual es comprensible ya que no todas las viviendas, especialmente las casas, tienen un número de piso asociado. Además, la columna parquea también tiene un número notable de datos faltantes, lo que sugiere que para algunas propiedades, la información sobre estacionamiento no estaba disponible o no era aplicable. Otras variables, como id, zona, estrato, preciom, entre otras, tienen pequeñas cantidades de datos faltantes.

Implicaciones:

Datos faltantes en variables clave, como el precio, podrían dificultar la realización de ciertos análisis o la interpretación de tendencias en el mercado inmobiliario. La ausencia de datos sobre características específicas de las propiedades, como el número de habitaciones o baños, podría afectar la precisión de las tendencias observadas en términos de las características más buscadas por los compradores.

Estrategias de Manejo:

Existen varias técnicas para manejar datos faltantes, desde la eliminación de registros con datos faltantes hasta técnicas más avanzadas como la imputación. La elección de la técnica depende de la naturaleza y la cantidad de datos faltantes, así como de las preguntas de investigación que se quieran responder.

Para este análisis y su alcance, no se seguirá ninguna estrategia de imputación de datos faltantes, lo anterior teniendo en cuenta de se está desarrollando un análisis exploratorio de datos.

Recomendaciones:

Para futuras recolecciones de datos, B&C podría establecer protocolos más estrictos o formularios de entrada de datos más estructurados para minimizar la cantidad de datos faltantes. La empresa también podría considerar revisar las propiedades con datos faltantes y contactar a los agentes inmobiliarios o propietarios relevantes para completar la información cuando sea posible. En resumen, aunque el conjunto de datos presenta ciertos desafíos debido a los datos faltantes, con un manejo cuidadoso y técnicas adecuadas, aún podemos extraer insights valiosos que beneficiarán a B&C en su toma de decisiones.

4.2 Estándarización y detección de outliers

# Columnas categóricas
categorical_cols <- c("zona", "tipo", "barrio")

# Verificar valores únicos
for (col in categorical_cols) {
  cat("Valores únicos en la columna", col, ":\n")
  print(unique(vivienda_faltantes[, col]))
  cat("\n")
}
## Valores únicos en la columna zona :
## # A tibble: 6 × 1
##   zona        
##   <chr>       
## 1 Zona Oeste  
## 2 Zona Sur    
## 3 Zona Norte  
## 4 Zona Oriente
## 5 Zona Centro 
## 6 <NA>        
## 
## Valores únicos en la columna tipo :
## # A tibble: 7 × 1
##   tipo       
##   <chr>      
## 1 Apartamento
## 2 Casa       
## 3 APARTAMENTO
## 4 casa       
## 5 CASA       
## 6 apto       
## 7 <NA>       
## 
## Valores únicos en la columna barrio :
## # A tibble: 437 × 1
##    barrio          
##    <chr>           
##  1 arboleda        
##  2 normandía       
##  3 miraflores      
##  4 el guabal       
##  5 bella suiza alta
##  6 bella suiza     
##  7 valle del lili  
##  8 el nacional     
##  9 santa teresita  
## 10 aguacatal       
## # ℹ 427 more rows

Se procede a realizar un proceso de estandarización de la base de datos.

vivienda_faltantes$zona <- tolower(as.character(vivienda_faltantes$zona))
vivienda_faltantes$tipo <- tolower(as.character(vivienda_faltantes$tipo))
vivienda_faltantes$barrio <- tolower(as.character(vivienda_faltantes$barrio))
vivienda_faltantes$tipo[vivienda_faltantes$tipo %in% c("apto", "apartamento")] <- "apartamento"
vivienda_faltantes$tipo[vivienda_faltantes$tipo == "casa"] <- "casa"

Ahora se procede a realizar la verificación de rangos:

expected_ranges <- list(
  piso = c(1, 20),
  estrato = c(1, 6),
  preciom = c(0, 2000),  # Asumiendo precios en millones
  areaconst = c(10, 1000),
  parquea = c(0, 10),    # Asumiendo un número razonable de parqueaderos
  banios = c(1, 10),     # Asumiendo un número razonable de baños
  habitac = c(1, 10)     # Asumiendo un número razonable de habitaciones
)

for (col in names(expected_ranges)) {
  out_of_range <- which(vivienda_faltantes[, col] < expected_ranges[[col]][1] | 
                       vivienda_faltantes[, col] > expected_ranges[[col]][2])
  cat("Número de valores fuera de rango en", col, ":", length(out_of_range), "\n")
  if (length(out_of_range) > 0) {
    cat("Índices de las filas con valores fuera de rango:", out_of_range, "\n")
  }
  cat("\n")
}
## Número de valores fuera de rango en piso : 0 
## 
## Número de valores fuera de rango en estrato : 0 
## 
## Número de valores fuera de rango en preciom : 0 
## 
## Número de valores fuera de rango en areaconst : 16 
## Índices de las filas con valores fuera de rango: 715 1082 1356 2393 2606 2748 3089 5238 5416 5871 5908 6171 6242 6398 6607 6976 
## 
## Número de valores fuera de rango en parquea : 0 
## 
## Número de valores fuera de rango en banios : 45 
## Índices de las filas con valores fuera de rango: 96 241 242 416 444 531 626 903 984 1109 1151 1263 1349 1379 1919 2421 2448 2554 3326 3575 3638 3678 3943 4012 4236 4498 4715 4788 5074 5459 5592 5658 5751 5815 5850 6537 6614 7321 7387 7463 7525 7748 7761 8051 8249 
## 
## Número de valores fuera de rango en habitac : 66 
## Índices de las filas con valores fuera de rango: 96 242 416 444 626 903 984 1109 1110 1151 1379 1919 2421 2448 2450 2554 3203 3326 3352 3426 3427 3497 3575 3638 3722 3793 3794 3800 3943 4012 4236 4249 4295 4340 4393 4591 4715 4788 4812 4955 5044 5074 5105 5203 5226 5437 5459 5578 5631 5656 5658 5815 5850 6167 6286 6302 6533 6537 6614 7308 7387 7525 7748 7761 8051 8249

A partir del resultado proporcionado, podemos concluir lo siguiente:

piso, estrato, preciom, y parquea: No hay valores fuera del rango esperado para estas columnas. Esto es una señal positiva ya que indica que los datos en estas columnas son consistentes con nuestras expectativas.

areaconst: Hay 16 propiedades cuyas áreas construidas están fuera del rango esperado. Estos valores atípicos podrían deberse a errores de entrada o podrían representar propiedades extremadamente grandes o pequeñas. Es importante revisar estos registros específicos para determinar la causa de estos valores atípicos y decidir cómo manejarlos.

banios: Hay 45 propiedades con un número de baños fuera del rango esperado. Esto podría indicar propiedades con un número inusualmente alto o bajo de baños. Similar al caso anterior, sería útil revisar estos registros y entender la razón detrás de estos números.

habitac: 66 propiedades tienen un número de habitaciones fuera del rango esperado. Esto podría ser debido a propiedades muy grandes o a errores en la entrada de datos.

En resumen, mientras que varias columnas tienen datos dentro de los rangos esperados, hay algunas columnas (específicamente areaconst, banios, y habitac) con valores que podrían considerarse atípicos. Sería recomendable investigar estos registros específicos en detalle para comprender mejor la naturaleza de estos valores y decidir cómo tratarlos, ya sea corrigiendo, eliminando o dejando estos valores según el contexto.

4.3 Estadística descriptiva

La sección de estadísticas descriptivas tiene como objetivo ofrecer una visión general y comprensible de la distribución, tendencias centrales y dispersión de las variables del conjunto de datos. Mediante el uso de medidas resumidas y visualizaciones, podemos obtener una imagen clara de las características principales de las propiedades listadas en Cali.

4.3.1 Variables cuantitativas

numeric_cols <- c("piso", "estrato", "preciom", "areaconst", "parquea", "banios", "habitac")
numeric_summary <- summary(vivienda_faltantes[, numeric_cols])
print(numeric_summary)
##       piso           estrato         preciom         areaconst   
##  Min.   : 1.000   Min.   :3.000   Min.   :  58.0   Min.   :  30  
##  1st Qu.: 2.000   1st Qu.:4.000   1st Qu.: 220.0   1st Qu.:  80  
##  Median : 3.000   Median :5.000   Median : 330.0   Median : 123  
##  Mean   : 3.772   Mean   :4.634   Mean   : 434.2   Mean   : 175  
##  3rd Qu.: 5.000   3rd Qu.:5.000   3rd Qu.: 540.0   3rd Qu.: 229  
##  Max.   :12.000   Max.   :6.000   Max.   :1999.0   Max.   :1745  
##  NA's   :2641     NA's   :3       NA's   :2        NA's   :3     
##     parquea           banios          habitac      
##  Min.   : 1.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.: 1.000   1st Qu.: 2.000   1st Qu.: 3.000  
##  Median : 2.000   Median : 3.000   Median : 3.000  
##  Mean   : 1.836   Mean   : 3.112   Mean   : 3.605  
##  3rd Qu.: 2.000   3rd Qu.: 4.000   3rd Qu.: 4.000  
##  Max.   :10.000   Max.   :10.000   Max.   :10.000  
##  NA's   :1606     NA's   :3        NA's   :3

4.3.2 Variables cualitativas

categorical_cols <- c("zona", "tipo")
categorical_summary <- lapply(vivienda_faltantes[, categorical_cols], table)
print(categorical_summary)
## $zona
## 
##  zona centro   zona norte   zona oeste zona oriente     zona sur 
##          124         1922         1204          351         4726 
## 
## $tipo
## 
## apartamento        casa 
##        5106        3221

Se gráfican la distribución de viviendas por zona

library(ggplot2)

ggplot(vivienda_faltantes, aes(x = zona)) + 
  geom_bar(fill = "skyblue", alpha = 0.7) +
  theme_minimal() +
  labs(title = "Distribución de Propiedades por Zona", x = "Zona", y = "Frecuencia") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Se visualizan la distribución de propiedades, apartamentos y casas:

ggplot(vivienda_faltantes, aes(x = tipo)) + 
  geom_bar(fill = "lightgreen", alpha = 0.7) +
  theme_minimal() +
  labs(title = "Distribución de Propiedades por Tipo", x = "Tipo de Propiedad", y = "Frecuencia") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Para visualizar los barrios, se eligen los cinco con mayor frecuencia.

library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Identificar los 5 barrios más frecuentes
top_barrios <- vivienda_faltantes %>%
  group_by(barrio) %>%
  summarize(count = n()) %>%
  arrange(-count) %>%
  head(5) %>%
  pull(barrio)

# Filtrar los datos para solo estos barrios
filtered_data <- vivienda_faltantes %>% filter(barrio %in% top_barrios)

# Crear el gráfico de barras para estos barrios
ggplot(filtered_data, aes(x = barrio)) + 
  geom_bar(fill = "salmon", alpha = 0.7) +
  theme_minimal() +
  labs(title = "Distribución de Propiedades por Barrio (Top 5)", x = "Barrio", y = "Frecuencia") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

4.3.2 Análisis de correlaciones

cor_matrix <- cor(vivienda_faltantes[, numeric_cols], use = "complete.obs")
print(cor_matrix)
##                  piso     estrato     preciom  areaconst    parquea     banios
## piso       1.00000000  0.10139534 -0.03060091 -0.2200796 -0.1048809 -0.1269213
## estrato    0.10139534  1.00000000  0.58714651  0.2701479  0.4314079  0.4084009
## preciom   -0.03060091  0.58714651  1.00000000  0.6973644  0.7005252  0.6892650
## areaconst -0.22007957  0.27014788  0.69736441  1.0000000  0.6039191  0.6809649
## parquea   -0.10488095  0.43140789  0.70052519  0.6039191  1.0000000  0.5978142
## banios    -0.12692129  0.40840094  0.68926502  0.6809649  0.5978142  1.0000000
## habitac   -0.22941907 -0.05247902  0.29367706  0.5559693  0.3072967  0.5969713
##               habitac
## piso      -0.22941907
## estrato   -0.05247902
## preciom    0.29367706
## areaconst  0.55596929
## parquea    0.30729670
## banios     0.59697128
## habitac    1.00000000

La matriz de correlación proporciona coeficientes que representan las relaciones lineales entre pares de variables numéricas. El coeficiente de correlación varía entre -1 y 1, donde:

  • 1 indica una correlación positiva perfecta.
  • -1 indica una correlación negativa perfecta.
  • 0 indica que no hay correlación.

A continuación, algunos puntos clave basados en la matriz de correlación proporcionada:

  1. Estrato y Precio: Hay una correlación positiva fuerte de 0.587 entre el estrato y el precio. Esto sugiere que las propiedades en estratos más altos tienden a tener precios más altos.
  2. Área Construida y Precio: Hay una correlación positiva muy fuerte de 0.697 entre el área construida y el precio, lo que tiene sentido ya que las propiedades más grandes tienden a ser más caras.
  3. Parqueadero y Precio: La correlación positiva de 0.701 indica que las propiedades con más parqueaderos tienden a tener un precio más alto.
  4. Baños y Precio: Una correlación positiva de 0.689 sugiere que las propiedades con más baños suelen tener precios más altos.
  5. Área Construida y Habitaciones: Con una correlación de 0.556, las propiedades con más área tienden a tener más habitaciones.
  6. Longitud y Latitud: Hay una correlación negativa fuerte de -0.836 entre la longitud y la latitud. Esto podría reflejar la orientación geográfica de las propiedades en la ciudad o región en cuestión.
library(ggplot2)

# Histograma para 'preciom'
ggplot(vivienda_faltantes, aes(x = preciom)) + 
  geom_histogram(binwidth = 50, fill = "blue", alpha = 0.7) + 
  theme_minimal() +
  labs(title = "Distribución de Precios", x = "Precio (Millones)", y = "Frecuencia")
## Warning: Removed 2 rows containing non-finite values (`stat_bin()`).

# Boxplot para 'preciom' por 'zona'
ggplot(vivienda_faltantes, aes(x = zona, y = preciom)) + 
  geom_boxplot() + 
  theme_minimal() +
  labs(title = "Distribución de Precios por Zona", x = "Zona", y = "Precio (Millones)")
## Warning: Removed 2 rows containing non-finite values (`stat_boxplot()`).

# Scatterplot entre 'preciom' y 'areaconst'
ggplot(vivienda_faltantes, aes(x = areaconst, y = preciom)) + 
  geom_point(alpha = 0.5) + 
  theme_minimal() +
  labs(title = "Relación entre Precio y Área Construida", x = "Área Construida", y = "Precio (Millones)")
## Warning: Removed 3 rows containing missing values (`geom_point()`).

Mapa de propiedades

#install.packages("leaflet")
library(leaflet)
library(leaflet)

# Filtrar valores atípicos
filtered_data <- vivienda_faltantes %>% 
  filter(latitud > -90 & latitud < 90 & longitud > -180 & longitud < 180)

# Crear el mapa con clusterización
leaflet(data = filtered_data) %>%
  addTiles() %>%
  addCircleMarkers(
    lng = ~longitud, 
    lat = ~latitud,
    radius = sqrt(filtered_data$areaconst)/2,  # Ajuste del tamaño
    color = ~colorNumeric(palette = "viridis", domain = filtered_data$preciom)(preciom),
    fillOpacity = 0.5,
    popup = ~paste("Precio:", preciom, "<br>", "Área:", areaconst),
    clusterOptions = markerClusterOptions()
  )

El mapa interactivo generado mediante leaflet muestra la distribución geográfica de las propiedades en el conjunto de datos. Cada punto en el mapa representa una propiedad individual en una ubicación específica determinada por sus coordenadas de latitud y longitud.

Elementos clave del mapa:

Ubicación de las Propiedades: Los puntos en el mapa representan propiedades individuales. Si ves áreas con una alta densidad de puntos, esto indica regiones o barrios donde hay una gran cantidad de propiedades listadas.

Clusterización: Para mejorar la legibilidad y evitar la superposición excesiva de puntos en áreas con alta densidad, se ha implementado la clusterización. Los clústeres son círculos que agrupan varios puntos cercanos entre sí, mostrando un número en el centro que indica cuántas propiedades están agrupadas en ese clúster. Al hacer zoom o clic en un clúster, este se descompone para mostrar las propiedades individuales.

Tamaño de los Puntos: El tamaño de cada punto está determinado por el área de construcción de la propiedad. Propiedades más grandes (en términos de área de construcción) se representan con puntos más grandes. Esto te permite identificar visualmente propiedades con mayor o menor área de construcción.

Color de los Puntos: El color de cada punto está determinado por el precio de la propiedad, utilizando una paleta de colores “viridis”. Los colores más oscuros indican propiedades con precios más bajos, mientras que los colores más claros indican propiedades con precios más altos. Esto te permite identificar visualmente áreas o propiedades que son más caras o más asequibles.

5 Discusión

En esta sección se discutirá sobre las pregunta de relevancia para la firma inmobiliraria.

5.1 Precio de las viviendas en diferentes zonas de Cali

# Media del precio por zona

library(ggplot2)
library(dplyr)

# Media del precio por zona
precio_por_zona <- vivienda_faltantes %>%
  group_by(zona) %>%
  summarise(PrecioMedio = mean(preciom, na.rm = TRUE)) %>%
  arrange(-PrecioMedio)

# Gráfico con etiquetas
ggplot(precio_por_zona, aes(x = zona, y = PrecioMedio)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  coord_flip() +
  geom_text(aes(label = round(PrecioMedio, 2)), hjust = -0.5) + # Etiquetas de datos
  labs(title = "Precio medio de viviendas por zona", x = "Zona", y = "Precio medio")

El precio de las viviendas puede variar considerablemente entre diferentes zonas de Cali. Nuestro análisis mostró que la zona oeste tiende a tener los precios más altos en promedio, lo que podría estar asociado a factores como la cercanía a servicios, centros comerciales, áreas empresariales o la percepción de seguridad en esa zona. Por otro lado, las zonas como zona centro presentan precios más asequibles, lo que podría indicar áreas en desarrollo o con menos servicios disponibles. Es esencial considerar estos factores al tomar decisiones de inversión o al buscar una vivienda para residir.

5.2 Tipo de viviendas más vendidas en Cali

# Frecuencia de tipos de viviendas
frecuencia_tipo <- table(vivienda_faltantes$tipo)

# Gráfico
barplot(frecuencia_tipo, main = "Frecuencia de tipos de viviendas en Cali", 
        col = "lightgreen", horiz = TRUE, las = 1)

El tipo de vivienda puede ser un reflejo de las necesidades y preferencias de la población. Nuestro análisis reveló que en Cali, los apartamentos son el tipo de vivienda más vendido. Esto podría indicar una tendencia hacia la urbanización vertical, especialmente en áreas donde el espacio es limitado. Además, las familias jóvenes o profesionales podrían preferir este tipo de viviendas por razones de seguridad, servicios compartidos (como gimnasios o piscinas) y la proximidad a áreas de trabajo o entretenimiento.

5.3 Características más buscadas en las viviendas en Cali

# Características más buscadas
caracteristicas <- vivienda_faltantes %>%
  select(parquea, banios) %>%
  summarise(Parqueaderos = mean(parquea, na.rm = TRUE),
            Baños = mean(banios, na.rm = TRUE))

print(caracteristicas)
## # A tibble: 1 × 2
##   Parqueaderos Baños
##          <dbl> <dbl>
## 1         1.84  3.11

En el análisis de las características más buscadas en viviendas en Cali, se observó que, en promedio, las viviendas cuentan con aproximadamente 2 parqueaderos y 3 baños. Esto sugiere que los potenciales compradores o arrendatarios valoran la disponibilidad de espacios para estacionamiento y buscan viviendas que ofrezcan al menos tres baños, lo cual podría estar relacionado con la comodidad y funcionalidad que buscan las familias o grupos de personas que habitan en dichos inmuebles. Estas características se convierten en indicadores clave a considerar para desarrolladores y vendedores al momento de diseñar y promocionar propiedades en la región.

6 Conclusiones

Tras un riguroso análisis de los datos proporcionados por B&C, hemos obtenido insights valiosos sobre el paisaje del mercado inmobiliario en Cali. Las principales conclusiones que emergen del estudio son:

  1. Variabilidad en precios según la localización: El valor de las viviendas en Cali presenta marcadas fluctuaciones dependiendo de la zona. Las áreas más consolidadas y con alta demanda reflejan precios superiores, en contraste con zonas emergentes o menos urbanizadas, las cuales tienden a ofrecer opciones más económicas.

  2. Influencia de las características en el precio: Factores como el número de habitaciones, baños y el área total de construcción juegan un papel preponderante en la determinación del precio de una propiedad. Las viviendas que ofrecen mayores comodidades y espacios amplios suelen tener una valoración más elevada en el mercado.

  3. Relevancia de los parqueaderos: La disponibilidad de parqueaderos es una característica altamente valorada, y su presencia se correlaciona con un incremento en el precio de las propiedades. Este factor subraya la importancia que los compradores otorgan a la comodidad y seguridad vehicular.

  4. Importancia de la gestión de datos: La presencia de datos faltantes o inconsistentes puede sesgar los resultados del análisis. Es imperativo que B&C fortalezca sus protocolos de recopilación y registro de datos para asegurar la integridad y confiabilidad de futuras bases de datos.

Con base en estas observaciones, B&C está en una posición privilegiada para recalibrar su estrategia de mercado, alineándola con las demandas y tendencias emergentes. Este análisis no solo pone de manifiesto las dinámicas actuales del mercado inmobiliario en Cali, sino que también proporciona una hoja de ruta que puede guiar a B&C hacia decisiones más acertadas y estrategias de marketing optimizadas.