El mercado inmobiliario es un componente crucial de la economía de cualquier ciudad. Comprender las dinámicas y tendencias dentro de este mercado es fundamental para desarrolladores, inversores y planificadores urbanos, ya que les permite tomar decisiones informadas y estratégicas que afectan el desarrollo y la calidad de vida de sus habitantes.
En este estudio, nos sumergimos en el mercado inmobiliario de Cali, analizando una variedad de variables que incluyen ubicación, estrato socioeconómico, tipo de vivienda y precios. A través de un análisis detallado, hemos explorado cómo estas variables interactúan entre sí y cómo influyen en la oferta y demanda de propiedades en la ciudad.
Hemos descubierto que la ubicación desempeña un papel crucial en la determinación de los precios, con zonas como el Oeste y el Sur destacando por sus precios promedio más altos. Además, el estrato socioeconómico está estrechamente vinculado con el precio y el tamaño de las viviendas, reflejando las preferencias y capacidades de los diferentes segmentos de la población.
Un hallazgo interesante es la preferencia del mercado por las viviendas tipo casa, a pesar de representar una menor frecuencia en los datos en comparación con los apartamentos. Esto subraya la importancia de entender las preferencias de los compradores y adaptar la oferta de propiedades para satisfacer estas necesidades.
En conjunto, este estudio proporciona una visión completa del mercado inmobiliario de Cali, destacando tendencias, patrones y áreas de oportunidad para aquellos involucrados en el desarrollo y gestión del mercado inmobiliario. Estos conocimientos son fundamentales para promover un crecimiento sostenible y mejorar la calidad de vida en la Ciudad de Cali.
Analizar la oferta de casas en Cali para identificar las tendencias clave que guíen las decisiones comerciales de B&C. Esto incluye entender la distribución de precios, tipos de propiedades y características más demandadas.
3.1. Crecimiento del sector:
Aumento de la población: La ciudad ha experimentado un crecimiento poblacional constante, atrayendo a nuevos residentes por su ubicación estratégica, desarrollo económico y calidad de vida.
Inversión extranjera directa: El aumento de la inversión extranjera ha contribuido al desarrollo de nuevos proyectos inmobiliarios, especialmente en el segmento de vivienda de alto valor.
Dinamismo económico: El crecimiento de la economía local ha generado un mayor interés en la compra de vivienda, tanto para inversión como para uso propio.
3.2. Expectativas a futuro:
Se espera que el crecimiento del mercado inmobiliario de Cali continúe en los próximos años, lo que representa una oportunidad importante para las empresas del sector.
Se realizó un análisis descriptivo de la base de datos de B&C, que contiene información general sobre la oferta inmobiliaria con información sobre:
Precio de las viviendas
Ubicación en la Ciudad
Características (habitaciones, parqueaderos, tamaño, etc)
Para la realización de este analisis se utilizarán las siguientes tecnicas:
Medidas de tendencia central: Media, mediana y moda para determinar el precio promedio, el número de habitaciones y parqueaderos más comunes, y el área más usual de las casas.
Medidas de dispersión: Desviación estándar y rango para determinar la variabilidad en el precio, número de habitaciones, parqueaderos y área de las casas.
Visualización de datos: Gráficos y tablas para presentar la información de forma clara y concisa.
En esta sección se explicará y profundizara sobre todo el analisis desarrollado para la empresa B&C, detallando cada etapa del proceso.
5.1. Analisis de la base de datos
Para iniciar el análisis del mercado inmobiliario en la Ciudad de Cali, es crucial primero reconocer todas las variables disponibles en la base de datos que utilizaremos. La siguiente tabla presenta la información que contamos, mostrando diferentes variables y sus respectivos tipos de datos, incluyendo variables categóricas y cuantitativas.
data("vivienda_faltantes") #Obtenemos la base de datos
kable(data.frame(lapply(vivienda_faltantes, class)), format = "html", caption = "Variables y su tipo de dato")
| id | zona | piso | estrato | preciom | areaconst | parquea | banios | habitac | tipo | barrio | longitud | latitud |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| numeric | character | numeric | numeric | numeric | numeric | numeric | numeric | numeric | character | character | numeric | numeric |
Después de examinar la estructura de los datos, se procede con la limpieza para abordar los valores faltantes y los duplicados:
viviendas_datos <- rename(vivienda_faltantes, "Precio (m)" = "preciom", "Parqueaderos" = "parquea", "Tipo Vivienda" = "tipo")
kable(data.frame(lapply(viviendas_datos, class)), format = "html", caption = "Variables y su tipo de dato")
| id | zona | piso | estrato | Precio..m. | areaconst | Parqueaderos | banios | habitac | Tipo.Vivienda | barrio | longitud | latitud |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| numeric | character | numeric | numeric | numeric | numeric | numeric | numeric | numeric | character | character | numeric | numeric |
5.2. Limpieza de datos faltantes y duplicados
La variable “id” sirve como referencia única para cada casa en nuestra base de datos. Es imperativo garantizar que cada “id” aparezca solo una vez para evitar distorsiones en nuestro análisis. Por lo tanto, se realiza una verificación para detectar y eliminar duplicados:
frecuencia_id <- table(vivienda_faltantes$id) %>% as.data.frame() #Obtenemos la frecuencia de los Id's
duplicados <- frecuencia_id[frecuencia_id$Freq > 1, ] #Filtramos solo los id's donde hay duplicados
duplicados
## Var1 Freq
## 8309 8309 2
## 8310 8310 2
## 8313 8313 2
## 8314 8314 2
## 8315 8315 2
## 8316 8316 2
## 8317 8317 2
## 8318 8318 2
viviendas_datos[viviendas_datos$id %in% duplicados$Var1, ]
## # A tibble: 16 × 13
## id zona piso estrato `Precio (m)` areaconst Parqueaderos banios habitac
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 8309 Zona … 5 4 150 56 NA 1 2
## 2 8310 Zona … 1 6 1600 463 4 6 3
## 3 8313 Zona … 7 6 525 137 2 3 3
## 4 8314 Zona … 7 6 1400 210 3 4 3
## 5 8315 Zona … NA 6 620 167 2 4 4
## 6 8316 Zona … 7 5 400 220 1 4 4
## 7 8317 Zona … NA 6 1100 290 4 4 3
## 8 8318 Zona … NA 4 580 295 2 5 5
## 9 8309 Zona … 5 4 150 56 NA 1 2
## 10 8310 Zona … 1 6 1600 463 4 6 3
## 11 8313 Zona … 7 6 525 137 2 3 3
## 12 8314 Zona … 7 6 1400 210 3 4 3
## 13 8315 Zona … NA 6 620 167 2 4 4
## 14 8316 Zona … 7 5 400 220 1 4 4
## 15 8317 Zona … NA 6 1100 290 4 4 3
## 16 8318 Zona … NA 4 580 295 2 5 5
## # ℹ 4 more variables: `Tipo Vivienda` <chr>, barrio <chr>, longitud <dbl>,
## # latitud <dbl>
La columna (Var1) representa el “id”, y se identifican registros duplicados donde ciertas viviendas aparecen dos veces en nuestra base de datos. Se procede a eliminar estos duplicados, ya que no afectan el análisis y pueden distorsionar los resultados.
viviendas_datos <- distinct(viviendas_datos) #Eliminamos duplicados
Después de eliminar los registros duplicados, se examinan los datos faltantes en nuestra base:
kable(colSums(is.na(viviendas_datos)), format = "html", caption = "Cantidad de faltantes en cada variable")
| x | |
|---|---|
| id | 2 |
| zona | 2 |
| piso | 2637 |
| estrato | 2 |
| Precio (m) | 1 |
| areaconst | 2 |
| Parqueaderos | 1604 |
| banios | 2 |
| habitac | 2 |
| Tipo Vivienda | 2 |
| barrio | 2 |
| longitud | 2 |
| latitud | 2 |
Se observa que las variables “piso” y “parqueaderos” muestran una cantidad considerable de datos faltantes, mientras que la variable “id” tiene solo dos registros faltantes. Dado que “id” es una variable no estadística, se eliminan directamente estos registros. Temporalmente, los datos faltantes en otras variables se imputan con la categoría especial “NA”. Posteriormente, se realizará una imputación final después de un análisis más detallado.
viviendas_datos <- viviendas_datos[!is.na(viviendas_datos$id), ]
Tras la eliminación de los registros faltantes de “id”, se presenta la distribución de los datos faltantes:
VIM::aggr(viviendas_datos, numbers=TRUE, cex.axis=0.7)
vivienda_sin_faltantes <- na.omit(viviendas_datos)
La visualización destaca que los datos faltantes se concentran en las variables “piso” y “parqueaderos”, lo que impide una simple eliminación de estos registros, ya que resultaría en la pérdida significativa de datos. Por lo tanto, se opta por la imputación de estos valores utilizando medidas de tendencia central, específicamente la mediana, considerando el tipo de edificación y la zona.
table(vivienda_sin_faltantes$`Tipo Vivienda`)
##
## Apartamento APARTAMENTO apto casa Casa CASA
## 3155 24 3 5 1617 4
En la base de datos solo existen dos tipos de vivienda, pero se ha diligenciado erroneamente esta variable, es decir, se crearon diferentes registros para definir el mismo tipo de vivienda (casa o apartamente), debido a esto, se decide homologar estos valores para obtener solo 2 tipos de viviendas.
vivienda_sin_faltantes[vivienda_sin_faltantes$`Tipo Vivienda` == "Apartamento", ]$`Tipo Vivienda` <- "APARTAMENTO"
vivienda_sin_faltantes[vivienda_sin_faltantes$`Tipo Vivienda` == "apto", ]$`Tipo Vivienda` <- "APARTAMENTO"
vivienda_sin_faltantes[vivienda_sin_faltantes$`Tipo Vivienda` == "casa", ]$`Tipo Vivienda` <- "CASA"
vivienda_sin_faltantes[vivienda_sin_faltantes$`Tipo Vivienda` == "Casa", ]$`Tipo Vivienda` <- "CASA"
viviendas_datos[viviendas_datos$`Tipo Vivienda` == "Apartamento", ]$`Tipo Vivienda` <- "APARTAMENTO"
viviendas_datos[viviendas_datos$`Tipo Vivienda` == "apto", ]$`Tipo Vivienda` <- "APARTAMENTO"
viviendas_datos[viviendas_datos$`Tipo Vivienda` == "casa", ]$`Tipo Vivienda` <- "CASA"
viviendas_datos[viviendas_datos$`Tipo Vivienda` == "Casa", ]$`Tipo Vivienda` <- "CASA"
table(vivienda_sin_faltantes$`Tipo Vivienda`)
##
## APARTAMENTO CASA
## 3182 1626
A continuación se muestra las medidas de tendencia central para estas variables:
data_zonas <- distinct(vivienda_sin_faltantes[, c("zona", "Tipo Vivienda")] %>% as.data.frame())
promedios_piso <- numeric(length(data_zonas))
medianas_piso <- numeric(length(data_zonas))
moda_piso <- numeric(length(data_zonas))
promedios_parqueaderos <- numeric(length(data_zonas))
medianas_parqueaderos <- numeric(length(data_zonas))
moda_parqueaderos <- numeric(length(data_zonas))
for(i in 1:length(data_zonas$zona)){
vivienda_zona = vivienda_sin_faltantes[vivienda_sin_faltantes$zona == data_zonas$zona[i] & vivienda_sin_faltantes$`Tipo Vivienda` == data_zonas$`Tipo Vivienda`[i], ]
promedios_piso[i] = mean(vivienda_zona$piso)
promedios_parqueaderos[i] = mean(vivienda_zona$Parqueaderos)
medianas_piso[i] = median(vivienda_zona$piso)
medianas_parqueaderos[i] = median(vivienda_zona$Parqueaderos)
# Calcula la tabla de frecuencias
frecuencia_piso <- table(vivienda_zona$piso)
frecuencia_parqueaderos <- table(vivienda_zona$Parqueaderos)
# Encuentra el valor modal (moda)
moda_piso[i] <- names(frecuencia_piso)[which.max(frecuencia_piso)] %>% as.numeric()
moda_parqueaderos[i] <- names(frecuencia_parqueaderos)[which.max(frecuencia_parqueaderos)] %>% as.numeric()
}
resumen_zona <- data.frame(tipo_vivienda = data_zonas$`Tipo Vivienda`, zona = data_zonas$zona, media_piso = promedios_piso, mediana_piso = medianas_piso, moda_piso = moda_piso, media_parqueaderos = promedios_parqueaderos, mediana_parqueaderos = medianas_parqueaderos, moda_parqueaderos = moda_parqueaderos)
kable(resumen_zona, format = "html")
| tipo_vivienda | zona | media_piso | mediana_piso | moda_piso | media_parqueaderos | mediana_parqueaderos | moda_parqueaderos |
|---|---|---|---|---|---|---|---|
| APARTAMENTO | Zona Oeste | 5.077728 | 5 | 3 | 2.121076 | 2 | 2 |
| CASA | Zona Oeste | 2.654762 | 2 | 2 | 2.190476 | 2 | 2 |
| CASA | Zona Sur | 2.215136 | 2 | 2 | 2.429422 | 2 | 2 |
| APARTAMENTO | Zona Sur | 4.554839 | 4 | 4 | 1.398387 | 1 | 1 |
| CASA | Zona Norte | 1.956693 | 2 | 2 | 2.389764 | 2 | 2 |
| APARTAMENTO | Zona Norte | 5.061709 | 4 | 4 | 1.397152 | 1 | 1 |
| CASA | Zona Centro | 1.500000 | 1 | 1 | 1.343750 | 1 | 1 |
| CASA | Zona Oriente | 2.000000 | 2 | 1 | 1.362500 | 1 | 1 |
| APARTAMENTO | Zona Centro | 6.250000 | 5 | 5 | 1.000000 | 1 | 1 |
| APARTAMENTO | Zona Oriente | 3.294118 | 4 | 5 | 1.176471 | 1 | 1 |
Se observa que, aunque existen tres medidas de tendencia central, todas proporcionan valores similares para ambas variables, lo que respalda la elección de la mediana como una medida representativa para la imputación.
for(i in 1:length(resumen_zona$zona)){
condicion_1 <- viviendas_datos$zona == resumen_zona$zona[i]
condicion_2 <- viviendas_datos$`Tipo Vivienda` == resumen_zona$tipo_vivienda[i]
condicion_3 <- is.na(viviendas_datos$piso)
condicion_4 <- is.na(viviendas_datos$Parqueaderos)
viviendas_datos[condicion_1 & condicion_2 & condicion_3, ]$piso <- resumen_zona$mediana_piso[i]
viviendas_datos[condicion_1 & condicion_2 & condicion_4, ]$Parqueaderos <- resumen_zona$mediana_parqueaderos[i]
}
6. Resultados
6.1. Analisis por variable
Para obtener una comprensión del mercado inmobiliario, es esencial iniciar un análisis detallado de las diversas variables presentes en nuestra base de datos. Este análisis por variable nos permitirá desentrañar las complejidades y tendencias que influyen en el panorama inmobiliario de la Ciudad de Cali. Al abordar cada variable individualmente, podemos obtener una visión completa y detallada de cómo interactúan entre sí y cómo impactan en el mercado en su conjunto.
frecuencia_tipo_vivienda <- table(viviendas_datos$`Tipo Vivienda`) %>% as.data.frame()
frecuencia_tipo_vivienda$proporcion <- frecuencia_tipo_vivienda$Freq/sum(frecuencia_tipo_vivienda$Freq)
frecuencia_tipo_vivienda$etiqueta = paste0(round(frecuencia_tipo_vivienda$proporcion*100, 1), "%")
# Crea el gráfico de pastel
ggplot(frecuencia_tipo_vivienda, aes(x = "", y = proporcion, fill = Var1)) +
geom_bar(width = 1, stat = "identity") +
coord_polar("y", start = 0) +
theme_void() +
geom_text(aes(label = etiqueta), position = position_stack(vjust = 0.5))
El gráfico anterior ilustra la distribución de datos para la variable mencionada. Según nuestra base de datos, el 61% de las edificaciones corresponden a apartamentos, mientras que el restante 39% corresponde a casas. Este hallazgo revela una tendencia significativa en el mercado inmobiliario de Cali: hay una mayor representación de apartamentos en comparación con las casas.
frecuencia_zona <- table(viviendas_datos$zona) %>% as.data.frame()
frecuencia_zona$proporcion <- frecuencia_zona$Freq/sum(frecuencia_zona$Freq)
frecuencia_zona$proporcion <- paste0(round(frecuencia_zona$proporcion*100, 1), "%")
frecuencia_zona$etiqueta <- paste(frecuencia_zona$Freq, frecuencia_zona$proporcion, sep = "; ")
# Crear el gráfico de barras
ggplot(frecuencia_zona, aes(x=Var1, y=Freq)) +
geom_bar(stat="identity", fill="steelblue") +
geom_text(aes(label=etiqueta), vjust=-0.3, size=3.5) +
theme_minimal() +
labs(x="Zonas", y="Frecuencia", title="Viviendas por Zona") +
theme(plot.title = element_text(hjust = 0.5))
El análisis del gráfico de cantidad de viviendas por zona revela una
distribución desigual en la ciudad de Cali, con una clara concentración
en la zona Sur, que representa más de la mitad del total de ventas, con
un impresionante 56.8%. La zona Norte ocupa el segundo lugar con un
23.1%, mientras que las zonas Oeste, Oriente y Centro tienen una
participación menor, con 14.4%, 4.2% y 1.5% respectivamente.
La alta concentración de viviendas en la zona Sur podría atribuirse a varios factores. Por ejemplo, la disponibilidad de servicios, la accesibilidad y practicidad en la movilidad dentro de la zona, así como consideraciones de seguridad, pueden influir en la preferencia de los compradores por establecerse en esta área de la ciudad. Además, la presencia de algunos centros comerciales y otros servicios podría también impulsar la demanda de viviendas en esta zona.
La zona Norte, aunque no tan dominante como la Sur, sigue siendo una opción popular para los compradores. Su atractivo podría estar relacionado con su proximidad a puntos estratégicos, como áreas comerciales o zonas de interés cultural, así como la disponibilidad de servicios y una infraestructura establecida.
En contraste, las zonas Oeste, Oriente y Centro muestran una menor cantidad de ventas. Esto podría atribuirse a una serie de factores, como la falta de oferta de vivienda en estas áreas, la presencia predominante de locales comerciales que desalientan la residencia, así como problemas de tráfico y densidad poblacional, especialmente en el caso del Centro, que podría resultar menos atractivo para los compradores que buscan una mayor tranquilidad y comodidad en su entorno residencial.
frecuencia_estrato <- table(viviendas_datos$estrato) %>% as.data.frame()
frecuencia_estrato$proporcion <-frecuencia_estrato$Freq/sum(frecuencia_estrato$Freq)
frecuencia_estrato$proporcion <- paste0(round(frecuencia_estrato$proporcion*100, 1), "%")
frecuencia_estrato$etiqueta <- paste(frecuencia_estrato$Freq, frecuencia_estrato$proporcion, sep = ", ")
# Crear el gráfico de barras
ggplot(frecuencia_estrato, aes(x=Var1, y=Freq)) +
geom_bar(stat="identity", fill="goldenrod") +
geom_text(aes(label = etiqueta), vjust = -0.3) +
theme_minimal() +
labs(x="Estrato", y="Frecuencia", title="Viviendas por Estrato") +
theme(plot.title = element_text(hjust = 0.5))
Se observa que la mayor cantidad de viviendas se concentra en los estratos 4, 5 y 6, representando un 25.6%, 33.1% y 23.9% respectivamente. Estos datos revelan que el 82.6% de las viviendas se encuentran en estos estratos socioeconómicos, lo que sugiere que la mayoría de los datos reside en áreas con un nivel socioeconómico medio-alto o alto.
En contraste, el estrato 3 muestra la menor cantidad de viviendas, con solo un 17.5% del total. Esta distribución puede estar relacionada con la alta concentración de viviendas en la zona sur, donde los estratos suelen ser más altos y los precios de las propiedades tienden a ser más elevados. Estos barrios suelen ser más apetecidos debido a su ubicación privilegiada y a la disponibilidad de servicios y comodidades, lo que podría explicar la menor presencia de viviendas en estratos más bajos en esta área.
Este análisis de la distribución de viviendas por estrato socioeconómico proporciona una visión importante sobre la demografía y las preferencias residenciales en la ciudad de Cali. Puede ser útil para entender las dinámicas del mercado inmobiliario y para la planificación urbana y el desarrollo socioeconómico de la ciudad.
# Crear el histograma
ggplot(viviendas_datos, aes(x=piso)) +
geom_histogram(binwidth=1, fill="steelblue", color="black") +
theme_minimal() +
labs(x="piso", y="Frecuencia", title="Distribución piso") +
theme(plot.title = element_text(hjust = 0.5))
La distribución de datos revela una concentración significativa de viviendas en los pisos 1 al 5, lo que sugiere que la mayoría de las propiedades en nuestra base de datos se encuentran dentro de este rango. Además, se observa una cantidad limitada de datos por encima del piso 5.
Este patrón puede atribuirse a varias razones. Una de ellas podría ser la preferencia de las personas por apartamentos en pisos más bajos debido a su comodidad y accesibilidad. Los pisos más bajos suelen ser más accesibles y convenientes para muchos, especialmente para aquellos con movilidad limitada o que prefieren evitar el uso constante de ascensores. Además, los apartamentos en pisos bajos pueden ofrecer una sensación de seguridad y conexión más directa con el entorno circundante.
Por otro lado, la disponibilidad de apartamentos en pisos más altos puede ser más limitada, ya que estos suelen ser más demandados por otras razones además de una residencia, como vistas panorámicas, menor ruido y privacidad. Esto podría explicar por qué hay menos datos por encima del piso 5 en nuestra base de datos.
La concentración de viviendas en pisos más bajos en nuestra base de datos sugiere una preferencia generalizada por la comodidad y accesibilidad, mientras que la disponibilidad limitada de datos en pisos más altos podría reflejar una mayor demanda y selectividad por parte de los compradores.
# Crear el histograma
ggplot(viviendas_datos, aes(x=habitac)) +
geom_histogram(binwidth=1, fill="goldenrod", color="black") +
theme_minimal() +
labs(x="habitaciones", y="Frecuencia", title="Distribución habitaciones") +
theme(plot.title = element_text(hjust = 0.5))
La distribución de habitaciones en las viviendas revela que la mayoría de las propiedades tienen entre 2 y 4 habitaciones, una cantidad muy común para viviendas en los estratos que estamos analizando. Sin embargo, también observamos un número reducido de edificaciones con 0 habitaciones.
Es importante destacar que estas viviendas con 0 habitaciones son casos poco comunes y podrían corresponder a apartaestudios muy pequeños o a edificaciones que no están destinadas a ser viviendas, como locales comerciales o espacios de almacenamiento. A pesar de ser casos atípicos, conservaremos esta información en nuestros resultados finales, ya que puede proporcionar insights interesantes sobre la diversidad de propiedades en el mercado inmobiliario de la Ciudad de Cali.
# Crear el histograma
ggplot(viviendas_datos, aes(x=`Precio (m)`)) +
geom_histogram(bins = 15, fill="#FAB273", color="black") +
theme_minimal() +
labs(x="Precio", y="Frecuencia", title="Distribución habitaciones") +
theme(plot.title = element_text(hjust = 0.5))
El histograma nos proporciona una clara visualización de la distribución de precios de las viviendas en nuestra base de datos. Podemos observar que la mayoría de las viviendas tienen un precio comprendido entre 0 y 1000 millones de pesos. A medida que el precio aumenta, la cantidad de registros en nuestra base de datos disminuye, lo que indica una distribución sesgada hacia la izquierda, donde la mayoría de las viviendas se concentran en el rango de precios más bajos.
print(paste("Media de precios: ", round(mean(viviendas_datos$`Precio (m)`), 1), sep = " "))
## [1] "Media de precios: 433.9"
print(paste("Mediana de precios: ", round(median(viviendas_datos$`Precio (m)`), 1), sep = " "))
## [1] "Mediana de precios: 330"
6.2. Analisis por varias variables:
Hasta este punto, hemos examinado diversas variables de manera individual para comprender su impacto en el mercado inmobiliario. Sin embargo, para obtener una comprensión más completa y detallada, es esencial profundizar en el análisis de cómo estas variables interactúan entre sí. En esta subsección, llevaremos a cabo análisis específicos que involucran diferentes pares de variables, lo que nos permitirá identificar relaciones, tendencias y patrones que podrían pasar desapercibidos en un análisis univariable.
precio_estrato <- aggregate(`Precio (m)` ~ estrato, viviendas_datos, mean)
precio_estrato$`Precio (m)` <- round(precio_estrato$`Precio (m)`, 1)
# Crear el gráfico de barras
ggplot(precio_estrato, aes(x=estrato, y=`Precio (m)`)) +
geom_bar(stat="identity", fill="steelblue") +
geom_text(aes(label = `Precio (m)`), vjust = -0.3) +
theme_minimal() +
labs(x="Estrato", y="Precio Promedio", title="Precio Promedio por Estrato") +
theme(plot.title = element_text(hjust = 0.5))
El análisis detallado de los precios por estrato socioeconómico revela una diferencia significativa en el precio promedio de las viviendas en Cali, lo que resalta la influencia del estrato en la valoración de las propiedades.
Estrato 3: El precio promedio de las viviendas en el estrato 3 es de 210.3 millones de pesos colombianos. Esto indica que las propiedades en este estrato tienden a tener un precio similar al precio promedio general de la ciudad.
Estrato 4: En el estrato 4, el precio promedio de las viviendas es ligeramente más alto, alcanzando los 275.1 millones de pesos colombianos. Aunque sigue siendo similar al precio promedio general, muestra una leve tendencia al alza.
Estrato 5: El precio promedio de las viviendas en el estrato 5 es significativamente superior, llegando a los 410.3 millones de pesos colombianos. Esto indica que las propiedades en este estrato son considerablemente más caras que el promedio general de la ciudad.
Estrato 6: Finalmente, en el estrato 6, el precio promedio de las viviendas alcanza los 800.3 millones de pesos colombianos, lo que confirma que este estrato representa el segmento de mercado con las propiedades más exclusivas y costosas en Cali.
precio_zona <- aggregate(`Precio (m)` ~ zona, viviendas_datos, mean)
# Creamos el gráfico de dispersión
ggplot(precio_zona, aes(x = zona, y = `Precio (m)`)) +
geom_point() +
geom_line(group = 1)+
theme_minimal() +
labs(title = "Precio promedio por Zona") +
theme(plot.title = element_text(hjust = 0.5))
El análisis de precios por zona revela información crucial sobre la distribución de precios de las viviendas en la Ciudad de Cali. Se observa una variación significativa en los precios promedio entre las diferentes zonas, lo que refleja las características únicas y la demanda relativa de cada área.
La Zona Oeste presenta la media de precios más elevada en comparación con las otras zonas. Esto sugiere que esta área es altamente deseada y probablemente ofrece características exclusivas, como vistas panorámicas, acceso a servicios de lujo y una infraestructura más desarrollada. Los precios más altos en esta zona pueden reflejar la alta demanda y la disponibilidad limitada de propiedades de alta calidad.
# Calculamos el área promedio por zona y estrato usando aggregate()
area_zona_estrato <- aggregate(areaconst ~ zona + estrato, viviendas_datos, mean)
area_zona_estrato$estrato <- area_zona_estrato$estrato %>% as.character()
area_zona_estrato$areaconst <- round(area_zona_estrato$areaconst, 1)
# Creamos el gráfico de barras agrupadas
ggplot(area_zona_estrato, aes(x = zona, y = areaconst, fill = estrato)) +
geom_bar(stat = "identity", position = "dodge") +
theme_minimal() +
labs(x = "Zona", y = "Área Promedio", fill = "Estrato", title = "Area por Zona y Estrato") +
theme(plot.title = element_text(hjust = 0.5))
Este gráfico nos proporciona información valiosa sobre cómo varía el área promedio de las viviendas según la zona y el estrato socioeconómico en Cali. Estas observaciones pueden ser útiles para comprender las preferencias de los compradores y las tendencias del mercado inmobiliario en diferentes áreas de la ciudad.
# Calculamos el área promedio por zona y estrato usando aggregate()
precio_tipo_estrato <- aggregate(`Precio (m)` ~ `Tipo Vivienda` + estrato, viviendas_datos, mean)
precio_tipo_estrato$estrato <- precio_tipo_estrato$estrato %>% as.character()
precio_tipo_estrato$`Precio (m)` <- round(precio_tipo_estrato$`Precio (m)`, 1)
# Creamos el gráfico de barras agrupadas
ggplot(precio_tipo_estrato, aes(x = estrato, y = `Precio (m)`, fill = `Tipo Vivienda`)) +
geom_bar(stat = "identity", position = "dodge") +
theme_minimal() +
labs(x = "Estrato", y = "Precio Promedio", fill = "Tipo Vivienda", title = "Precio por Tipo y Estrato") +
theme(plot.title = element_text(hjust = 0.5))
Es interesante destacar que, a pesar de que las viviendas tipo casa
representan aproximadamente el 40% de los datos, en cada uno de los
estratos presentan un precio promedio mayor en comparación con los
apartamentos. Esta disparidad en los precios podría atribuirse a la
naturaleza única de una casa, que ofrece una sensación de privacidad y
espacio personal que puede ser muy valorada por los habitantes.
Este dato es de suma importancia ya que resalta el valor percibido de las viviendas tipo casa en el mercado inmobiliario de Cali. Aunque los apartamentos puedan representar una mayor frecuencia en los datos, las casas mantienen un precio promedio más elevado, lo que sugiere una demanda sólida y una disposición por parte de los compradores a invertir más en este tipo de vivienda.
Por lo tanto, este análisis subraya la importancia de que la empresa continúe potenciando el desarrollo y la oferta de viviendas tipo casa en su cartera de productos. Es fundamental reconocer y capitalizar la preferencia del mercado por este tipo de viviendas, así como aprovechar su potencial para generar mayores márgenes de ganancia y satisfacer las necesidades y deseos de los compradores en la Ciudad de Cali.
7. Discusión
El análisis realizado sobre el mercado inmobiliario de la Ciudad de Cali ha revelado una serie de tendencias significativas que proporcionan una comprensión del comportamiento del mercado. Se ha observado que factores como la ubicación, el estrato socioeconómico y el tipo de vivienda tienen un impacto considerable en los precios y características de las propiedades.
El estudio reveló que las zonas Oeste y Sur destacan por tener precios promedio más elevados, mientras que las zonas Centro y Oriente muestran valores más bajos. Asimismo, se encontró que el estrato socioeconómico está fuertemente relacionado con el precio y el tamaño de las viviendas, siendo los estratos más altos asociados con precios más altos y áreas más grandes.
Una observación interesante fue que, a pesar de que los apartamentos representan una mayor frecuencia en los datos, las viviendas tipo casa tienen un precio promedio mayor en todos los estratos. Esto sugiere una preferencia del mercado por la privacidad y el espacio personal que ofrecen las casas.
8. Conclusiones
La ubicación y el estrato socioeconómico son factores determinantes en los precios y características de las viviendas en Cali. Las zonas Oeste y Sur tienden a tener precios más altos, mientras que las zonas Centro y Oriente presentan valores más bajos.
El tipo de vivienda también influye en el precio, siendo las casas más caras en promedio que los apartamentos, independientemente del estrato socioeconómico.
Existe una clara preferencia del mercado por las viviendas tipo casa, a pesar de representar una menor frecuencia en los datos. Esto sugiere una demanda sólida y una disposición por parte de los compradores a invertir más en este tipo de vivienda.
Es fundamental que la empresa continúe potenciando el desarrollo y la oferta de viviendas tipo casa en su cartera de productos, aprovechando la preferencia del mercado y su potencial para generar mayores márgenes de ganancia.
En conjunto, estos hallazgos proporcionan información valiosa para agentes del sector inmobiliario, inversores y planificadores urbanos, permitiéndoles tomar decisiones estratégicas informadas para el desarrollo y crecimiento sostenible del mercado inmobiliario en la Ciudad de Cali.