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.
1. Precio de las viviendas en diferentes zonas de Cali:
2. Tipo de viviendas más ofertadas en Cali:
3. Características más relevantes de la oferta de vivienda en Cali:
1. Recopilación de datos
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.
2. Exploración inicial de los datos
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.
3. Análisis descriptivo
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.
4. Análisis comparativo
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.
5. Validación de resultados
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.
Evaluación de la Validez Interna y Externa de los Datos Recopilados
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.
Importación de librerías y datos
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)
#Limpieza de datos
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.
#Reemplazo de valores inconsistentes
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")
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:
Zona Centro: se observa un precio promedio de $309.69 con una desviación estándar de $162.15, indicando una variabilidad considerable en los precios de las propiedades. Los precios oscilan entre $100.00 y $1100.00, con una mediana de $297.00, sugiriendo una distribución sesgada hacia la derecha y colas pesadas. El coeficiente de variación de 0.52 muestra una moderada variabilidad relativa, mientras que se dispone de un total de 124 observaciones válidas para esta zona. Zona Norte: se observa un precio promedio más alto de $345.61 con una desviación estándar de $240.87, lo que indica una mayor variabilidad en los precios de las propiedades en comparación con la Zona Centro. Los precios varían desde $65.00 hasta $1940.00, con una mediana de $300.00, sugiriendo una distribución sesgada hacia la derecha y colas pesadas. El coeficiente de variación de 0.70 refleja una variabilidad relativa moderada, mientras que se dispone de un total de 1920 observaciones válidas para esta zona, lo que indica una muestra más amplia en comparación con la Zona Centro. Zona Oeste: se destaca un precio promedio significativamente más alto de $677.58, con una desviación estándar de $391.58, lo que sugiere una mayor variabilidad en los precios de las propiedades en comparación con la Zona Centro y la Zona Norte. Los precios oscilan desde $85.00 hasta $1999.00, con una mediana de $580.00, indicando una distribución sesgada hacia la derecha y colas pesadas. El coeficiente de variación de 0.58 refleja una variabilidad relativa moderada, y se dispone de un total de 1198 observaciones válidas para esta zona. Esto sugiere una muestra considerablemente grande, lo que proporciona una base sólida para el análisis de precios en esta área. Zona Oriente: se observa un precio promedio de $228.53, con una desviación estándar de $122.06, indicando una menor variabilidad en los precios en comparación con otras zonas. Los precios varían desde $58.00 hasta $1350.00, con una mediana de $210.00, sugiriendo una distribución sesgada hacia la derecha y colas muy pesadas, como indican la asimetría (Skewness) de 2.87 y la kurtosis de 20.21. El coeficiente de variación de 0.53 refleja una variabilidad relativa moderada, y se dispone de un total de 351 observaciones válidas para esta zona, lo que sugiere una muestra más pequeña en comparación con otras zonas, pero aún así suficiente para realizar análisis significativos. Zona Sur: se observa un precio promedio de $426.52, con una desviación estándar de $322.72, indicando una variabilidad considerable en los precios de las propiedades. Los precios varían desde $75.00 hasta $1900.00, con una mediana de $320.00, sugiriendo una distribución sesgada hacia la derecha y colas pesadas, como se refleja en la asimetría (Skewness) de 2.00 y la kurtosis de 4.29. El coeficiente de variación de 0.76 indica una variabilidad relativa moderada, y se dispone de un total de 4726 observaciones válidas para esta zona, lo que sugiere una muestra grande y representativa para el análisis de precios en esta área.
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.
#Número de parqueaderos
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.
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.
Análisis Detallado de Precios: El análisis detallado de los precios revela una amplia variabilidad en el mercado inmobiliario de Cali, con precios que oscilan desde montos relativamente bajos hasta cifras considerablemente altas. Esta diversidad de precios refleja la heterogeneidad del mercado y ofrece oportunidades para adaptar estrategias de precios a diferentes segmentos de clientes. Segmentación de Mercado por Zona: La diferenciación de precios por zona geográfica resalta la importancia de considerar las ubicaciones específicas al establecer precios. Las áreas de alta demanda, como la Zona Oeste y la Zona Sur, tienden a tener precios más elevados, mientras que las áreas menos demandadas, como la Zona Oriente, exhiben precios más bajos. Esta segmentación permite una estrategia de precios más precisa y ajustada a las condiciones locales. Análisis del Mercado Local: Se realizó un análisis exhaustivo del mercado inmobiliario en Cali, revelando patrones significativos sobre la distribución de precios, los tipos de viviendas más solicitadas y las características predominantes de las propiedades en la región. Esta información es invaluable para comprender el panorama actual del mercado y planificar estrategias efectivas. Definición de Nicho de Mercado: Los hallazgos indican una alta demanda de apartamentos, especialmente en los estratos medios y altos. Esto proporciona una guía clara para enfocar los esfuerzos en promocionar apartamentos en áreas urbanizadas, al mismo tiempo que explorar oportunidades para atender la demanda de casas en estratos más bajos. Estrategias de Marketing: Con una comprensión más profunda de la distribución de precios por zona y tipo de vivienda, se pueden desarrollar estrategias de marketing más efectivas. Por ejemplo, resaltar la accesibilidad de los apartamentos en áreas específicas o destacar las características únicas de las casas en estratos más altos para atraer a los compradores adecuados.