Introducción (explicación resumida del informe)
En la industria de los bienes raíces es muy importante conocer el mercado, esto permite a las diferentes empresas poder evaluar sus clientes y encontrar oportunidades de mercado; en la ciudad de Cali Colombia el sector de bienes raíces viene en aumento ya que las ventas del sector llegaron a $6700 millones y en 2023 a $6100 millones permitiendo un desarrollo dinámico en la economía regional. La empresa B&C quien ya tiene más de 10 años de operación en la ciudad de Cali no quiere quedarse afuera de este crecimiento, por eso buscan conocer el comportamiento del mercado e identificar a que clientes deberían dirigirse, como diseñar sus campañas de marketing, como se comportan los precios y como ofrecer servicios personalizados a sus clientes, todo esto en pro de un incremento considerable de sus ventas.
Objetivo (meta del informe)
Método (acciones realizadas para obtener el informe)
Resultados (codigos aplicados y los resultados obtenidos)
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
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(paqueteMETODOS)
## Loading required package: cubature
## Loading required package: flextable
##
## Attaching package: 'flextable'
## The following objects are masked from 'package:plotly':
##
## highlight, style
## Loading required package: lmtest
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: MASS
##
## Attaching package: 'MASS'
## The following object is masked from 'package:plotly':
##
## select
## The following object is masked from 'package:dplyr':
##
## select
## Loading required package: summarytools
## Loading required package: psych
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
## Loading required package: randtests
## Loading required package: rapportools
##
## Attaching package: 'rapportools'
## The following objects are masked from 'package:summarytools':
##
## label, label<-
## The following object is masked from 'package:dplyr':
##
## n
## The following objects are masked from 'package:stats':
##
## IQR, median, sd, var
## The following objects are masked from 'package:base':
##
## max, mean, min, range, sum
LIEMPIEZA DE DATA
# Limpieza
data(vivienda_faltantes)
BD_Estandar= vivienda_faltantes
BD_Estandar$tipo [BD_Estandar$tipo=="CASA"]<-"Casa"
BD_Estandar$tipo [BD_Estandar$tipo=="casa"]<-"Casa"
BD_Estandar$tipo [BD_Estandar$tipo=="APARTAMENTO"]<-"Apartamento"
BD_Estandar$tipo [BD_Estandar$tipo=="apto"]<-"Apartamento"
BD_Estandar <- BD_Estandar[!is.na(BD_Estandar$tipo),]
BD_Estandar <- distinct(BD_Estandar)
# precios en diferentes zonas de cali
PRECIO DE METRO CUDRADO POR ZONA
# Precio metro cuadrado por zonas
BD_Estandar <- BD_Estandar[!is.na(BD_Estandar$areaconst),]
Precio_Mcuadrado= aggregate(BD_Estandar$preciom/BD_Estandar$areaconst, list(BD_Estandar$zona), FUN=mean)
Precio_Mcuadrado
## Group.1 x
## 1 Zona Centro 1.745886
## 2 Zona Norte 2.448327
## 3 Zona Oeste 3.644159
## 4 Zona Oriente 1.442864
## 5 Zona Sur 2.720418
RELACIÓN DE PRECIO Y AREA CONSTRUIDA
# relación entre precio y área construida
grafico_1 <- ggplot(BD_Estandar, aes(x = preciom, y = areaconst)) +
geom_point() +
labs(title = "Relación entre Precio y Área Construida", x = "Precio", y = "Área Construida")
grafico_1 <- ggplotly(grafico_1)
grafico_1
CANTIDAD POR TIPO DE VIVIENDAS
# tipo de viviendas más ofertadas
tipo_counts <- table(BD_Estandar$tipo)
barplot(tipo_counts, main = "Tipos de viviendas más ofertadas", xlab = "Tipo de vivienda", ylab = "Cantidad")
RELACIÓN ENTRE PRECIO Y AREA CONSTRUIDA POR TIPO DE VIVIENDA
# Relación entre precio y área construida
grafico_3 <- ggplot(BD_Estandar, aes(x = areaconst, y = preciom, color = tipo)) +
geom_point() +
labs(title = "Relación entre Precio y Área Construida", x = "Área Construida", y = "Precio", color = "Tipo de Vivienda")
grafico_3 <- ggplotly(grafico_3)
grafico_3
MEDIA DE PRECIO POR TIPO DE VIVIENDA
# media de precio y cantidad de datos por tipo de vivienda
BD_Estandar %>%
group_by(tipo) %>%
summarise(mean_preciom = mean(preciom), n =n(preciom))
## # A tibble: 2 × 3
## tipo mean_preciom n
## <chr> <dbl> <int>
## 1 Apartamento 367. 5099
## 2 Casa 540. 3220
MEDIA DE ESTRATO POR TIPO DE VIVIENDA
# media de estrato por tipo de vivienda
x= aggregate(BD_Estandar$estrato, list(BD_Estandar$tipo), FUN=mean)
x$x <- round(x$x, 0)
print(x)
## Group.1 x
## 1 Apartamento 5
## 2 Casa 4
PRECIO DE VIVIENDAS POR ZONA
# precio de las viviendas por zonas
grafico_4 <- ggplot(BD_Estandar, aes(x = zona, y = preciom)) +
geom_boxplot() +
labs(title = "Distribución de precios por zona", x = "Zona", y = "Precio")
grafico_4 <- ggplotly(grafico_4)
grafico_4
RELACIÓN DE PRECIOS POR TAMAÑO, TIPO DE VIVIENDA Y ZONA
# tamaño y precios por tipo de vivienda y zona
grafico_5 <- ggplot(BD_Estandar, aes(x = areaconst, y = preciom, color = tipo)) +
geom_point() +
facet_wrap(~zona) +
labs(title = "Tamaño y Precio por Tipo de Vivienda y Zona", x = "Área Construida", y = "Precio", color = "Tipo de Vivienda")
grafico_5 <- ggplotly(grafico_5)
grafico_5
# Análisis 2: Desarrollar estrategias de marketing
CANTIDAD DE VIVIENDAS POR NUMERO DE HABITACIONES
# Gráfico para mostrar la cantidad de habitaciones en las viviendas
barplot(table(BD_Estandar$habitac), main = "Distribución de Habitaciones", xlab = "Habitaciones", ylab = "Cantidad")
VIVIENDAS POR CANTIDAD DE BAÑOS
# Gráfico para mostrar la cantidad de baños en las viviendas
barplot(table(BD_Estandar$banios), main = "Distribución de Baños", xlab = "Baños", ylab = "Cantidad")
CASAS POR NUMERO DE HABITACIONES
casas = filter(BD_Estandar, tipo == "Casa")
apartamentos = filter(BD_Estandar, tipo == "Apartamento")
# Gráfico para cantidad de casas por cantidad de habitaciones
barplot(table(casas$habitac), main = "Cantidad de Casas por Cantidad de Habitaciones", xlab = "Habitaciones", ylab = "Cantidad")
APARTAMENTOS POR NUMERO DE HABITACIONES
# Gráfico de barras para cantidad de apartamentos por cantidad de habitaciones
barplot(table(apartamentos$habitac), main = "Cantidad de Apartamentos por Cantidad de Habitaciones", xlab = "Habitaciones", ylab = "Cantidad")
CANTIDAD DE VIVIENDAS CON MAYOR CANTIDAD DE HABITACIONES POR TIPO
# cantidad más común de habitaciones en casas
habitaciones_comunes_casas <- as.numeric(names(which.max(table(casas$habitac))))
# cantidad más común de habitaciones en apartamentos
habitaciones_comunes_apartamentos <- as.numeric(names(which.max(table(apartamentos$habitac))))
cat("Casas con", habitaciones_comunes_casas, "habitaciones\n")
## Casas con 4 habitaciones
cat("\nApartamentos con", habitaciones_comunes_apartamentos, "habitaciones\n")
##
## Apartamentos con 3 habitaciones
MEDIA DE ESTRATO, PRECIO Y AREA CONSTRUIDAD PARA LAS VIVIENDAS MAS COMUNES POR NUMERO DE HABITACIONES
# media de área construida, precio y estrato para casas con la cantidad más común de habitaciones
media_area_casas <- mean(casas$areaconst[casas$habitac == habitaciones_comunes_casas])
media_precio_casas <- mean(casas$preciom[casas$habitac == habitaciones_comunes_casas])
media_estrato_casas <- mean(casas$estrato[casas$habitac == habitaciones_comunes_casas])
media_baños_casas <-
mean(casas$banios[casas$habitac == habitaciones_comunes_casas])
media_parquea_casas <- mean(casas$parquea[casas$habitac == habitaciones_comunes_casas])
# media de área construida, precio y estrato para apartamentos con la cantidad más común de habitaciones
media_area_apartamentos <- mean(apartamentos$areaconst[apartamentos$habitac == habitaciones_comunes_apartamentos])
media_precio_apartamentos <- mean(apartamentos$preciom[apartamentos$habitac == habitaciones_comunes_apartamentos])
media_estrato_apartamentos <- mean(apartamentos$estrato[apartamentos$habitac == habitaciones_comunes_apartamentos])
media_baños_Apartamentos <-
mean(apartamentos$banios[apartamentos$habitac == habitaciones_comunes_apartamentos])
media_parquea_apartamentos <- mean(apartamentos$parquea[apartamentos$habitac == habitaciones_comunes_apartamentos])
cat("Casas con", habitaciones_comunes_casas, "habitaciones:\n")
## Casas con 4 habitaciones:
cat("Media de Área Construida:", media_area_casas, "\n")
## Media de Área Construida: 260.7803
cat("Media de Precio:", media_precio_casas, "\n")
## Media de Precio: 575.7527
cat("Media de Estrato :", round(media_estrato_casas), "\n")
## Media de Estrato : 5
cat("Media de baños :", round(media_baños_casas), "\n")
## Media de baños : 4
cat("Media de parqueaderos:", round(media_parquea_casas), "\n")
## Media de parqueaderos: 2
cat("\nApartamentos con", habitaciones_comunes_apartamentos, "habitaciones:\n")
##
## Apartamentos con 3 habitaciones:
cat("Media de Área Construida:", media_area_apartamentos, "\n")
## Media de Área Construida: 106.8039
cat("Media de Precio:", media_precio_apartamentos, "\n")
## Media de Precio: 351.9264
cat("Media de Estrato :", round(media_estrato_apartamentos), "\n")
## Media de Estrato : 5
cat("Media de baños :", round(media_baños_Apartamentos), "\n")
## Media de baños : 2
cat("Media de parqueaderos:", round(media_parquea_apartamentos), "\n")
## Media de parqueaderos: 2
DISTRIBUCIÓN DE ESTRATO POR ZONA
#estrato por zonas
grafico_10 <- ggplot(BD_Estandar, aes(x = factor(estrato), fill = zona)) +
geom_bar(position = "stack") +
labs(title = "Distribución de Estratos por Zona", x = "Estrato", y = "cantidad", fill = "Zona")
grafico_10 <- ggplotly(grafico_10)
grafico_10
CANTIDAD DE TIPOS DE VIVIENDA POR ESTRATO, EN LAS DIFERENTES ZONAS
grafico_11 <- ggplot(BD_Estandar, aes(x = estrato, fill = zona)) +
geom_bar(position = "stack") +
facet_wrap(~zona) +
labs(title = "Distribución de Estratos por Zona", x = "Estrato", y = "cantidad", fill = "Zona")
grafico_11 <- ggplotly(grafico_11)
grafico_11
RELACIÓN DE PRECIO Y ESTRATO POR ZONA
#Distribución de precios y estrato por zona
grafico_12 <- ggplot(BD_Estandar, aes(x = factor(estrato), y=preciom, color = tipo)) +
geom_boxplot() +
facet_wrap(~zona) +
labs(title = "Distribución de precios", x = "Estrato", y = "Precio", color = "Tipo de vivienda")
grafico_12 <- ggplotly(grafico_12)
grafico_12
# Análisis 3: Establecer precios de venta
DISTRIBUCIÓN DE PRECIO POR ESTRATO
# Diagrama de caja para visualizar la distribución del estrato
grafico_13 <- ggplot(BD_Estandar, aes(x = factor(estrato), y = preciom)) +
geom_boxplot() +
labs(title = "Distribución de Precio por Estrato", x = "Estrato", y = "Precio")
grafico_13 <- ggplotly(grafico_13)
grafico_13
DATOS DE PRECIO POR AREA CONSTRUIDA
# Estadísticas para precio y área construida
summary(BD_Estandar$preciom)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 58.0 220.0 330.0 433.9 540.0 1999.0
summary(BD_Estandar$areaconst)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 30.0 80.0 123.0 174.9 229.0 1745.0
VARIABILIDAD DE PRECIOS POR TIPO DE VIVIENDA
# Gráfico de la variabilidad de precios por tipo de vivienda
grafico_14 <- ggplot(BD_Estandar, aes(x=tipo, y=preciom)) +
geom_boxplot() +
labs(title = "Variabilidad de precios por tipo de vivienda", x="Tipo de vivienda", y="Precio")
grafico_14 <- ggplotly(grafico_14)
grafico_14
DATOS EXTRAS PARA PLANTEAMIENTO DE SERVICIOS PERSONALIZADOS
# Análisis 4: Ofrecer servicios personalizados a sus clientes
DISTRIBUCIÓN DE HABITACIONES
# Distribución de habitaciones
Tabla_NumHabitaciones = table(BD_Estandar$tipo, BD_Estandar$habitac)
Tabla_Matriz = as.data.frame.matrix(Tabla_NumHabitaciones)
print(Tabla_Matriz)
## 0 1 2 3 4 5 6 7 8 9 10
## Apartamento 21 49 858 3384 714 63 8 1 0 1 0
## Casa 45 10 68 713 1015 616 310 172 138 82 51
barplot(table(BD_Estandar$habitac), main = "Distribución de habitaciones", xlab = "Habitaciones", ylab = "Cantidad")
DISTRIBUCIÓN DE BAÑOS
# Distribución de baños
Tabla_NumBaños = table(BD_Estandar$tipo, BD_Estandar$banios)
Tabla_MatrizB = as.data.frame.matrix(Tabla_NumBaños)
print(Tabla_MatrizB)
## 0 1 2 3 4 5 6 7 8 9 10
## Apartamento 14 399 2502 1200 635 301 39 8 1 0 0
## Casa 31 97 444 793 821 589 275 99 47 15 9
barplot(table(BD_Estandar$banios), main = "Distribución de Baños", xlab = "Baños", ylab = "Cantidad")
DISTRIBUCIÓN DE PRECIOS DE VIVIENDAS POR CANTIDAD HABITACIONES Y EL TIPO, EN LAS DIFERENTES ZONAS
# relación de precios por habitaciones y zona
grafico_17 <- ggplot(BD_Estandar, aes(x = factor(habitac), y=preciom, color = tipo)) +
geom_boxplot() +
facet_wrap(~zona) +
labs(title = "Distribución de precios", x = "habitaciones", y = "Precio", color = "Tipo de vivienda")
grafico_17 <- ggplotly(grafico_17)
grafico_17
DISTRIBUCIÓN DE PRECIOS DE VIVIENDAS POR CANTIDAD BAÑOS Y EL TIPO, EN LAS DIFERENTES ZONAS
# relación de precios por baño y zona
grafico_18 <- ggplot(BD_Estandar, aes(x = factor(banios), y=preciom, color = tipo)) +
geom_boxplot() +
facet_wrap(~zona) +
labs(title = "Distribución de precios", x = "baños", y = "Precio", color = "Tipo de vivienda")
grafico_18 <- ggplotly(grafico_18)
grafico_18
DISTRIBUCIÓN DE VIVIENDAS POR CANTIDAD BAÑOS, habitaciones, parqueaderos Y EL TIPO
# relación de parqueaderos por habitaciones y baños.
library(ggplot2)
library(plotly)
grafico_3D <- ggplot(BD_Estandar, aes(x = banios, y = habitac, z = parquea, color = tipo)) +
geom_point(alpha = 0.6, size = 4) +
labs(title = "Relación entre cantidad de habitaciones, baños y parqueaderos",
x = "Baños", y = "Habitaciones", z = "Parqueaderos", color = "tipo vivienda")
# Convertir el gráfico de ggplot2 a plotly
grafico_interactivo <- ggplotly(grafico_3D)
# Mostrar el gráfico interactivo
grafico_interactivo
RELACION DE BARRIOS POR ESTRATO CON MAYOR INFORMACIÓN
cuenta_barrios <- BD_Estandar %>%
count(barrio, sort = TRUE)
top_10_barrios <- cuenta_barrios %>%
head(10)
top_10_barrios
## # A tibble: 10 × 2
## barrio n
## <chr> <int>
## 1 valle del lili 1008
## 2 ciudad jardín 516
## 3 pance 409
## 4 la flora 366
## 5 santa teresita 262
## 6 el caney 208
## 7 el ingenio 202
## 8 la hacienda 164
## 9 acopi 158
## 10 los cristales 154
DISTRIBUCIÓN POR ZONA DE LOS BARRIOS MAS POPULARES
top_10_barrios <- BD_Estandar %>%
filter(barrio %in% top_10_barrios$barrio)
top_10_barrios %>%
group_by(zona) %>%
summarise(n = n(estrato))
## # A tibble: 4 × 2
## zona n
## <chr> <int>
## 1 Zona Norte 531
## 2 Zona Oeste 408
## 3 Zona Oriente 1
## 4 Zona Sur 2507
RELACION DE BARRIOS POR ESTRATO CON MENOR INFORMACIÓN
BD_Estandar %>%
group_by(barrio) %>%
summarise(n = n(estrato)) %>%
arrange(n) %>%
head(10)
## # A tibble: 10 × 2
## barrio n
## <chr> <int>
## 1 3 de julio 1
## 2 Belalcazar 1
## 3 Brisas De Los 1
## 4 Bueno Madrid 1
## 5 Camino Real 1
## 6 Centenario 1
## 7 Chiminangos 1
## 8 Ciudad 2000 1
## 9 Ciudad Pacifica 1
## 10 Colseguros Andes 1
DISCUSIÓN (Explicación de los resultados obtenidos)
Analizando los resultados se evidencia que la zona con media de costo por metro cuadrado más alta seria la zona Oeste seguido por la zona sur de la ciudad, mirando los valores de las viviendas en relación con el área construida se puede observar que se concentran hasta 1000 en precio y hasta 500 en área construida.
Para poder hacer una mejor descripción se evidencia que el tipo de vivienda es importante por eso se ve como actualmente hay una gran venta de apartamentos con 5099 viviendas, mucho más que casas las cuales son 3220 viviendas, validando la relación de precio por área construida se ve que los apartamentos muy pocos son de área mayor a 500 y se concentra en valores menores a 1000, mientras que las casas si tienen diferentes ofertas de viviendas con áreas mayores a 500.
Si se valida la media de precios de apartamentos está en 367, mucho más bajo que la media de casas que es de 540, pero se puede ver que los apartamentos están con una media de estrato 5, mientras que las casas su media es de estrato 4, esto evidencia que se puede vivir en un apartamento de estrato 4 o 5 con costo menor que el de una casa en un mismo estrato.
Si se analiza las gráficas se puede observar como la zona donde las viviendas en general son más económicas son en la zona centro y oriente; pero si miramos por tamaño se puede ver que en la zona sur un gran porcentaje de viviendas no sobrepasan los 500 de área construida. Adicional se observa como la zona oeste tiene un mayor número de información reunida de casas que de apartamentos.
Para poder realizar los análisis de marketing, se proporcionan datos que se consideran importantes para tomar decisiones de enfoque estratégico.
se analizan las viviendas con su distribución de habitaciones y baños, donde se evidencia que la mayoría de las viviendas tienen 3 habitaciones y una gran cantidad de viviendas tiene 2 baños, es recalcar que no todas las viviendas de tres habitaciones tienen de a dos baños. Para dar mas detalle en este análisis lo vemos por tipo de vivienda donde se ve que la mayoría de las casas tiene 4 habitaciones y después son las de 3 habitaciones, pero en los apartamentos se puede ver que por mucha diferencia la mayoría es de 3 habitaciones. Si se valida las características de estos tipos de vivienda con esta cantidad de habitaciones en específico las casas con 4 habitaciones, valores de la media de cada rubro, área construida 260.78, precio 575.752, estrato 5, 4 baños y 2 parqueaderos; luego analizamos los apartamentos con 3 habitaciones y tenemos un área de 106.80, precio de 351.92, estrato 5, 2 baños y 2 parqueaderos.
También se puede analizar la distribución de estrato por las diferentes zonas, sin embargo, se ve que la mayoría son de estrato 4 y 5 en los datos analizados, si se valida los precios en esta distribución como es de esperarse a mayor estrato es más caro, sin embargo, se evidencia como es el comportamiento de los apartamentos en comparación al de las viviendas, así se puede ver qué tipo de mercado se quiere y su poder adquisitivo según sean las metas de la empresa.
Para establecer los precios de venta, se empezó por un análisis de la distribución de precio por estrato, donde se ve que el estrato 3 tiene una media de 160, el estrato 4 de 235, el estrato 5 de 350 y el estrato 6 de 700; se puede ver que en el estrato 3, 4 y 5 el 75 por ciento de la vivienda está por debajo de los 500, mientras que el estrato 6 está entre los 500 y 1000. También se puede ver que el menor precio es de 58 y el máximo es de 1999, con un área mínima de 30 y la mayor área es de 1745; si se analiza la variabilidad del precio por el tipo de vivienda como ya se venía viendo, en los apartamentos la mayoría tienen un precio menor al de las casas, con el 75% de los apartamentos menos que 430, mientras que las casas tienen la media en 430 y el 75% de las casas son menores a 670.
Como servicios personalizados se analizó la distribución de las viviendas en la cantidad de habitaciones, baños y parqueaderos dependiendo de que mercado se quiera atacar, se pueden plantear servicios, por eso se puede observar la distribución de precios por la cantidad de baños y habitaciones en las diferentes zonas y por los diferentes tipos de viviendas.
Se puede observar los diferentes apartamentos y casas su distribución de habitaciones por baño, la combinación máxima que se puede ver en apartamentos es que tenga 7 habitaciones con 7 baños y en casas si se puede ver más variedad entre cantidad de baños y habitaciones solo dependerá de la zona donde quiera vivir el cliente.
Ahora si a estas variables que son para ofrecer a los clientes opciones de viviendas le agregamos, si tiene o no parqueadero y cantidad, se ve qué hay de todo tipo de combinaciones, pero en apartamentos lo máximo que se puede ofrecer en cantidades es un apartamento con 7 habitaciones, 7 baños y 7 parqueaderos; mientras que en casas si depende de que busque el cliente porque hay casas con más habitaciones que baños y parqueaderos o con más parqueaderos que habitaciones.
En la continuación de este estudio de mercado que desea hacer la empresa, como se puede ver la relación de barrios con mayor y menor información, se recomienda hacer un estudio con más información de los 10 barrios con menos información, para poder ver que hay en el mercado.
Conclusiones
A lo largo del informe se puede evidenciar información valiosa para la empresa B&C, sin embargo, es de aclarar que esta información es basada en los datos recibidos por la empresa donde se ve claramente el enfoque en la zona sur de la ciudad, y donde menos se tiene información para analizar seria la zona oriente de la ciudad. Pero si la meta de la empresa es enfocarse en la zona sur de la ciudad se tiene un gran mercado por atacar, se tiene viviendas aptas para una persona o una pareja hasta viviendas para familias grandes o que se pueden usar para negocios solo depende de que quiera hacer la empresa si es enfocarse en mercado mas grande, un mercado exclusivo o un mercado con mayor poder adquisitivo o el mercado con menor poder adquisitivo y ya seleccionando la meta, la empresa tiene muy buena información para desarrollar su estrategia de mercado.