Caso: AnƔlisis del mercado inmobiliario en Cali

1. Introducción

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.

2. Objetivos

  • 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.

3. MƩtodos

3.1. Limpieza de datos

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.

3.2. AnƔlisis Descriptivo

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.

4. Resultados

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.

4.1. Base de datos

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)

4.2. Limpieza de datos

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])

4.3. Datos Faltantes

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.

4.4. AnƔlisis Descriptivo

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:

4.4.1. Precio de las viviendas en diferentes zonas de Cali

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.

4.4.2. Tipo de viviendas mƔs ofertadas en Cali.

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.

4.4.3. Caracterƭsticas mƔs relevantes de la oferta de vivienda en Cali.

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.

5. Discusión

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:

  • Zona Oeste: 580 millones de pesos
  • Zona Sur: 320 millones de pesos
  • Zona Norte: 300 millones de pesos
  • Zona Centro: 297 millones de pesos
  • Zona Oriente: 210 millones de pesos

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.

6. Conclusiones

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.

7. Anexos

Anexo 1.

# 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.

Anexo 2.

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

Anexo 3.

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

Anexo 4.

# 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()

Anexo 5.

# 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()