Este informe presenta un análisis exploratorio de datos dirigido a la empresa B&C, una agencia de bienes raíces establecida en Cali, Colombia. La base de datos proporcionada contiene 8,330 observaciones y 13 variables que incluyen información detallada sobre las viviendas en Cali, como el precio, la ubicación, el estrato, el área construida y las características específicas de cada propiedad. Con el objetivo de proporcionar una visión detallada del mercado inmobiliario local, este informe se centra en tres objetivos principales: analizar la distribución de precios en diferentes zonas de Cali, determinar los tipos de viviendas más ofertadas y evaluar las características más relevantes de la oferta de vivienda en la ciudad. Estos análisis tienen como objetivo brindar a los directivos de B&C información clave para la definición de su nicho de mercado, el desarrollo de estrategias de marketing efectivas y la optimización de la satisfacción del cliente. Con un enfoque en la utilidad práctica de los resultados obtenidos, este informe pretende ser una herramienta valiosa para la toma de decisiones informadas y el éxito continuo de B&C en un mercado inmobiliario en constante evolución.
Se obtuvo una base de datos de la empresa B&C, la cual contiene información detallada sobre 8,330 viviendas ubicadas en Cali, Colombia. Los datos incluyen variables como el precio de venta, la ubicación geográfica, el estrato socioeconómico, el número de habitaciones, baños, parqueaderos, entre otros.
Se realizó una exploración preliminar de los datos para identificar posibles inconsistencias, valores atípicos o datos faltantes. Esta etapa incluyó la revisión de estadísticas descriptivas y la visualización gráfica de las variables clave.
Se llevaron a cabo análisis descriptivos detallados para abordar los objetivos establecidos en el informe. Esto incluyó el cálculo de medidas de tendencia central, dispersión y distribución para variables como el precio de las viviendas, así como la realización de tablas de frecuencia y gráficos para examinar la distribución de otras variables como el tipo de vivienda, el estrato y las características específicas de las propiedades.
Se realizaron comparaciones entre diferentes subconjuntos de datos, como las viviendas ubicadas en diferentes zonas de la ciudad, los distintos tipos de viviendas (apartamentos vs. casas), y los diferentes estratos socioeconómicos. Esto permitió identificar patrones y tendencias significativas en el mercado inmobiliario de Cali.
Se validaron los resultados obtenidos mediante análisis adicionales y la revisión exhaustiva de los hallazgos por parte del equipo de investigación. Además, se tomaron medidas para garantizar la precisión y la fiabilidad de los resultados presentados en el informe final.
Es crucial reconocer ciertas consideraciones al evaluar la validez interna y externa de los datos recopilados. En términos de validez interna, se parte del supuesto de que los instrumentos de medición utilizados para recopilar la información fueron seleccionados siguiendo criterios adecuados. Sin embargo, la certeza absoluta sobre la idoneidad de estos instrumentos no está garantizada, lo que plantea la posibilidad de que algunas mediciones no reflejen con precisión las características reales de las viviendas estudiadas.
En cuanto a la validez externa, se ha analizado un total de 8,330 viviendas en la ciudad de Cali. No obstante, es esencial tener en cuenta que esta muestra no abarca la totalidad del universo de viviendas en Cali, lo que podría limitar la generalización de los resultados obtenidos a toda la población de viviendas en la ciudad.
A pesar de estas posibles limitaciones, los datos recopilados ofrecen una perspectiva significativa del mercado inmobiliario local. Esto permite realizar análisis relevantes para la toma de decisiones en el contexto de la agencia de bienes raíces, aunque se recomienda considerar estas limitaciones al interpretar los resultados obtenidos.
Para iniciar la exploración de datos, se procede a importar las librerías que serán utilizadas en el análisis.
library(paqueteMETODOS)
library(dplyr)
library(ggplot2)
library(mice)
library(tidyverse)
library(ggmice)
library(plotly)
library(scales)
library(DescTools)
library(openxlsx)
library(stringi)
Ahora se procede a importar los datos para su análisis.
data(vivienda_faltantes)
La limpieza de datos es esencial para asegurar resultados coherentes y precisos. Para comenzar, se analizará la cantidad de observaciones y variables en la base de datos actual.
dim(vivienda_faltantes)
## [1] 8330 13
La base de datos inicial consta de 8330 observaciones y 13 variables. A continuación, se presenta un resumen descriptivo de estas variables.
summary(vivienda_faltantes)
## 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
El resumen descriptivo ofrece estadísticas clave como mínimo, máximo, primer y tercer cuartil, mediana y promedio para cada variable. Se observan valores nulos en varias variables, lo que afecta la calidad de la base de datos. Por lo tanto, se realizará una limpieza eliminando estas observaciones.
Para llevar a cabo un análisis detallado de los datos nulos o faltantes, se emplea la librería ggmice. Se utiliza el comando plot_pattern para visualizar de manera gráfica la distribución de los datos faltantes en la base de datos.
plot_pattern(vivienda_faltantes, rotate = TRUE)
Se identificó que existen 2 registros o viviendas con información
completamente vacía, así como 1 registro con solo la variable “preciom”.
Para mejorar la calidad de la base de datos, se procede a eliminar estos
3 registros.
En primer lugar, se removerán las dos filas que no contienen ninguna información, es decir, están completamente vacías.
vivienda_faltantes <- vivienda_faltantes[rowSums(is.na(vivienda_faltantes)) != ncol(vivienda_faltantes),]
Posteriormente, se procede a eliminar la tercera fila que contiene únicamente la variable “preciom”.
vivienda_faltantes <- vivienda_faltantes[complete.cases(vivienda_faltantes$id),]
Después de eliminar los registros con información faltante, se procede a realizar un nuevo análisis de la matriz de valores nulos para asegurar que no queden registros con datos incompletos:
plot_pattern(vivienda_faltantes, rotate = TRUE)
Tras la eliminación de los registros con datos vacíos, se observa una
mejora significativa en la calidad de la base de datos. Sin embargo, aún
persisten valores nulos en las variables “parqueadero” y “piso”. Estas
dos columnas conservan un número considerable de casos vacíos, con 1603
y 2638 registros vacíos respectivamente. Aunque se ha reducido el ruido
en la base de datos, es importante tener en cuenta estos valores nulos
al realizar análisis posteriores.
Se identificó la presencia de 8 registros duplicados en la base de datos. Por lo tanto, se llevará a cabo la eliminación de estos duplicados para conservar únicamente valores únicos y garantizar la integridad de los datos.
duplicados <- duplicated(vivienda_faltantes)
sum(duplicados)
## [1] 8
filter(vivienda_faltantes, duplicados)
## # A tibble: 8 × 13
## id zona piso estrato preciom areaconst parquea banios habitac tipo
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 8309 Zona Oeste 5 4 150 56 NA 1 2 Apart…
## 2 8310 Zona Oeste 1 6 1600 463 4 6 3 Apart…
## 3 8313 Zona Oeste 7 6 525 137 2 3 3 Apart…
## 4 8314 Zona Oeste 7 6 1400 210 3 4 3 Apart…
## 5 8315 Zona Oeste NA 6 620 167 2 4 4 Apart…
## 6 8316 Zona Norte 7 5 400 220 1 4 4 Apart…
## 7 8317 Zona Oeste NA 6 1100 290 4 4 3 Apart…
## 8 8318 Zona Norte NA 4 580 295 2 5 5 Casa
## # ℹ 3 more variables: barrio <chr>, longitud <dbl>, latitud <dbl>
Para eliminar los duplicados se procede de la siguiente manera.
vivienda_faltantes <- distinct(vivienda_faltantes)
duplicados <- duplicated(vivienda_faltantes)
sum(duplicados)
## [1] 0
Se observa que ahora ya no hay presencia de duplicados en la base de adtos.
Identificamos datos mal tabulados que generan múltiples registros incorrectos. Corregirlos asegura la precisión de nuestra base de datos.
unique(vivienda_faltantes$zona)
## [1] "Zona Oeste" "Zona Sur" "Zona Norte" "Zona Oriente" "Zona Centro"
unique(vivienda_faltantes$tipo)
## [1] "Apartamento" "Casa" "APARTAMENTO" "casa" "CASA"
## [6] "apto"
Unificaremos las palabras ‘APARTAMENTO’ y ‘apto’ en un único dato ‘Apartamento’, así como las palabras ‘casa’ y ‘CASA’ en ‘Casa’, para homogeneizar la categorización de propiedades en nuestra base de datos.
vivienda_faltantes$tipo <- str_replace_all(vivienda_faltantes$tipo, pattern = "APARTAMENTO|apto", replacement= "Apartamento")
vivienda_faltantes$tipo <- str_replace_all(vivienda_faltantes$tipo, pattern = "CASA|casa", replacement= "Casa")
Ahora verificaremos que no haya inconsistencias en el tipo de vivienda.
unique(vivienda_faltantes$tipo)
## [1] "Apartamento" "Casa"
Ahora revisaremos la base de datos para determinar la cantidad de datos vacíos por variable después de realizar los cambios aplicados en los pasos anteriores.
colSums(is.na(vivienda_faltantes)) %>%
as.data.frame()
## .
## id 0
## zona 0
## piso 2635
## estrato 0
## preciom 0
## areaconst 0
## parquea 1602
## banios 0
## habitac 0
## tipo 0
## barrio 0
## longitud 0
## latitud 0
Tras la limpieza de datos, se observa que las variables ‘piso’ y ‘parqueadero’ contienen 2635 y 1602 registros nulos, respectivamente.
Tras analizar nuestro conjunto de datos, hemos identificado que las variables ‘piso’ y ‘parqueadero’ son las únicas afectadas por valores nulos. Para abordar esta situación y garantizar la integridad de nuestros análisis, proponemos considerar las siguientes alternativas para la imputación de estos datos faltantes:
Antes de optar por alguna de estas opciones, es necesario comprender el contexto y plantearnos por qué estos datos podrían estar vacíos. ¿Cuál podría haber sido la razón?
Algunas posibles razones podrían incluir:
Información no proporcionada por el cliente: En algunos casos, los clientes pueden optar por no proporcionar detalles sobre el piso o el número de espacios de estacionamiento disponibles en la propiedad.
Errores de ingreso de datos: Durante la entrada de datos, es posible que se hayan omitido los detalles del piso o del parqueadero debido a errores humanos o problemas técnicos.
Características de la propiedad: En ciertos tipos de propiedades, como terrenos o locales comerciales, la información sobre el piso o el parqueadero puede no ser relevante o aplicable.
Información incompleta de la fuente de datos: Dependiendo de la fuente de los datos, es posible que la información sobre el piso o el parqueadero no esté disponible o no se haya recopilado adecuadamente.
La presencia de datos nulos en la base sugiere que la información sobre piso o parqueadero puede no ser relevante para ciertas viviendas. Es probable que algunas casas no tengan parqueadero, y en el caso de apartamentos, pueden no haber asignaciones previas de parqueadero. Por lo tanto, hemos optado por imputar todos los valores nulos con 0.
Para el proceso de reemplazo de los valores nulos por 0 en la variable parqueadero se realiza de la siguiente manera.
vivienda_faltantes$parquea[is.na(vivienda_faltantes$parquea)] <- 0
Para la variable “piso”, dado que no puede tener un valor de 0 y es una variable cualitativa ordinal, se opta por reemplazar los datos faltantes por la moda. En este caso, la moda sería el piso 2, ya que es el que tiene la mayor frecuencia.
moda_piso <- Mode(vivienda_faltantes$piso, na.rm = TRUE)
vivienda_faltantes$piso[is.na(vivienda_faltantes$piso)] <- moda_piso
Ahora si finalmente observamos la base de datos:
colSums(is.na(vivienda_faltantes)) %>%
as.data.frame()
## .
## id 0
## zona 0
## piso 0
## estrato 0
## preciom 0
## areaconst 0
## parquea 0
## banios 0
## habitac 0
## tipo 0
## barrio 0
## longitud 0
## latitud 0
Se puede observar que ya no existen datos nulos o vacíos en la base de datos.
Por último, se intentará homogeneizar la variable “barrio”. Dado que hay una gran cantidad de barrios diferentes y puede ser difícil encontrar palabras mal tabuladas, se opta por estandarizar el texto para mejorar la calidad de los datos mediante la colocación de minúsculas a todas las palabras y quitar tildes o acentos en las palabras.
vivienda_faltantes$barrio <- tolower(vivienda_faltantes$barrio)
vivienda_faltantes$barrio <- stri_trans_general(vivienda_faltantes$barrio, "Latin-ASCII")
Antes de realizar el análisis, es indispensable analizar el tipo de variable para determinar la representación gráfica a utilizar y, por lo tanto, garantizar la consistencia en los resultados.
Se analizará la distribución de precios en las diferentes zonas de Cali mediante el uso de estadisticas descriptivas mediante indicadores de tendencia central, de dispersión y de centro.
De igual forma se plantea analizar si existe alguna relación entre el estrato y el precio de las viviendas en cada zona.
summarytools::descr(vivienda_faltantes$preciom)
## Descriptive Statistics
## vivienda_faltantes$preciom
## N: 8319
##
## preciom
## ----------------- ---------
## Mean 433.90
## Std.Dev 328.67
## Min 58.00
## Q1 220.00
## Median 330.00
## Q3 540.00
## Max 1999.00
## MAD 207.56
## IQR 320.00
## CV 0.76
## Skewness 1.85
## SE.Skewness 0.03
## Kurtosis 3.67
## N.Valid 8319.00
## Pct.Valid 100.00
Este análisis indica que :
Media (Mean): El precio medio de la variable es de $433.90.
Desviación estándar (Std.Dev): La dispersión de los precios alrededor de la media es bastante alta, con una desviación estándar de $328.67.
Valores Mínimo y Máximo (Min, Max): El precio mínimo es de $58.00, mientras que el precio máximo es de $1999.00.
Cuartiles (Q1, Q3) y Mediana (Median): El primer cuartil (Q1) es de $220.00, el tercer cuartil (Q3) es de $540.00 y la mediana es de $330.00. Esto indica que la mitad de los precios están entre $220.00 y $540.00.
Rango Intercuartílico (IQR): El rango intercuartílico es de $320.00, lo que sugiere que la mitad central de los datos está relativamente concentrada.
Coeficiente de Variación (CV): El coeficiente de variación es del 0.76, lo que indica que la variabilidad relativa de los precios es moderada.
Asimetría (Skewness) y Kurtosis: La asimetría es positiva (1.85), lo que sugiere que la distribución de precios está sesgada hacia la derecha. La kurtosis (3.67) indica que la distribución tiene una mayor concentración de datos en la cola en comparación con una distribución normal.
N.Valid y Pct.Valid: Todos los 8319 datos son válidos (100% de los datos válidos), lo que significa que no hay valores faltantes en esta variable.
En resumen, los precios de esta variable tienen una amplia variabilidad y una distribución sesgada hacia la derecha. La mayoría de los precios se encuentran en el rango entre $220.00 y $540.00, con algunos valores extremadamente altos llegando hasta $1999.00.
Ahora al hacer una representación gráfica:
ggplotly(ggplot(vivienda_faltantes, mapping = aes(x = "", y = preciom))+
geom_boxplot()+
coord_flip()+
labs(title = "Distribucion de precio en millones",
x = "Preciom",
y = "Precio en millones")+
theme_minimal())
Complementando la información escrita anteriormente, se observa que el primer cuartil (Q1) o el 25% de los precios de las viviendas es de 220 millones, la mediana (Q2) o el 50% de los precios es de 330 millones, y el tercer cuartil (Q3) o el 75% de los precios es de 540 millones. El precio mínimo registrado es de 58 millones, mientras que el máximo es de 1999 millones. Es importante destacar que esto indica que el 50% de las viviendas tienen un precio igual o inferior a 330 millones. También observamos que los datos no siguen una distribución completamente simétrica, ya que la diferencia entre Q1 y Q2 es diferente a la diferencia entre Q2 y Q3. Asimismo, se aprecian valores atípicos que se desvían del patrón normal de los datos.
Ahora al analizar el comportamiento de los precios en distintas zonas de la ciudad de Cali:
vivienda_faltantes %>%
group_by(zona) %>%
summarytools::descr(vivienda_faltantes$preciom)
## Descriptive Statistics
## preciom by zona
## Data Frame: vivienda_faltantes
## N: 124
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## ----------------- ------------- ------------ ------------ -------------- ----------
## Mean 309.69 345.61 677.58 228.53 426.52
## Std.Dev 162.15 240.87 391.58 122.06 322.72
## Min 100.00 65.00 85.00 58.00 75.00
## Q1 187.50 160.00 393.00 145.00 222.00
## Median 297.00 300.00 580.00 210.00 320.00
## Q3 362.50 430.00 900.00 290.00 520.00
## Max 1100.00 1940.00 1999.00 1350.00 1900.00
## MAD 126.02 200.15 326.17 103.78 192.74
## IQR 172.50 270.00 506.50 145.00 298.00
## CV 0.52 0.70 0.58 0.53 0.76
## Skewness 1.94 1.97 0.99 2.87 2.00
## SE.Skewness 0.22 0.06 0.07 0.13 0.04
## Kurtosis 5.92 5.75 0.47 20.21 4.29
## N.Valid 124.00 1920.00 1198.00 351.00 4726.00
## Pct.Valid 100.00 100.00 100.00 100.00 100.00
Por lo tanto, se observa que:
Promedio (Mean): El precio promedio más alto se encuentra en la Zona Oeste ($677.58), seguido por la Zona Sur ($426.52), la Zona Norte ($345.61), la Zona Centro ($309.69) y la Zona Oriente ($228.53).
Desviación Estándar (Std.Dev): La mayor variabilidad en los precios se observa en la Zona Oeste ($391.58), seguida por la Zona Sur ($322.72), la Zona Norte ($240.87), la Zona Centro ($162.15) y la Zona Oriente ($122.06).
Valores Mínimo y Máximo (Min, Max): Los precios más bajos se encuentran en la Zona Oriente, mientras que los precios más altos se encuentran en la Zona Oeste y la Zona Sur.
Cuartiles (Q1, Q3) y Mediana (Median): Las medianas de los precios están en el siguiente orden: Zona Oeste, Zona Sur, Zona Norte, Zona Centro y Zona Oriente. Esto sugiere que la mediana de los precios es más alta en las zonas occidentales y meridionales.
Rango Intercuartílico (IQR): La mayor variabilidad intercuartílica se observa en la Zona Oeste y la Zona Sur.
Coeficiente de Variación (CV): La mayor variabilidad relativa de los precios se encuentra en la Zona Sur.
Asimetría (Skewness) y Kurtosis: Las distribuciones de precios para todas las zonas son sesgadas hacia la derecha (asimetría positiva), pero la Zona Oriente muestra la mayor asimetría y kurtosis.
Cantidad de Datos Válidos (N.Valid) y Porcentaje de Datos Válidos (Pct.Valid): Todas las zonas tienen diferentes cantidades de datos válidos, pero el porcentaje de datos válidos es del 100% para todas las zonas.
En resumen, los precios varían significativamente entre las diferentes zonas, con la Zona Oeste y la Zona Sur generalmente teniendo precios más altos y mayor variabilidad. La distribución de precios tiende a ser sesgada hacia la derecha en todas las zonas, pero la Zona Oriente muestra la mayor asimetría y kurtosis.
Ahora al hacer una representación gráfica:
ggplotly(ggplot(vivienda_faltantes, mapping = aes(x = zona, y = preciom)) +
geom_boxplot() +
labs(title = "Distribucion de precio en millones por zona",
x = "Preciom",
y = "Precio en millones") +
theme_minimal())
Se puede observar los valores de Q1, Q2 o mediana y Q3, así mismo los valores minimos y maximos y los datos atipicos, también por la posición de la caja y el tamaño de la misma se aprecia la variabilidad.
Al realizar un análisis por zona, basado en la gráfica de cajas y bigotes y en la tabla de estadísticas descriptivas se observa que:
ggplotly(ggplot(vivienda_faltantes, mapping = aes(x = zona, y = preciom)) +
geom_boxplot() +
facet_grid(~estrato)+
coord_flip()+
labs(title = "Distribucion de precio en millones por estrato, tipo de vivienda y zona",
x = "Zona",
y = "Precio en millones") +
theme_minimal())
Se observa que, a medida que aumenta el estrato, también lo hace el precio de las viviendas, lo cual era de esperarse. Cabe resaltar la presencia de valores atípicos, por ejemplo, en el estrato 3 con precios de vivienda de 1600 millones en la Zona Oeste, 1100 millones en la Zona Norte y 1350 millones en la Zona Sur, así como en los demás estratos. Sin embargo, el tamaño de las cajas permite observar la concentración del 50% de los datos, lo cual muestra que en el estrato 6 las cajas son más grandes.
Se busca determinar la proporción de apartamentos y casas en el mercado inmobiliario de Cali, así como comparar la distribución de precios entre apartamentos y casas, y analizar la demanda de cada tipo de vivienda en diferentes estratos socioeconómicos de la ciudad.
Se presenta una gráfica de torta que permite observar la relación entre apartamentos y casas en Cali:
vivienda_faltantes %>%
group_by(tipo) %>%
summarise(count = n()) %>%
plot_ly(type = 'pie', labels = ~tipo, values = ~count) %>%
layout(title = "Numero de viviendas por tipo de vivienda")
Se observa que el 61.3% de las viviendas en Cali son apartamentos, mientras que el 38.7% restante corresponde a casas.
Primero realizaremos las estadisticas descriptivas para hacer la comparación de precios entre apartamentos y casas.
vivienda_faltantes %>%
group_by(tipo) %>%
summarytools::descr(vivienda_faltantes$preciom)
## Descriptive Statistics
## preciom by tipo
## Data Frame: vivienda_faltantes
## N: 5099
##
## Apartamento Casa
## ----------------- ------------- ---------
## Mean 366.99 539.86
## Std.Dev 289.23 358.22
## Min 58.00 77.00
## Q1 175.00 300.00
## Median 279.00 430.00
## Q3 430.00 670.00
## Max 1950.00 1999.00
## MAD 176.43 237.22
## IQR 255.00 370.00
## CV 0.79 0.66
## Skewness 2.16 1.57
## SE.Skewness 0.03 0.04
## Kurtosis 5.43 2.28
## N.Valid 5099.00 3220.00
## Pct.Valid 100.00 100.00
Ahora al realizar un diagrama de cajas y bigotes.
ggplotly(ggplot(vivienda_faltantes, mapping = aes(x = tipo, y = preciom)) +
geom_boxplot() +
labs(title = "Distribucion de precio en millones por tipo de vivienda",
x = "Tipo de vivienda",
y = "Precio en millones") +
theme_minimal())
Al observar la tabla de estadísticas descriptivas y el diagrama de cajas y bigotes se analiza que:
En promedio, los apartamentos tienen un precio de $366.99, mientras que las casas tienen un precio promedio más alto de $539.86.
La variabilidad de los precios es mayor en los apartamentos, ya que su desviación estándar es de $289.23, comparada con $358.22 en las casas. Esto sugiere que los precios de los apartamentos tienden a estar más dispersos.
Tanto para apartamentos como para casas, los precios varían desde un mínimo de $58.00 hasta un máximo de $1950.00 para los apartamentos y desde $77.00 hasta $1999.00 para las casas.
La mediana, que representa el punto medio de los precios, es de $279.00 para los apartamentos y $430.00 para las casas. Esto indica que la mitad de los apartamentos tienen precios por encima de $279.00, mientras que la mitad de las casas tienen precios por encima de $430.00.
El coeficiente de variación (CV) mide la dispersión relativa de los precios. Con valores de 0.79 para apartamentos y 0.66 para casas, podemos decir que la variabilidad relativa de los precios es mayor en los apartamentos.
El sesgo (Skewness) indica cómo se inclina la distribución de precios. Valores positivos (2.16 para apartamentos y 1.57 para casas) sugieren que la mayoría de los precios están en el extremo más bajo de la escala.
La kurtosis mide la forma de la distribución de precios. Con valores de 5.43 para apartamentos y 2.28 para casas, ambos muestran colas pesadas, lo que significa que hay una mayor concentración de precios en los extremos.
En resumen, los datos sugieren que, aunque los apartamentos tienen un precio promedio más bajo, su variabilidad de precios es mayor en comparación con las casas. Las casas tienden a tener precios más altos en general, con una distribución de precios más concentrada alrededor de la mediana.
ggplotly(vivienda_faltantes %>%
group_by(estrato, tipo) %>%
summarise(count= n()) %>%
mutate(pct = count/sum(count)) %>%
ggplot(aes(x= estrato, y = count , fill = tipo)) +
geom_bar(stat = "identity")+
geom_text(aes(label = number(count)),
position = position_stack(vjust = 0.5))+
labs(title = "Numero de viviendas por estrato y tipo",
x = "Estrato", y = "No de viviendas")+
coord_flip())
## `summarise()` has grouped output by 'estrato'. You can override using the
## `.groups` argument.
Se observa que la mayoría de las viviendas se encuentran en el estrato 5 y son apartamentos, seguidas de viviendas en el estrato 4, donde también predominan los apartamentos. Posteriormente, en el estrato 6, predominan de igual forma los apartamentos, mientras que en el estrato 3 predominan las casas.
Ahora se determinarán las caracteristicas mas comunes de las viviendas en Cali.
ggplotly(ggplot(data = vivienda_faltantes, aes(x= habitac)) +
geom_histogram(binwidth = 0.5, fill = "lightblue", color = "black", alpha = 0.7) +
scale_x_continuous(breaks = seq(0, 20, 1))+
labs(title = "Numero de viviendas por numero de habitaciones", x = "No de habitaciones", y = "No de viviendas")
)
Se observa que la mayoría de viviendas son de 3 habitaciones.
ggplotly(ggplot(data = vivienda_faltantes, aes(x= banios)) +
geom_histogram(binwidth = 0.5, fill = "lightblue", color = "black", alpha = 0.7) +
scale_x_continuous(breaks = seq(0, 20, 1))+
labs(title = "Numero de viviendas por numero de banos", x = "No de banos", y = "No de viviendas")
)
Se observa que la mayoría de viviendas cuentan con 2 baños.
ggplotly(ggplot(data = vivienda_faltantes, aes(x= areaconst)) +
geom_histogram(binwidth = 10, fill = "lightblue", color = "black", alpha = 0.7) +
labs(title = "Numero de viviendas por area construida", x = "Area construida", y = "No de viviendas")
)
Se observa que la mayoría de las viviendas tienen un área construida entre 30 y 200 metros, ya que a partir de este punto la tendencia en la gráfica comienza a disminuir.
ggplotly(ggplot(data = vivienda_faltantes, aes(x= parquea)) +
geom_histogram(binwidth = 0.5, fill = "lightblue", color = "black", alpha = 0.7) +
scale_x_continuous(breaks = seq(0, 20, 1))+
labs(title = "Numero de viviendas por cantidad de parqueaderos", x = "No de parqueaderos", y = "No de viviendas")
)
Se observa que la mayoría de viviendas cuentan con un solo parqueadero, seguidas por viviendas con dos parqueaderos, y luego viviendas que no cuentan con parqueadero.
El análisis detallado de precios y mercado inmobiliario proporciona una visión profunda del panorama actual en el que opera B&C, ofreciendo perspectivas valiosas para la formulación de estrategias comerciales efectivas. Los hallazgos revelan una amplia variabilidad en los precios de las propiedades en Cali, con fluctuaciones significativas tanto dentro como entre las diferentes zonas geográficas. Esta heterogeneidad en los precios refleja la diversidad del mercado y presenta oportunidades para adaptar estrategias de precios a las necesidades específicas de cada segmento de clientes.
Una de las observaciones destacadas es la segmentación del mercado por zona geográfica, donde áreas con alta demanda, como la Zona Oeste y la Zona Sur, exhiben precios más elevados en comparación con zonas menos demandadas como la Zona Oriente. Esta diferenciación resalta la importancia de considerar la ubicación específica al establecer precios y desarrollar estrategias de marketing dirigidas a diferentes segmentos de clientes.
Comprender los precios competitivos en diferentes zonas y tipos de vivienda es fundamental para atraer a compradores potenciales y fomentar transacciones exitosas. Es crucial mantenerse al tanto de los movimientos del mercado y ajustar los precios en consecuencia para mantener la competitividad y maximizar el retorno de la inversión.
Además de los precios base de las viviendas, la implementación de estrategias de valor agregado podría justificar precios más altos y diferenciar las ofertas de B&C en el mercado. Esto podría incluir servicios personalizados, garantías extendidas o mejoras en la propiedad que aumenten su atractivo para los compradores potenciales.
Es importante reconocer que este análisis tiene limitaciones, como la disponibilidad limitada de datos específicos sobre transacciones inmobiliarias y factores externos que podrían influir en los precios, como cambios en la economía local o regulaciones gubernamentales.
En conclusión, los resultados del análisis proporcionan una base sólida para la toma de decisiones informadas y el desarrollo de estrategias comerciales efectivas para B&C. Al comprender la dinámica de precios y mercado en el sector inmobiliario de Cali, la empresa está mejor equipada para capitalizar las oportunidades y superar los desafíos en un mercado en constante evolución.
Gracias a este estudio, se pudo analizar los diferentes comportamientos de las variables involucradas con el fin de definir nichos de mercado, desarrollar estrategias de marketing, establecer precios de venta y ofrecer servicios personalizados a los clientes.