La empresa B&C (Bines y Casas) es una agencia de bienes raíces que opera en la ciudad de Cali, Colombia. La empresa fue fundada por Sandra Milena hace 10 años y actualmente cuenta con ocho agentes de bienes raíces.
El mercado de bienes raíces en Cali ha crecido significativamente en los últimos años, impulsado por el crecimiento de la población, la inversión extranjera directa y el desarrollo de nuevos proyectos inmobiliarios. En 2021, las ventas del sector en Cali llegaron a $6700 millones y en 2022 a $6100 mil millones. Se espera que este sector continue creciendo durante los próximos años, permitiendo un desarrollo dinámico en la economía regional.
La empresa B&C ha recogido información sobre viviendas que incluye información sobre el precio, la ubicación, las características y la venta de viviendas en Cali. Esta base de datos puede ser utilizada para realizar un informe estadístico que sería de gran interés para la empresa.
En el presente informe, se presenta un análisis descriptivo de los datos recopilados por la empresa B&C (Bines y Casas), una agencia de bienes raíces ubicada en Cali, Colombia. Este análisis tiene como objetivo identificar tendencias y patrones en el mercado de bienes raíces de Cali, proporcionando información valiosa para la toma de decisiones estratégicas de la empresa.
Los objetivos de este análisis son brindar a la empresa B&C Inmobiliaria un análisis estadistico que les ayude a la toma de desiciones, para ello, debemos:
Se utilizó la base de datos proporcionada por la empresa B&C, que contiene información sobre zona, piso, estrato, precio, area, parqueadero, baños, habitaciones, tipo, barrio, longitud y latitud de viviendas en Cali. Se realizó un análisis descriptivo utilizando técnicas estadísticas para explorar las tendencias y patrones en los datos.
Primero importamos los datos:
El resumen de la base de datos:
## id zona piso estrato
## Min. : 1 Length:8330 Min. : 1.000 Min. :3.000
## 1st Qu.:2082 Class :character 1st Qu.: 2.000 1st Qu.:4.000
## Median :4164 Mode :character Median : 3.000 Median :5.000
## Mean :4164 Mean : 3.772 Mean :4.634
## 3rd Qu.:6246 3rd Qu.: 5.000 3rd Qu.:5.000
## Max. :8319 Max. :12.000 Max. :6.000
## NA's :3 NA's :2641 NA's :3
## preciom areaconst parquea banios
## Min. : 58.0 Min. : 30 Min. : 1.000 Min. : 0.000
## 1st Qu.: 220.0 1st Qu.: 80 1st Qu.: 1.000 1st Qu.: 2.000
## Median : 330.0 Median : 123 Median : 2.000 Median : 3.000
## Mean : 434.2 Mean : 175 Mean : 1.836 Mean : 3.112
## 3rd Qu.: 540.0 3rd Qu.: 229 3rd Qu.: 2.000 3rd Qu.: 4.000
## Max. :1999.0 Max. :1745 Max. :10.000 Max. :10.000
## NA's :2 NA's :3 NA's :1606 NA's :3
## habitac tipo barrio longitud
## Min. : 0.000 Length:8330 Length:8330 Min. :-76576.00
## 1st Qu.: 3.000 Class :character Class :character 1st Qu.:-76506.00
## Median : 3.000 Mode :character Mode :character Median : -76.54
## Mean : 3.605 Mean :-21845.13
## 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.390
## Median : 3.450
## Mean : 970.370
## 3rd Qu.:3367.000
## Max. :3497.000
## NA's :3
Inicialmente, me parece curiosa la cantidad de datos en NA que se puede ver en la tabla, vamos a contarlos:
#install.packages("table1")
# Contar la cantidad de valores 'N/A' en cada columna
na_count <- colSums(is.na(df))
na_count## 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
#Visualizar los valores 'N/A'
barplot(na_count, names.arg = names(na_count), col = "blue",
main = "Valores 'N/A' por Columna", xlab = "Columna", ylab = "Cantidad de 'N/A'")Podemos observar, que pese a la cantidad de valores en NA, en su mayoría son en las columnas Piso y Parquea las cuales cada una supera los 1500 registros en NA (En piso 2641 y en parquea 1606).
##
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
##
## filter
## The following objects are masked from 'package:base':
##
## cbind, rbind
Vamos a explorar las variables cualitativas, en la siguiente gráfica podemos evidenciar las viviendas más comunes:
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## 124 1922 1204 351 4726
ggplot(df, aes(x = zona)) +
geom_bar(fill = "skyblue", color = "black") +
labs(title = "Distribución de Zonas", x = "Zona", y = "Cantidad")Con esto podemos observar que las viviendas que se tienen en el estudio, están en su gran mayoría en la zona sur de Cali. Lo cual es un dato muy importante, dado que en la zona sur de cali se encuentran lugares como: * Universidades de prestigio. * Restaurantes populares por su gastronomía, lo cual lo convierte en oportunidad de empleo. * Centros de salud. * Centros de educación.
Por ende es una zona de gran interés y bastante comercial por su variedad cubierta por cualquier tipo de persona.
Ahora bien, me interesa saber dentro de esta cantidad de viviendas que estamos explorando, el estrato que más se puede observar, dado que para alguien que alquila o compra vivienda es muy importante el estrato de dicha vivienda, así como también la cantidad de pisos y habitaciones, para poderse presupuestar mensualmente en cuando a cuestiones de servicios y la distribución de dichas habitaciones
ggplot(df, aes(x = estrato)) +
geom_bar(fill = "lightgreen", color = "black") +
labs(title = "Estrato", x = "Estrato", y = "Cantidad")## Warning: Removed 3 rows containing non-finite values (`stat_count()`).
Podemos evidenciar que son viviendas que van desde estrato 3 hasta estrato 6, en donde, en su gran parte, por ende, nuestra estrategia de marketing debe ser enfocado a personas desde un nivel socioeconomico medio-bajo, y enfocandonos en un nivel medio-alto / alto
Otra variable que podemos analizar es la variable tipo, la cual se refiere al tipo de vivienda del que estamos hablando, ahora bien, analizando los tipos, vemos que tenemos variable apartamento y apto los cuales se refieren a la misma variable, entonces debemos igualarlos. Existen 5109 apartamentos y 3221 casas:
##
## 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
##
## Apartamento APARTAMENTO apto casa Casa CASA
## 5032 61 13 14 3195 12
#Modificamos las variables tipo para que apto y apartamento sean lo mismo
df <- df %>%
mutate(tipo = recode(tipo, apto = "apartamento"))
#Volvemos minuscula todas las variables en tipo y construimos una tabla de frecuencias con ellas
df$tipo <- tolower(df$tipo)
tabla_frecuencias <- table(df$tipo)
tabla_frecuencias <- as.data.frame(tabla_frecuencias)
tabla_frecuencias$Var1 <- factor(tabla_frecuencias$Var1, levels = unique(tabla_frecuencias$Var1))
print(tabla_frecuencias)## Var1 Freq
## 1 apartamento 5106
## 2 casa 3221
ggplot(df, aes(x = "", fill = tipo)) +
geom_bar(width = 1) +
coord_polar("y") +
geom_text(stat="count", aes(label=after_stat(count)), position=position_stack(vjust=0.5)) +
labs(title = "Grafico de torta tipo de inmueble",
fill = "Zona")Ahora vamos a crear un gráfico de densidad para los precios de venta:
ggplot(df, aes(x = preciom, fill = estrato)) +
geom_density(alpha = 0.5) +
labs(title = "Densidad de Precios de Venta", x = "Precio de Venta", y = "Densidad")## Warning: Removed 2 rows containing non-finite values (`stat_density()`).
## Warning: The following aesthetics were dropped during statistical transformation: fill
## ℹ This can happen when ggplot fails to infer the correct grouping structure in
## the data.
## ℹ Did you forget to specify a `group` aesthetic or to convert a numerical
## variable into a factor?
El gráfico de densidad es una herramienta útil para visualizar la distribución de los datos en una variable continua, como en este caso, los precios de venta de las viviendas. Permite ver cómo se agrupan los valores y dónde se concentran las observaciones. En resumen, el gráfico de densidad te ayudará a comprender mejor la distribución de los precios de venta y a tomar decisiones más informadas sobre estrategias de precios, segmentación de mercado y enfoques de marketing. Las conclusiones específicas que saques dependerán de la forma de las distribuciones, los patrones identificados y cómo estos encajan en el contexto más amplio del mercado de los bienes raíces en Cali.
Ahora bien, para los clientes es importante tener una relación entre la cantidad de habitaciones y baños en vivienda, por ende podemos usar un scatterlot para representar esto:
ggplot(df, aes(x = habitac, y = banios, color = estrato)) +
geom_point() +
labs(title = "Relación entre Habitaciones y Baños", x = "Habitaciones", y = "Baños")## Warning: Removed 3 rows containing missing values (`geom_point()`).
Por ultimo, me interesa visualizar la relación entre la zona y el precio:
df$zona <- factor(df$zona)
#Realizamos un grafico de bigotes con dichas variables
ggplot(df, aes(x = zona, y = preciom, fill = zona)) +
geom_boxplot() +
stat_summary(fun = mean, geom = "text", aes(label = round(after_stat(y), 2)),
vjust = 0, color = "black", size = 5) +
labs(title = "Relación entre Zona y Precio",
x = "Zona",
y = "Precio") +
theme_classic()## Warning: Removed 2 rows containing non-finite values (`stat_boxplot()`).
## Warning: Removed 2 rows containing non-finite values (`stat_summary()`).
En la zona sur es donde se tiene una mayor cantidad de apartamentos. Adicional es la zona que tiene un valor promedio de avaluo.
Son casas que en promedio estan avaluadas en 400 millones de pesos, por ende el público al que necesitamos llegar es de personas con un estrato socioeconomico por encima del promedio.
En los datos de los parqueaderos, se observo que en su mayoría las casas solo tenian de 1 a 2 parqueaderos
Se observa una correlación entre el estrato y el precio, dado que entre mayor el precio más alto es el estrato del inmueble.