En la Ćŗltima dĆ©cada, el mercado de bienes raĆces en Cali ha experimentado un crecimiento significativo, impulsado por diversos factores económicos y sociales. El aumento en la demanda de viviendas, tanto para compra como para alquiler, ha generado un interĆ©s creciente en comprender las tendencias y patrones que caracterizan este mercado dinĆ”mico. En este contexto, el anĆ”lisis estadĆstico descriptivo emerge como una herramienta fundamental para el estudio y la interpretación de los datos relacionados con las ofertas de vivienda en Cali.
A lo largo de este trabajo, se hara uso de la estadĆstica descriptiva para explorar y analizar una base de datos que contiene información detallada sobre las ofertas de vivienda en Cali. Se examinarĆ”n variables clave, como el tipo de vivienda, la zona de ubicación, el tamaƱo y el precio, con el objetivo de comprender mejor la dinĆ”mica del mercado y proporcionar información relevante para agentes inmobiliarios, inversores y tomadores de decisiones en el sector pĆŗblico y privado.
Realizar un anƔlisis descriptivo de la base de datos de viviendas ofertadas en Cali para determinar los precios promedio en las diferentes zonas de la ciudad.
Determinar las caracterĆsticas mĆ”s relevantes de la oferta de vivienda en Cali.
La etapa de limpieza de datos se llevó a cabo para garantizar la calidad y la integridad de los datos antes de iniciar el anÔlisis descriptivo. Se siguieron los siguientes pasos:
-Corrección de errores de entrada: Se verificaron y se corrigieron los errores de entrada en los datos, como errores tipogrÔficos o inconsistencias en el formato de los datos.
-Identificación de datos faltantes: Se llevó a cabo una revisión de los datos para identificar posibles valores faltantes en las variables. Las variables con valores faltantes fueron omitidas del anĆ”lisis, debido a que no se tenĆa contexto sobre la recolección de los datos y la ausencia de valores. Por lo tanto, se optó por excluir estas variables del anĆ”lisis para evitar sesgos o interpretaciones erróneas.
-Manejo de valores atĆpicos: Se examinaron las distribuciones de las variables numĆ©ricas para detectar valores atĆpicos. Los valores atĆpicos identificados fueron revisados, pero no se modificaron ni correigieron por desconocer la naturaliza de la recolección de los datos.
El anÔlisis exploratorio de los datos se llevó a cabo para comprender mejor la distribución y las relaciones entre las variables de interés. Se utilizaron diversos tipos de grÔficos para visualizar la información:
-Tablas de descriptivos: Se calcularon estadĆsticas descriptivas para todas las variables numericas en la base de datos, incluyendo medidas de tendencia central, dispersión y forma de la distribución.
-Histogramas para una variable numérica: Se construyeron histogramas para examinar la distribución de las variables numéricas, como el precio de las viviendas. Esto permitió identificar patrones de distribución y posibles sesgos.
-GrĆ”ficos de barras para variables categóricas: Se generaron grĆ”ficos de barras para visualizar la distribución de variables categóricas, como el tipo de vivienda (casa o apartamento). Estos grĆ”ficos proporcionaron información sobre la frecuencia de cada categorĆa y permitieron comparaciones entre grupos.
-GrĆ”ficos cajas para variables categorĆas vs.Ā numĆ©ricas: Se realizaron grĆ”ficos de cajas para comparar la distribución del precio de las viviendas vs zonas geogrĆ”ficas, tipo de vivienda vs habitaciones, etc. Esto permitió visualizar cualquier variación en las variables comparadas y detectar posibles tendencias o diferencias significativas entre las ellas.
Estos anĆ”lisis visuales fueron fundamentales para explorar la estructura y las caracterĆsticas de los datos, asĆ como para identificar posibles patrones, relaciones y tendencias que podrĆan guiar anĆ”lisis posteriores.
Los resultados estƔn divididos en dos partes, la primera es el manejo de la base de datos y su proceso de limpieza, y la segunda parte se centra en el anƔlisis exploratorio de la base de datos para dar respuesta a los obejtivos.
La base de datos que se utilizo es de propiedad de la empresa B&C, la cual contiene trece variables con 8327 datos cada una, entre las variables tenemos variables cualitativas de tipo nominal como la zona de ubicación, el tipo de vivienda, el nombre del barrio, y variables cuantitativas de tipo discreto como estrato, número de habitaciones, número de baños,numero de parqueadero y numero de piso, tambien tenemos tipo continuas como el precio, el Ôrea construida y la ubicación geogrÔfica en latitud y longitud.
Para el procesamiento de esta base, se instalaron y activaron siguientes librerĆas:
# librerias utilizadas en el trabajo
library(devtools)
library(dplyr)
library(ggplot2)
La importación de la base de datos se realizó con la instalacion del paquete metodos desde github:
# descarga de la base de datos
devtools::install_github("dgonxalex80/paqueteMETODOS", force = TRUE)
library(paqueteMETODOS)
En este paso primero se buscó conocer los nombres de las variables que componen la base de datos, luego se ordeno por la variable zona, donde se ubicaron tres observaciones que no aportaban información a la base de datos y se procedió a eliminarlas.
# base de datos a trabajar inicialmente
vivienda_faltantes <- read.csv("vivienda_faltantes.csv")
# conocer las variables que tiene la base de datos
colnames(vivienda_faltantes)
## [1] "id" "zona" "piso" "estrato" "preciom" "areaconst"
## [7] "parquea" "banios" "habitac" "tipo" "barrio" "longitud"
## [13] "latitud"
# ordenar la base de datos por la variable zona
vivienda_ordenada_zona = arrange(vivienda_faltantes, zona)
# eliminacion de los indices que no aportan informacion a la base de datos
indices_a_eliminar = c(8328, 8329, 8330)
vivienda_zona <- vivienda_ordenada_zona[-indices_a_eliminar]
A continuación, se procedió a corregir las variables con datos tipo carĆ”cter (tipo,barrio), pasĆ”ndolas a minĆŗsculas, eliminando caracteres especiales, agregando y eliminando espacio entre letras, unificando palabras y corrigiendo ortografĆa.
# cambiar a minusculas todas las mayusculas
vivienda_zona$tipo = tolower(vivienda_zona$tipo)
# cambiar la palabra apto por apartamento en la variable tipo
vivienda_zona$tipo = gsub("apto", "apartamento", vivienda_zona$tipo)
# eliminar las tildes de las palabras
vivienda_zona$barrio = chartr("ƔƩĆóúĆĆĆĆĆ", "aeiouAEIOU", vivienda_zona$barrio)
# cambiar caracteres especiales
vivienda_zona$barrio = gsub("alfāĀ©rez real", "alferez real", vivienda_zona$barrio)
# colocar espacio entre palabras
vivienda_zona$barrio = gsub("aguablanca", "agua blanca", vivienda_zona$barrio)
# quitar espacio entre palabras
vivienda_zona$barrio = gsub("cali canto", "calicanto", vivienda_zona$barrio)
# unificar palabras
vivienda_zona$barrio = gsub("calicanto viii", "calicanto", vivienda_zona$barrio)
En las variables longitud y latitud se realizó un ciclo for, para unificar la unidades de las observaciones en el sistema decimal.
# función de división condicional para la longitud y arreglar las coordenadas
dividir_longitud <- function(longitud) {
if (longitud < -77) {
return(longitud / 1000) # Dividir por mil si el nĆŗmero es menor a los -77
} else {
return(longitud) # Mantener el valor original si no es menor a los -77
}
}
# ciclo for para aplicar la funcion en la variable
for (i in 1:nrow(vivienda_zona)) {
vivienda_zona$longitud[i] <- dividir_longitud(vivienda_zona$longitud[i])
Para los datos faltantes se utiliza la función (is.na ) para determinar la cantidad faltante de datos en cada variable.
# base de datos a limpia
vivienda_limpia <- read.csv("vivienda_limpia.csv")
#Saber cuantos datos faltan por porcentaje
p <- function(x){sum(is.na(x))/length(x)*100}
apply(vivienda_limpia, 2, p)
## id zona piso estrato preciom areaconst parquea banios
## 0.00000 0.00000 31.68008 0.00000 0.00000 0.00000 19.25063 0.00000
## habitac tipo barrio longitud latitud
## 0.00000 0.00000 0.00000 0.00000 0.00000
En la tabla se puede observar que hay dos variables con datos ausentes, la variable piso con el 31.6 % faltante, y la variable parqueadero (parquea) con el 19.2 %.
Al graficar las variables en el grafico llamado āMissing Data Patternā, se muestra de manera visual la distribución de los valores faltantes en la base de datos.
#graficar que variables les faltan datos
mice::md.pattern(vivienda_limpia)
Como muestra la grafica, las variables piso y parqueadero, son las que presentan datos faltantes, el 22.9 % (1.912 obs) de encuestas solo les falto el dato de piso, el 10.5 % (877 obs) les falto el dato de parqueadero y el 8.7% (726 obs) les hizo falta datos en las dos variables, en total la base tiene 4241 datos faltantes.
Como solo se tiene la base de datos como insumo, sin conocer el contexto en que se tomaron los datos, la entrada de la información a la base o la recopilación en sĆ, se considera prudente omitir estas variables, ya que pueden llegar afectar la integridad y la validez de los resultados del anĆ”lisis, y al utilizar mĆ©todos para manejar los datos faltantes, como la imputación, se pueden introducir sesgos o distorsiones en los resultados finales, por lo anterior se decidió trabajar con las variables que tienen datos completos.
En los resultados del anÔlisis de la base de datos, lo primero que se obtuvo fue una tabla descriptiva de las variables en la base de datos de viviendas en Cali, con medidas de tendencia central, dispersión y forma para las variables de tipo numérico.
#seleccionar las variables que me interesan en un grupo
vivienda_definitiva = vivienda_limpia[,c("zona","estrato","preciom","areaconst","banios","habitac","tipo","barrio")]
# para obtener los descriptivos de la base de datos
summarytools::descr(vivienda_definitiva)
## Non-numerical variable(s) ignored: zona, tipo, barrio
## Descriptive Statistics
## vivienda_definitiva
## N: 8327
##
## areaconst banios estrato habitac preciom
## ----------------- ----------- --------- --------- --------- ---------
## Mean 174.99 3.11 4.63 3.61 434.25
## Std.Dev 142.95 1.43 1.03 1.46 329.03
## Min 30.00 0.00 3.00 0.00 58.00
## Q1 80.00 2.00 4.00 3.00 220.00
## Median 123.00 3.00 5.00 3.00 330.00
## Q3 229.00 4.00 5.00 4.00 540.00
## Max 1745.00 10.00 6.00 10.00 1999.00
## MAD 84.51 1.48 1.48 1.48 209.05
## IQR 149.00 2.00 1.00 1.00 320.00
## CV 0.82 0.46 0.22 0.40 0.76
## Skewness 2.69 0.92 -0.18 1.64 1.85
## SE.Skewness 0.03 0.03 0.03 0.03 0.03
## Kurtosis 12.90 1.12 -1.11 3.99 3.66
## N.Valid 8327.00 8327.00 8327.00 8327.00 8327.00
## Pct.Valid 100.00 100.00 100.00 100.00 100.00
#seleccionar las variables que no me interesa detro de un grupo
vivienda_no_definitiva = vivienda_limpia[,c("piso","parquea","longitud","latitud")]
#obtener los descriptivos del resto de la base de datos
summarytools::descr(vivienda_no_definitiva)
## Descriptive Statistics
## vivienda_no_definitiva
## N: 8327
##
## latitud longitud parquea piso
## ----------------- --------- ---------- --------- ---------
## Mean 3.42 -76.53 1.84 3.77
## Std.Dev 0.04 0.02 1.13 2.62
## Min 3.33 -76.59 1.00 1.00
## Q1 3.38 -76.54 1.00 2.00
## Median 3.42 -76.53 2.00 3.00
## Q3 3.45 -76.52 2.00 5.00
## Max 3.50 -76.46 10.00 12.00
## MAD 0.05 0.02 1.48 1.48
## IQR 0.07 0.02 1.00 3.00
## CV 0.01 0.00 0.61 0.69
## Skewness 0.03 0.62 2.32 1.28
## SE.Skewness 0.03 0.03 0.03 0.03
## Kurtosis -1.15 0.62 8.29 1.05
## N.Valid 8327.00 8327.00 6724.00 5689.00
## Pct.Valid 100.00 100.00 80.75 68.32
El resumen de estadisticos muestra medidas de tendencia central como la media y la mediana, donde la mediana se encuentra por debajo de la media en las variables de vivienda definitiva(variables de interĆ©s para analizar), exceptuando el estrato, mostrando que hay datos sesgados a la derecha debido a la presencia de datos atĆpicos, lo anterior se confirma con los indicadores de forma como sesgo(skewness) que muestra valores positivos por encima de cero para estas variables, revalidando los valores altos o extremadamente altos, y cuya forma tiende a ser leptocĆŗrtica. TambiĆ©n se presentan medidas de dispersión como la desviación estĆ”ndar comparada con la media, donde los resultados son altos para cada una de las variables, esto indica que los valores estĆ”n alejados de la media y puede haber una alta variabilidad de los mismos.
Por aparte se observa la frecuencia absoluta de variables tipo nominal como la zona de ubicación, tipo de vivienda y barrio.
#tabla de frecuencia absoluta y relativa de zona
frecuencia_abs = table(vivienda_definitiva$zona)
frecuencia_rel = frecuencia_abs/sum(frecuencia_abs)
df = data.frame(frecuencia_abs,frecuencia_rel)
#grafico de barras de frecuencia absoluta de zona
barplot(frecuencia_abs, beside = TRUE, legend = TRUE,
col = c("#b88bad", "#f0a830", "#fde6db", "#dc6378", "#a1c5ab"),
main = "Frecuencia absoluta de la variable zona de ubicación",
xlab = "CategorĆas",
ylab = "Frecuencia absoluta")
En la grafica de frecuencia absoluta por zona, se observa que la gran mayorĆa de oferta de viviendas se encuentra ubicada en la zona sur con mas de 4000 viviendas a ofrecer, seguida por la zona norte que cuenta aproximadamente con 2000 ofertas y la zona de menos oferta es la central.
#tabla de frecuencia absoluta y relativa de tipo
frecuencia_abs_tipo = table(vivienda_definitiva$tipo)
frecuencias_rel_tipo = prop.table(frecuencia_abs_tipo)
dft = data.frame(frecuencia_abs_tipo, frecuencias_rel_tipo)
#grafico de barras de frecuencia absoluta de tipo
barplot(frecuencia_abs_tipo, beside = TRUE, legend = TRUE,
col = c("salmon", "#71dbd2"),
main = "Frecuencia absoluta de la variable tipo de vivienda",
xlab = "CategorĆas",
ylab = "Frecuencia absoluta")
En el grafico de frecuencia del tipo de vivienda se observa que la vivienda mas oferta en Cali es la categorĆa apartamento con aproximadamente 5000 ofertas.
En el caso de la variable barrios, se realizaron dos grƔficos, uno para mostrar la frecuencia absoluta de los 291 barrios, y el otro para mostrar los barrios que aportaron mƔs del 1% de datos a la base de viviendas, que en ese caso fueron 16.
#tabla de frecuencia absoluta y relativa de barrio
frecuencia_abs_barrio = table(vivienda_definitiva$barrio)
frecuencias_rel_barrio = prop.table(frecuencia_abs_barrio)
dfbarrio = data.frame(frecuencia_abs_barrio, frecuencias_rel_barrio)
#grafico de barras de frecuencia absoluta de barrio
barplot(frecuencia_abs_barrio, beside = TRUE, legend = FALSE,
col = "#ffcc7a",
main = "Frecuencia absoluta de la variable barrio",
xlab = "Barrios",
ylab = "Frecuencia absoluta",
names.arg = FALSE)
En el grafico de barras de frecuencia absoluta por barrio se observa que ocho barrios aportaron cada uno mƔs de 200 ofertas de vivienda para la venta y entre ellos uno solo llego aportar 1000 ofertas en todo Cali.
En los resultados obtenidos para responder a los objetivos, se encontró lo siguiente:
Se graficó la variable precio por rangos para observar la distribución de los datos.
# Calcular la media y la desviación estÔndar de los precios
media_precio <- mean(vivienda_limpia$preciom)
desviacion_precio <- sd(vivienda_limpia$preciom)
# lĆmites del rango de precios (por ejemplo, +/- 1 desviación estĆ”ndar)
limite_inferior <- media_precio - desviacion_precio
limite_superior <- media_precio + desviacion_precio
# Filtrar los datos dentro del rango de precios
datos_filtrados <- subset(vivienda_limpia, vivienda_limpia$preciom >= limite_inferior & vivienda_limpia$preciom <= limite_superior)
# histograma de los precios dentro del rango
hist(datos_filtrados$preciom, breaks = 20, col = "#6da67a", main = "Histograma de Precios", xlab = "Precio")
En la grÔfica se observa que la variable precio tiene una distribución asimétrica positiva de los datos, encontrando una concentración de los precios de la vivienda entre los 100 millones a los 450 millones de pesos, rango en el que se encuentra la media (434 millones) y la mediana (330 millones) de la variable precio.
Tambien se relaciono la variable precio con la variable zonas, para conocer su comportamieto.
#diagrama de cajas del precio por zonas
ggplot(vivienda_limpia, aes(x = zona, y = preciom)) +
geom_boxplot(fill = c("#b88bad", "#f0a830", "#fde6db", "#dc6378", "#a1c5ab")) +
labs(title = "Diagrama de Cajas de Precios por Zona", x = "Zona", y = "Precio") +
theme_minimal()
En el diagrama de cajas de precios por zona, se observa que en todas las zonas se tienen valores atĆpicos de los precios de las viviendas, pero las zonas que presentan mĆ”s datos atĆpicos son la zona sur y la zona norte, tambiĆ©n se evidencia que la zona oeste es la que posee una mediana de precios mas alta con respecto a las demĆ”s zonas oscilando entre los 600 millones de pesos, y presenta una mayor dispersión de los datos. La zona centro y la zona oriente poseen una concentración de datos en menos rango intercuartĆlico, pero en general en cuatro de las cinco zonas sus precios se encuentran concentrados por debajo de los 500 millones. La zona con menores precios de vivienda es la oriente con una mediana por debajo de los 250 millones de pesos.
Se relaciono el precio con respecto al estrato para conocer su comportamiento.
#grafico del precio por estrato
ggplot(vivienda_limpia, aes(x = factor(estrato), y = preciom)) +
geom_line(aes(group = estrato)) +
geom_boxplot(fill = "#f4dd51") +
labs(title = "Diagrama de Cajas de Precios por estrato ", x = "Estrato", y = "Precio") +
theme_minimal()
En este diagrama de cajas de precios por estrato se evidencio una relación directamente proporcional del precio con respecto al estrato social, donde el estrato 3 posee viviendas con valores sobre los 250 millones o menos y el estrato 6 viviendas con valores superiores a 500 millones de pesos. En todos los estratos se presentan datos atĆpicos, pero solo en el estrato 6 se observa una alta dispersión de los datos.
Se compararon los precios entre casas y apartamentos:
# grafico de cajas de tipo vs precio
ggplot(data = vivienda_limpia, aes(x = tipo, y = preciom, fill = tipo)) +
geom_boxplot() +
labs(x = "Tipo", y = "Precio", title = "Comparación de precios entre casas y apartamentos") +
theme_minimal()
En el grĆ”fico de comparación de precios entre casas y apartamentos, se observa que los precios de los apartamentos se encuentran concentrados entre los 200 millones a los 450 millones aproximadamente con una mediana que oscila entre los 260 millones, la caja de la categorĆa casas tienen una mayor dispersión de los datos que la de apartamentos, y su rango intercuartĆlico de precios se concentran entre los 270 millones a los 700 millones de pesos. Visualizando que es mas costosa una casa que un apartamento, aunque las dos categorĆas poseen bastantes datos atĆpicos.
Los resultados de la participación en la oferta de vivienda en Cali por tipo de vivienda, son:
#grafico de torta, para saber cual es el tipo de vivienda mas ofertado
pie(frecuencia_abs_tipo,
main = "Distribucion de tipos de vivienda",
labels = paste0(round((frecuencias_rel_tipo * 100), 2),"%"),
col = c("salmon", "#71dbd2"))
legend("topright", legend = names(frecuencia_abs_tipo), fill = c("salmon", "#71dbd2"))
La vivienda con mĆ”s porcentaje de oferta en Cali es la categorĆa de apartamento con un 61.31 %, mientras que la categorĆa casa solo alcanza el 38.68% de las ofertas en total.
Se grafico la variable tipo de vivienda contra las variables baƱos, habitaciones y Ć”reas, buscando inferir cuales son las caracterĆsticas mas comunes de una vivienda ofertada.
# GrƔfico de baƱos por tipo de vivienda
ggplot(data = vivienda_limpia, aes(x = tipo, y = banios, fill = tipo)) +
geom_boxplot() +
labs(x = "Tipo de vivienda", y = "Baños", title = "Comparación de # baños entre casas y apartamentos") +
theme_minimal()
En la comparación del numero de baños en casa y apartamentos, se observa en los apartamentos una concentración de datos entre los 2 a 3 baños, mientras que en la casa esta entre 3 a 5 baños, la mediana y media de baños para apartamentos estÔ en 2 baños y para las casas esta en 4 baños.
# GrƔfico de habitaciones por tipo de vivienda
ggplot(data = vivienda_limpia, aes(x = tipo, y = habitac, fill = tipo)) +
geom_boxplot() +
labs(x = "Tipo de vivienda", y = "Habitaciones", title = "Comparación de # habitaciones entre casas y apartamentos") +
theme_minimal()
En la comparación del numero de habitaciones por tipo de vivienda, los apartamentos definen su rango intercuartĆlico, media y mediana en 3 habitaciones, mientras para la casa se tiene que puede poseer entre 3 a 5 habitaciones, con una media y mediana de 4 habitaciones.
# GrƔfico de baƱos por tipo de vivienda
ggplot(data = vivienda_limpia, aes(x = tipo, y = areaconst, fill = tipo)) +
geom_boxplot() +
labs(x = "Tipo de vivienda", y = "Area Construida", title = "Comparación de area construida entre casas y apartamentos") +
theme_minimal()
El grafico de Ć”rea construida en comparación entre apartamentos y casas indica que los apartamentos tienen un rango intercuartĆlico entre 60 y 130 metros cuadrados y una mediana por el orden de los 110 metros cuadrados, estas estadĆsticas estĆ”n por debajo de las presentadas por la categorĆa casa cuyos datos se concentran en unos 150 a 350 metros cuadrados construidos, con una media por debajo de los 250 metros. En general se visualiza que un gran porcentaje de las ofertas de vivienda tipo casa poseen mĆ”s Ć”rea construida que los apartamentos.
El manejo de los datos faltantes es fundamental para garantizar un anĆ”lisis integral y de calidad de la base de datos. Sin embargo, es importante realizar un anĆ”lisis detallado de la naturaleza de los datos faltantes. ĀæExisten patrones detrĆ”s de estos datos o son simplemente aleatorios? Esta distinción puede indicar si la ausencia de datos estĆ” relacionada con algĆŗn proceso especĆfico o si es completamente aleatoria. Si bien una opción para abordar los datos faltantes es la imputación utilizando tĆ©cnicas como la imputación por media, mediana o moda para variables numĆ©ricas, y la imputación por moda para variables categóricas, en el caso de esta base de datos se optó por no analizar las variables con datos faltantes debido a la falta de conocimiento del contexto de la recopilación de los datos.
Con respecto a los resultados encontrados en el anĆ”lisis estadĆstico de las variables numĆ©ricas, es importante tener en cuenta que la media puede no ser una medida representativa de la tendencia central de los datos cuando la desviación estĆ”ndar es significativamente alta. Esto sugiere la presencia de datos atĆpicos, que pueden distorsionar el valor de la media. Por ejemplo, en la variable āprecioā, la media es de 434 millones de pesos con una desviación estĆ”ndar de 329 millones, lo que indica una amplia variabilidad en los precios. El rango de la variable es de 1.941 millones de pesos, con datos atĆpicos que van desde 58 millones hasta 1.999 millones. Dado este contexto, puede ser mĆ”s apropiado utilizar la mediana como medida de tendencia central, la cual se encuentra en torno a los 330 millones de pesos, indicando que el 50% de los datos se encuentra por debajo de este valor. AdemĆ”s, se recomienda utilizar el rango intercuartĆlico como una medida mĆ”s robusta que minimiza la influencia de los datos atĆpicos en la interpretación de los resultados.
En Cali, la oferta de vivienda estƔ distribuida en cinco zonas distintas, cada una con una mediana de precio obtenida del anƔlisis de la base de datos. Estas medianas estƔn organizadas de mayor a menor de la siguiente manera:
Cada uno de estos precios representa el 50% de los datos obtenidos para cada zona. AdemÔs, estos precios estÔn directamente relacionados con el estrato social, donde el estrato tres concentra las ofertas de vivienda mÔs económicas y el estrato seis las mÔs costosas para cada zona.
TambiĆ©n se puede inferir que la oferta de vivienda mĆ”s abundante en toda la ciudad es del tipo apartamento. Estas viviendas suelen tener como caracterĆsticas principales 3 habitaciones y 2 baƱos, con un Ć”rea de construcción que oscila alrededor de los 90 metros cuadrados construidos.
En resumen, si la empresa desea aumentar el pie de fuerza en las ventas, esta se deberĆa centran en ofrecer viviendas tipo apartamento que cumplan con las caracterĆsticas antes mencionadas, y concentrarse en las zonas sur y norte de la ciudad, puesto que cuentan con mas ofertas y su precio se encuentra en un rango accesible para estratos 4 y 5, donde se encuentra el porcentaje de personas con mas accesibilidad a los crĆ©ditos hipotecarios para viviendas de este valor.
A pesar de los datos faltantes, se logró realizar un anĆ”lisis descriptivo completo de las variables disponibles, lo cual proporcionó información valiosa sobre la distribución y las caracterĆsticas de las viviendas en Cali. Esto resalta la importancia de contar con herramientas y tĆ©cnicas adecuadas para manejar y analizar datos incompletos.
La oferta de viviendas en Cali estĆ” mayormente compuesta por apartamentos, con caracterĆsticas como tres habitaciones, dos baƱos y un Ć”rea de construcción promedio de 90 metros cuadrados. Esta información es crucial para entender el perfil del mercado y dirigir estrategias de ventas de manera efectiva.
Las zonas sur y norte de la ciudad son las que concentran la mayor cantidad de ofertas de vivienda. Esto sugiere que estas Ɣreas son clave para enfocar las estrategias de venta y marketing.
Existe una relación directa entre el estrato social y el precio de la vivienda en cada zona. Las viviendas en estratos mÔs altos tienden a ubicarse en zonas con precios mÔs elevados, mientras que las de estratos mÔs bajos se encuentran en Ôreas con precios mÔs accesibles.
El manejo de la base de datos de viviendas en Cali destacó la importancia de la calidad de los datos, la comprensión del contexto y el uso de técnicas apropiadas de anÔlisis para obtener información útil y confiable.
Con base en estos hallazgos, se proporcionan una base sólida para la toma de decisiones estratégicas por parte de la empresa en términos de comercialización y desarrollo de productos inmobiliarios.
# Seleccionar los barrios que representan mƔs del 1% de los datos
barrios_mas_1 <- names(frecuencias_rel_barrio[frecuencias_rel_barrio > 0.01])
#filtrar los datos por los barrios que representan el 1% de la base de datos
datos_barrios_mas_1 = vivienda_limpia[vivienda_limpia$barrio %in% barrios_mas_1, ]
#contar la frecuencia de cada barrio
frec_datos_barrios_mas_1 = table(datos_barrios_mas_1$barrio)
#graficos de los barrios con mas del 1% de los datos
barplot(frec_datos_barrios_mas_1,
col = "#ffcc7a",
main = "Barrios que aportan mas del 1% de los datos",
xlab = "Barrio",
ylab = "Frecuencia")
Es interesante ver que de los 291 de los barrios, 16 de ellos aportan el 52 % de la información de la base de datos.
Resumen estadistico de las caracteristicas por el tipo de casa
summary_caracteristicas = aggregate(cbind(banios, habitac, areaconst) ~ tipo, data = vivienda_limpia, FUN = summary)
print(summary_caracteristicas)
## tipo banios.Min. banios.1st Qu. banios.Median banios.Mean
## 1 apartamento 0.000000 2.000000 2.000000 2.618880
## 2 casa 0.000000 3.000000 4.000000 3.893822
## banios.3rd Qu. banios.Max. habitac.Min. habitac.1st Qu. habitac.Median
## 1 3.000000 8.000000 0.000000 3.000000 3.000000
## 2 5.000000 10.000000 0.000000 3.000000 4.000000
## habitac.Mean habitac.3rd Qu. habitac.Max. areaconst.Min. areaconst.1st Qu.
## 1 2.971798 3.000000 9.000000 35.0000 68.0000
## 2 4.609128 5.000000 10.000000 30.0000 154.0000
## areaconst.Median areaconst.Mean areaconst.3rd Qu. areaconst.Max.
## 1 90.0000 112.9424 130.0000 932.0000
## 2 240.0000 273.3430 350.0000 1745.0000
Resumen estadistico del precio de las viviendas por zonas
#analisis descriptivo de la variable precio por zona
tabla_descriptiva_zona_precio <- aggregate(preciom ~ zona, data = vivienda_limpia, FUN = function(x) c(media = mean(x), desviacion = sd(x), minimo = min(x),primer_cuartil = quantile(x, probs = 0.25), mediana = median(x), tercer_cuartil = quantile(x, probs = 0.75), maximo = max(x)))
print(tabla_descriptiva_zona_precio)
## zona preciom.media preciom.desviacion preciom.minimo
## 1 Zona Centro 309.6935 162.1479 100.0000
## 2 Zona Norte 345.7586 240.8045 65.0000
## 3 Zona Oeste 678.6844 392.5736 85.0000
## 4 Zona Oriente 228.5299 122.0641 58.0000
## 5 Zona Sur 426.5184 322.7229 75.0000
## preciom.primer_cuartil.25% preciom.mediana preciom.tercer_cuartil.75%
## 1 188.7500 297.0000 361.2500
## 2 160.0000 300.0000 430.0000
## 3 394.5000 580.0000 900.0000
## 4 145.0000 210.0000 290.0000
## 5 222.0000 320.0000 520.0000
## preciom.maximo
## 1 1100.0000
## 2 1940.0000
## 3 1999.0000
## 4 1350.0000
## 5 1900.0000
# Filtrar los datos para incluir solo casas
casa_cali = subset(vivienda_limpia, vivienda_limpia$tipo == "casa")
#grafico del precio por zona para la vivienda tipo casa
ggplot(casa_cali, aes(x = zona, y = preciom)) +
geom_boxplot(fill = "#71dbd2") +
labs(title = "Diagrama de Cajas de Precios de Casas por Zona", x = "Zona", y = "Precio") +
theme_minimal()
# Filtrar los datos para incluir solo apartamentos
apto_cali = subset(vivienda_limpia, vivienda_limpia$tipo=="apartamento")
#grafico del precio por zona para la vivienda tipo apartamento
ggplot(apto_cali, aes(x = zona, y = preciom)) +
geom_boxplot(fill = "#ff7474") +
labs(title = "Diagrama de Cajas de Precios de apartamentos por Zona", x = "Zona", y = "Precio") +
theme_minimal()