1. Resumen Ejecutivo

En lo corrido del presente año, el sector inmobiliario en Cali ha evidenciado una disminución significativa en las ventas de bienes raíces. Este comportamiento se ha visto influenciado por factores políticos y sociales que han generado incertidumbre en los inversionistas y compradores. Paralelamente, varias entidades bancarias de ahorro y vivienda han mantenido su apoyo a la industria de la construcción, otorgando créditos en montos relevantes tanto para proyectos comerciales como residenciales. Este panorama permite proyectar que, una vez disminuyan las tensiones actuales, la actividad económica en el sector inmobiliario tenderá a reactivarse de manera progresiva. En este contexto, se recibió una solicitud por parte de una compañía internacional interesada en adquirir dos viviendas en Cali, con el propósito de ubicar a dos de sus empleados y a sus respectivas familias.

1.1. Presentación de los datos

Se realizó la validación de las variables a estudiar del dataset, las cuales se encuentran visualizadas en la tabla 1. A partir de esta información, se llevará a cabo un proceso exhaustivo de limpieza y preparación de datos, con el objetivo de garantizar un análisis exploratorio coherente y confiable que permita establecer bases sólidas para la elaboración del resumen ejecutivo presentado en este documento.

Es importante resaltar que varios de los estudios y resultados obtenidos se incluyen como anexos, con el fin de no entorpecer la lectura del documento principal. Si bien dichos anexos son indispensables para justificar las acciones adoptadas, la información detallada se encuentra al final del presente resumen ejecutivo.

# ---- 1. Se carga el dataset en una variable para ser usada y procesada en R
data("vivienda")

# --- 2. Se preparan los datos para la tabla resumen inicial ---
# Se obtiene la estructura del dataframe
col_names <- names(vivienda)
col_types <- sapply(vivienda, class)
col_counts <- sapply(vivienda, function(x) sum(!is.na(x)))

# Se calcula la cantidad y el porcentaje de valores faltantes por columna
total_faltantes <- sapply(vivienda, function(x) sum(is.na(x)))
porcentaje_faltantes <- sapply(vivienda, function(x) round(mean(is.na(x)) * 100, 2))

# Se consolida la informacion en un dataframe
tabla_final <- data.frame(
  Nombre = c("id", "preciom", "areaconst", "parqueaderos", "banios", "habitaciones", 
               "tipo", "estrato", "piso", "barrio", "zona","longitud","latitud"),
  Naturaleza = c("Identificador", "Cuantitativa", "Cuantitativa", "Cuantitativa", 
                 "Cuantitativa", "Cuantitativa", "Cualitativa", "Cualitativa Ordinal", 
                 "Cuantitativa", "Cualitativa", "Cualitativa","cuantitativas continuas",
                 "cuantitativas continuas"),
  Justificacion = c(
    "Identificador único. No se usa para el análisis.",
    "Representa una magnitud medible.",
    "Representa una magnitud medible.",
    "Es un conteo, pero se trata como cuantitativa.",
    "Es un conteo, pero se trata como cuantitativa.",
    "Es un conteo, pero se trata como cuantitativa.",
    "Representa una categoría (ej. apartamento, casa).",
    "Es una categoría con un orden (del 1 al 6). Inapropiada para PCA.",
    "Representa una magnitud medible.",
    "Representa una categoría.",
    "Representa una categoría.",
    "Representa una categoría.",
    "Representa una categoría."
  ),
  Conteo = col_counts,
  Total_Faltantes = total_faltantes,
  Porcentaje_Faltantes = porcentaje_faltantes
)

# --- 3. Se visualiza la tabla con kable y ajuste de estilo ---
kable(
  tabla_final,
  caption = "Tabla 1. Información de columnas Dataset Vivienda",
  col.names = c("Nombre", "Naturaleza", "Justificacion","Conteo", "Total Faltantes", "Porcentaje (%)"),
  format = "html",
  align = c("l", "l", "l", "c", "c", "c"),
  row.names = FALSE
) %>%
  kable_styling(
    full_width = FALSE,
    bootstrap_options = c("striped", "hover", "responsive"),
    position = "center",
    font_size = 12,
    row_label_position = "c"
  ) %>%
  column_spec(1, width = "1in") %>%
  column_spec(2, width = "1in") %>%
  column_spec(3, width = "3in") %>%
  column_spec(4, width = "1in") %>%
  column_spec(5, width = "1in") %>%
  column_spec(6, width = "1in") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#2C3E50")
Tabla 1. Información de columnas Dataset Vivienda
Nombre Naturaleza Justificacion Conteo Total Faltantes Porcentaje (%)
id Identificador Identificador único. No se usa para el análisis. 8319 3 0.04
preciom Cuantitativa Representa una magnitud medible. 8319 3 0.04
areaconst Cuantitativa Representa una magnitud medible. 5684 2638 31.70
parqueaderos Cuantitativa Es un conteo, pero se trata como cuantitativa. 8319 3 0.04
banios Cuantitativa Es un conteo, pero se trata como cuantitativa. 8320 2 0.02
habitaciones Cuantitativa Es un conteo, pero se trata como cuantitativa. 8319 3 0.04
tipo Cualitativa Representa una categoría (ej. apartamento, casa). 6717 1605 19.29
estrato Cualitativa Ordinal Es una categoría con un orden (del 1 al 6). Inapropiada para PCA. 8319 3 0.04
piso Cuantitativa Representa una magnitud medible. 8319 3 0.04
barrio Cualitativa Representa una categoría. 8319 3 0.04
zona Cualitativa Representa una categoría. 8319 3 0.04
longitud cuantitativas continuas Representa una categoría. 8319 3 0.04
latitud cuantitativas continuas Representa una categoría. 8319 3 0.04

1.2. Limpieza del dataset

El proceso de limpieza del conjunto de datos. Se identificaron los siguientes desafíos de calidad de datos, que se abordaron con los siguientes métodos:

  • Tratamiento de valores faltantes: En el análisis preliminar se evidenció que en la mayoría de los campos hacen falta únicamente tres registros. Tal como se observa en la Tabla 1, estos registros representan un 0.04% del total. Dado que este porcentaje es insignificante y no afecta la representatividad de la muestra, se decidió proceder con su eliminación. Por otro lado, se identificó que existen dos campos con un porcentaje considerable de valores faltantes: areaconst y tipo, con 31.7% y 19.29% de datos ausentes, respectivamente. Debido a la magnitud de estas ausencias, no resulta adecuado eliminarlos, ya que se perdería información relevante para el análisis. Para abordar este caso se aplicó la metodología MICE (Multiple Imputation by Chained Equations), la cual permite imputar valores faltantes de manera iterativa a partir de la relación entre variables. Se seleccionó el valor de la tercera iteración, garantizando así una estimación más estable y precisa para dichos campos.

  • Problemas de Estandarización: Se detectaron problemas de digitación y formato, como el uso de caracteres especiales y mayúsculas inconsistentes. Para estandarizar los datos, se eliminaron los caracteres especiales, se unificó la escritura a minúsculas y se corrigieron los nombres de los barrios con un alto porcentaje de similitud para consolidar registros (ej. alférez y alferez).

Este proceso de limpieza y preparación aseguró la integridad del conjunto de datos, permitiendo que los siguientes análisis sean fiables y robustos.

# --- 1. Se limpia el dataset y el resultado se guarda en el dataset vivienda_post_limp ---
# Se elimina filas duplicadas
vivienda_post_limp <- vivienda[!duplicated(vivienda), ]

# Se Elimina filas con valores faltantes en columnas con pocos datos perdidos
vivienda_post_limp <- vivienda_post_limp %>%
  filter(!is.na(id))


# --- 2. Se inicia con el tratamiento de los datos ---

# --- 2.1. Normalización de caracteres para disminuir el error tipografico y humano ---

# Se realiza eliminación de caracteres especiales y normalización de tildes
vivienda_post_limp$barrio <- gsub("[^a-zA-ZáéíóúÁÉÍÓÚñÑ ]", "", vivienda_post_limp$barrio)
vivienda_post_limp$barrio <- chartr("áéíóúÁÉÍÓÚ", "aeiouAEIOU", vivienda_post_limp$barrio)

# Se transformar la columna piso de tipo caracter a tipo númerica
vivienda_post_limp <- vivienda_post_limp %>%
  # Se hace uso de la función as.numeric()
  mutate(piso = as.numeric(piso))

# Se Identificar las columnas de tipo carácter y se convierte a minúsculas todos los caracteres
chr_cols <- sapply(vivienda_post_limp, is.character)
vivienda_post_limp[chr_cols] <- lapply(vivienda_post_limp[chr_cols], tolower)


# ===============================================================================================================
# Posterior de tener todos los campos con un estandar de digitación. Se decidé que se van a unificar barrios
# por similitud se van a tratar los barrios que tengan menos de 5 valores y se reemplazara el barrio con el texto
# más parecido, por ejemplo si tenemos alfrez sera reemplazado por alferez

# --- 2.2. Unificación de barrios con pocos registros ---

# Se calcula el conteo de cada barrio
barrio_counts <- vivienda_post_limp %>%
  group_by(barrio) %>%
  summarise(conteo = n())

# Se divide los barrios en dos grupos: con conteo bajo y con conteo alto
low_count_barrios <- barrio_counts %>%
  filter(conteo < 5) %>%
  pull(barrio)

high_count_barrios <- barrio_counts %>%
  filter(conteo >= 5) %>%
  pull(barrio)

# Se registran los cambios en el siguiente dataframe
cambios_registrados <- data.frame(
  barrio_original = character(),
  barrio_unificado = character(),
  distancia = numeric()
)

# Se inicia con la iteración de los barrios con conteo bajo y se busca el más similar
# Iterar sobre los barrios con conteo bajo y buscar el más similar
for (low_barrio in low_count_barrios) {
  # Calcular la distancia de Levenshtein a todos los barrios de conteo alto
  distancias <- stringdist(low_barrio, high_count_barrios, method = "lv")
  
  # Encontrar el índice del barrio con la distancia mínima
  min_dist_index <- which.min(distancias)
  
  # Obtener el nombre del barrio más similar
  similar_barrio <- high_count_barrios[min_dist_index]
  
  # Registrar el cambio
  cambios_registrados <- cambios_registrados %>%
    add_row(barrio_original = low_barrio,
            barrio_unificado = similar_barrio,
            distancia = min(distancias))
  
  # Unificar el nombre del barrio en el dataframe principal
  vivienda_post_limp$barrio[vivienda_post_limp$barrio == low_barrio] <- similar_barrio
}

# --- 3. Se realiza la imputación de datos faltantes con la metodología MICE ---

# Se debe tener en cuenta que las variables de tipo 'object' en python, son 'character' en R.
# Sin embargo, mice requiere que las variables sean factores.
vivienda_post_limp$zona <- as.factor(vivienda_post_limp$zona)
vivienda_post_limp$tipo <- as.factor(vivienda_post_limp$tipo)
vivienda_post_limp$barrio <- as.factor(vivienda_post_limp$barrio)

# Se ejecuta el algoritmo MICE (genera 5 imputaciones por defecto)
# Se usa un seed para asegurar la reproducibilidad de los resultados
set.seed(123)
imputacion_mice <- mice(vivienda_post_limp, m = 5, method = 'cart', printFlag = FALSE)
Warning: Number of logged events: 50
# Se completa el dataframe con la tercera imputación
vivienda_mice <- complete(imputacion_mice, 3)

# --- 4. Se preparan los datos para la tabla resumen procesado 1 ---
# Se obtiene la estructura del dataframe
col_names <- names(vivienda_mice)
col_types <- sapply(vivienda_mice, class)
col_counts <- sapply(vivienda_mice, function(x) sum(!is.na(x)))

# Se calcula la cantidad y el porcentaje de valores faltantes por columna
total_faltantes <- sapply(vivienda_mice, function(x) sum(is.na(x)))
porcentaje_faltantes <- sapply(vivienda_mice, function(x) round(mean(is.na(x)) * 100, 2))

# Se consolida la informacion en un dataframe
tabla_final <- data.frame(
  Nombre = c("id", "preciom", "areaconst", "parqueaderos", "banios", "habitaciones", 
               "tipo", "estrato", "piso", "barrio", "zona","longitud","latitud"),
  Naturaleza = c("Identificador", "Cuantitativa", "Cuantitativa", "Cuantitativa", 
                 "Cuantitativa", "Cuantitativa", "Cualitativa", "Cualitativa Ordinal", 
                 "Cuantitativa", "Cualitativa", "Cualitativa","cuantitativas continuas",
                 "cuantitativas continuas"),
  Justificacion = c(
    "Identificador único. No se usa para el análisis.",
    "Representa una magnitud medible.",
    "Representa una magnitud medible.",
    "Es un conteo, pero se trata como cuantitativa.",
    "Es un conteo, pero se trata como cuantitativa.",
    "Es un conteo, pero se trata como cuantitativa.",
    "Representa una categoría (ej. apartamento, casa).",
    "Es una categoría con un orden (del 1 al 6). Inapropiada para PCA.",
    "Representa una magnitud medible.",
    "Representa una categoría.",
    "Representa una categoría.",
    "Representa una categoría.",
    "Representa una categoría."
  ),
  Conteo = col_counts,
  Total_Faltantes = total_faltantes,
  Porcentaje_Faltantes = porcentaje_faltantes
)

# --- 5. Se visualiza la tabla con kable y ajuste de estilo ---
kable(
  tabla_final,
  caption = "Tabla 2. Información de columnas Dataset Vivienda después de la limpieza",
  col.names = c("Nombre", "Naturaleza", "Justificacion","Conteo", "Total Faltantes", "Porcentaje (%)"),
  format = "html",
  align = c("l", "l", "l", "c", "c", "c"),
  row.names = FALSE
) %>%
  kable_styling(
    full_width = FALSE,
    bootstrap_options = c("striped", "hover", "responsive"),
    position = "center",
    font_size = 12,
    row_label_position = "c"
  ) %>%
  column_spec(1, width = "1in") %>%
  column_spec(2, width = "1in") %>%
  column_spec(3, width = "3in") %>%
  column_spec(4, width = "1in") %>%
  column_spec(5, width = "1in") %>%
  column_spec(6, width = "1in") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#2C3E50")
Tabla 2. Información de columnas Dataset Vivienda después de la limpieza
Nombre Naturaleza Justificacion Conteo Total Faltantes Porcentaje (%)
id Identificador Identificador único. No se usa para el análisis. 8319 0 0
preciom Cuantitativa Representa una magnitud medible. 8319 0 0
areaconst Cuantitativa Representa una magnitud medible. 8319 0 0
parqueaderos Cuantitativa Es un conteo, pero se trata como cuantitativa. 8319 0 0
banios Cuantitativa Es un conteo, pero se trata como cuantitativa. 8319 0 0
habitaciones Cuantitativa Es un conteo, pero se trata como cuantitativa. 8319 0 0
tipo Cualitativa Representa una categoría (ej. apartamento, casa). 8319 0 0
estrato Cualitativa Ordinal Es una categoría con un orden (del 1 al 6). Inapropiada para PCA. 8319 0 0
piso Cuantitativa Representa una magnitud medible. 8319 0 0
barrio Cualitativa Representa una categoría. 8319 0 0
zona Cualitativa Representa una categoría. 8319 0 0
longitud cuantitativas continuas Representa una categoría. 8319 0 0
latitud cuantitativas continuas Representa una categoría. 8319 0 0

2. Análisis Exploratorio de Datos (EDA)

Posterior al proceso de normalización, imputación y eliminación de datos faltantes en el dataset, se procedió a la ejecución del Análisis Exploratorio de Datos (EDA).

El objetivo de esta etapa es identificar patrones, relaciones y posibles anomalías en las variables, lo que permitirá contar con una visión más clara de la estructura del conjunto de datos. Este análisis constituye la base para la formulación de conclusiones sólidas y la generación de insumos confiables para la toma de decisiones estratégicas en el mercado inmobiliario.

vivienda_mice$preciom=log(vivienda_mice$preciom)
vivienda_mice$areaconst=log(vivienda_mice$areaconst)
GGally::ggpairs(vivienda_mice[,4:8], title=" Grafica 1. Correlaciones de campos en el dataset ")

  • Correlación del Precio con Otras Variables.

Se observa una correlación fuerte y positiva entre el precio (preciom) y las siguientes variables:

Área construida (areaconst): Con un coeficiente de correlación de 0.807, esta es la relación más fuerte. Esto es lógico, ya que a mayor tamaño de una propiedad, mayor es su valor.

Número de baños (banios), estrato: Con un coeficiente de 0.721, existe una correlación muy sólida. Un mayor número de baños y un estrato alto se percibe como una característica de lujo o confort, lo que aumenta el precio.

Número de parqueaderos (parqueaderos): El coeficiente de 0.654 indica una correlación moderadamente fuerte. Tener espacio para estacionar vehículos es una amenidad valiosa que influye positivamente en el precio.

  • Correlación entre Variables Predictoras.

Es importante notar que las variables predictoras también están fuertemente correlacionadas entre sí. Por ejemplo:

areaconst y precio tienen una correlación de 0.807.

areaconst y banios tienen una correlación de 0.736.

precio y banios tienen una correlación de 0.721.

Estas altas correlaciones entre las variables predictoras se conocen como multicolinealidad. La multicolinealidad puede dificultar la interpretación de los coeficientes en un modelo de regresión lineal múltiple, ya que el efecto de una variable puede ser difícil de separar del de otra. Por ejemplo, si una propiedad tiene un área grande, es muy probable que también tenga más baños y parqueaderos, lo que hace que sus efectos individuales en el precio sean menos claros en el modelo.

En conclusión, el precio de la vivienda está principalmente determinado por su tamaño, las amenidades asociadas (baños y parqueaderos) y el estrato. Las altas correlaciones entre estas variables sugieren que el valor de una propiedad se puede percibir como un factor de “lujo y tamaño” en el mercado inmobiliario.

3. Informe ejecutivo desarrollo zona Norte

Con el dataset previamente depurado, se procede a realizar la verificación detallada de cada uno de los puntos mencionados en el Resumen Ejecutivo. Este proceso tiene como finalidad validar que las conclusiones y recomendaciones planteadas cuenten con un sustento técnico sólido, apoyado en los análisis efectuados. De esta manera, se asegura la coherencia entre los hallazgos del Análisis Exploratorio de Datos (EDA) y las propuestas presentadas en el documento principal.

# -------------------------------------------------------------------------
# Solicitud de Compra 1 (Zona Norte)
# -------------------------------------------------------------------------

# Paso 1: Filtrar la base de datos para casas en la Zona Norte
df_norte <- vivienda_mice %>%
  filter(tipo == "casa", zona == "zona norte")

# Presentar los primeros 3 registros
print("Primeros 3 registros de casas en la zona norte:")
[1] "Primeros 3 registros de casas en la zona norte:"
print(head(df_norte, 3))
    id       zona piso estrato  preciom areaconst parqueaderos banios
1 1209 zona norte    2       5 5.768321  5.010635            2      4
2 1592 zona norte    2       5 6.659294  5.940171            2      3
3 4057 zona norte    2       6 6.620073  6.098074            2      7
  habitaciones tipo barrio  longitud latitud
1            6 casa  acopi -76.51341 3.47968
2            3 casa  acopi -76.51674 3.48721
3            6 casa  acopi -76.52950 3.38527
# Preparar los datos para el mapa
# Convierte el dataframe a un objeto sf (simple features) para georreferenciar
sf_norte <- st_as_sf(df_norte, coords = c("longitud", "latitud"), crs = 4326)

# Crear un mapa interactivo con leaflet
mapa_norte <- leaflet(data = sf_norte) %>%
  addTiles() %>%
  addMarkers(
    popup = ~paste0(
      "<b>Tipo:</b> ", tipo, "<br>",
      "<b>Barrio:</b> ", barrio, "<br>",
      "<b>Precio:</b> $", preciom * 1000000, "<br>",
      "<b>Área:</b> ", areaconst, " m²"
    )
  )

# Guardar el mapa como un archivo HTML (opcional)
htmlwidgets::saveWidget(mapa_norte, "mapa_zona_norte.html")

Los puntos de la “zona norte” se extienden más allá de los límites esperados, probablemente se debe a errores de digitación o etiquetado en el dataset. A pesar de que el filtro inicial se aplicó correctamente para la variable zona (que en teoría solo debería incluir registros de la zona norte), la columna barrio o la geolocalización (latitud, longitud) podría tener información errónea, lo que resulta en puntos que se ubican en otras zonas.

Implicaciones de los Errores de Georreferenciación

  • Sesgo en el Modelo: Si el modelo de regresión se entrenó solo con datos de la “zona norte”, la inclusión de estos puntos erróneos podría sesgar los resultados. Por ejemplo, si los precios de las casas en las otras zonas (ej. sur, oriente) son sistemáticamente más altos o más bajos, el modelo podría aprender una relación precio-ubicación incorrecta.

Resultados de Predicción Inexactos: Las predicciones para la primera solicitud de compra podrían ser menos precisas, ya que el modelo se basó en una muestra que no era puramente de la zona norte.

Decisiones Comerciales Erróneas: Al sugerir ofertas potenciales a los clientes, la empresa podría estar recomendando propiedades que, aunque etiquetadas como “norte”, no se encuentran en la zona de interés del cliente. Esto podría llevar a una mala experiencia para el comprador.

# Paso 2: Análisis Exploratorio de Datos (EDA)
# Variables de interés
vars_interes <- df_norte %>%
  select(preciom, areaconst, estrato, banios, habitaciones, parqueaderos)

# Matriz de correlación
cor_matrix <- cor(vars_interes)
print("Matriz de correlación:")
[1] "Matriz de correlación:"
print(round(cor_matrix, 2))
             preciom areaconst estrato banios habitaciones parqueaderos
preciom         1.00      0.81    0.70   0.59         0.35         0.51
areaconst       0.81      1.00    0.55   0.51         0.38         0.43
estrato         0.70      0.55    1.00   0.41         0.11         0.36
banios          0.59      0.51    0.41   1.00         0.58         0.41
habitaciones    0.35      0.38    0.11   0.58         1.00         0.25
parqueaderos    0.51      0.43    0.36   0.41         0.25         1.00
# Gráfico de correlación interactivo con plotly
plot_corr <- corrplot(cor_matrix, method = "color", addCoef.col = "black", tl.col = "black")

print(plot_corr)
$corr
               preciom areaconst   estrato    banios habitaciones parqueaderos
preciom      1.0000000 0.8088396 0.7045695 0.5869642    0.3496520    0.5096692
areaconst    0.8088396 1.0000000 0.5465287 0.5149420    0.3822592    0.4296504
estrato      0.7045695 0.5465287 1.0000000 0.4083039    0.1073141    0.3649908
banios       0.5869642 0.5149420 0.4083039 1.0000000    0.5755314    0.4115063
habitaciones 0.3496520 0.3822592 0.1073141 0.5755314    1.0000000    0.2491588
parqueaderos 0.5096692 0.4296504 0.3649908 0.4115063    0.2491588    1.0000000

$corrPos
          xName        yName x y      corr
1       preciom      preciom 1 6 1.0000000
2       preciom    areaconst 1 5 0.8088396
3       preciom      estrato 1 4 0.7045695
4       preciom       banios 1 3 0.5869642
5       preciom habitaciones 1 2 0.3496520
6       preciom parqueaderos 1 1 0.5096692
7     areaconst      preciom 2 6 0.8088396
8     areaconst    areaconst 2 5 1.0000000
9     areaconst      estrato 2 4 0.5465287
10    areaconst       banios 2 3 0.5149420
11    areaconst habitaciones 2 2 0.3822592
12    areaconst parqueaderos 2 1 0.4296504
13      estrato      preciom 3 6 0.7045695
14      estrato    areaconst 3 5 0.5465287
15      estrato      estrato 3 4 1.0000000
16      estrato       banios 3 3 0.4083039
17      estrato habitaciones 3 2 0.1073141
18      estrato parqueaderos 3 1 0.3649908
19       banios      preciom 4 6 0.5869642
20       banios    areaconst 4 5 0.5149420
21       banios      estrato 4 4 0.4083039
22       banios       banios 4 3 1.0000000
23       banios habitaciones 4 2 0.5755314
24       banios parqueaderos 4 1 0.4115063
25 habitaciones      preciom 5 6 0.3496520
26 habitaciones    areaconst 5 5 0.3822592
27 habitaciones      estrato 5 4 0.1073141
28 habitaciones       banios 5 3 0.5755314
29 habitaciones habitaciones 5 2 1.0000000
30 habitaciones parqueaderos 5 1 0.2491588
31 parqueaderos      preciom 6 6 0.5096692
32 parqueaderos    areaconst 6 5 0.4296504
33 parqueaderos      estrato 6 4 0.3649908
34 parqueaderos       banios 6 3 0.4115063
35 parqueaderos habitaciones 6 2 0.2491588
36 parqueaderos parqueaderos 6 1 1.0000000

$arg
$arg$type
[1] "full"
# Gráfico de dispersión interactivo (Precio vs. Área Construida)
plot_scatter <- plot_ly(
  data = df_norte,
  x = ~areaconst,
  y = ~preciom,
  type = "scatter",
  mode = "markers",
  text = ~paste0("Área: ", areaconst, "m²", "<br>Precio: ", preciom, "M"),
  hoverinfo = "text"
) %>%
  layout(
    title = "Precio vs. Área Construida (Zona Norte)",
    xaxis = list(title = "Área Construida ($m^2$)"),
    yaxis = list(title = "Precio (Millones COP)")
  )

print(plot_scatter)

De la grafica de correlaciones (Modelo para la Zona Norte)

Variables y Coeficientes: Los resultados indican que todas las variables del modelo (areaconst, estrato, banios, habitaciones y parqueaderos) son estadísticamente significativas para predecir el precio. Esto se puede ver porque sus valores P (columna Pr(>|t|)) son muy cercanos a cero (representados como 2e-16), lo cual es mucho menor que el umbral de 0.05.

Área Construida (areaconst): El coeficiente de 0.81 es el más alto, lo que significa que el área construida es la variable que más influye en el precio. Por cada unidad adicional de área, el precio de la casa aumenta en 1.15 millones de pesos, de acuerdo a la grafica plotly que el precio está en millones y el área en unidades normalizadas de m2.

# Paso 3: Estimar el modelo de regresión lineal múltiple
modelo_norte <- lm(preciom ~ areaconst + estrato + banios + habitaciones + parqueaderos, data = df_norte)
print("Resumen del modelo de regresión para la Zona Norte:")
[1] "Resumen del modelo de regresión para la Zona Norte:"
print(summary(modelo_norte))

Call:
lm(formula = preciom ~ areaconst + estrato + banios + habitaciones + 
    parqueaderos, data = df_norte)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.78271 -0.17675 -0.01861  0.15585  1.07145 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2.336046   0.092608  25.225  < 2e-16 ***
areaconst    0.463692   0.021637  21.430  < 2e-16 ***
estrato      0.190777   0.012697  15.025  < 2e-16 ***
banios       0.051602   0.009103   5.669 2.09e-08 ***
habitaciones 0.004371   0.006872   0.636    0.525    
parqueaderos 0.049962   0.008924   5.599 3.07e-08 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.265 on 716 degrees of freedom
Multiple R-squared:  0.7834,    Adjusted R-squared:  0.7819 
F-statistic: 517.8 on 5 and 716 DF,  p-value: < 2.2e-16
# Paso 4: Validación de supuestos del modelo
# Gráficos de diagnóstico para validar supuestos
par(mfrow = c(2, 2))
plot(modelo_norte)

par(mfrow = c(1, 1))

# Paso 5: Predecir el precio para la Solicitud 1
# Características de la solicitud 1
solicitud1 <- data.frame(
  areaconst = 1.8, # Asumimos que la imagen proporcionada usa un valor normalizado
  estrato = 4,
  parqueaderos = 2,
  banios = 3,
  habitaciones = 4
)

# Predecir el precio
prediccion_norte <- predict(modelo_norte, newdata = solicitud1)
print(paste("El precio predicho para la solicitud 1 es:", round(prediccion_norte, 2), "millones de pesos"))
[1] "El precio predicho para la solicitud 1 es: 4.21 millones de pesos"
# Paso 6: Sugerir ofertas potenciales
# Filtrar ofertas que cumplan con el presupuesto
presupuesto_norte <- 350
ofertas_potenciales_norte <- df_norte %>%
  filter(preciom <= presupuesto_norte / 1000000) %>% # Normalizar el presupuesto
  select(preciom, areaconst, banios, habitaciones) %>%
  head(5) # Seleccionar las primeras 5 ofertas

print("Ofertas potenciales para la solicitud 1 (Presupuesto $350 millones):")
[1] "Ofertas potenciales para la solicitud 1 (Presupuesto $350 millones):"
print(ofertas_potenciales_norte)
[1] preciom      areaconst    banios       habitaciones
<0 rows> (or 0-length row.names)
# Crear un mapa con las ofertas potenciales
sf_potenciales_norte <- df_norte %>%
  filter(preciom <= presupuesto_norte / 1000000) %>%
  head(5) %>%
  st_as_sf(coords = c("longitud", "latitud"), crs = 4326)
Warning in min(cc[[1]], na.rm = TRUE): no non-missing arguments to min;
returning Inf
Warning in min(cc[[2]], na.rm = TRUE): no non-missing arguments to min;
returning Inf
Warning in max(cc[[1]], na.rm = TRUE): no non-missing arguments to max;
returning -Inf
Warning in max(cc[[2]], na.rm = TRUE): no non-missing arguments to max;
returning -Inf
mapa_potenciales_norte <- leaflet(data = sf_potenciales_norte) %>%
  addTiles() %>%
  addCircleMarkers(
    color = "blue",
    radius = 5,
    popup = ~paste0(
      "<b>Tipo:</b> ", tipo, "<br>",
      "<b>Barrio:</b> ", barrio, "<br>",
      "<b>Precio:</b> $", preciom * 1000000, "<br>",
      "<b>Área:</b> ", areaconst, " m²"
    )
  )

htmlwidgets::saveWidget(mapa_potenciales_norte, "mapa_ofertas_norte.html")

3. Informe ejecutivo desarrollo zona Sur

Con el dataset previamente depurado, se procede a realizar la verificación detallada de cada uno de los puntos mencionados en el Resumen Ejecutivo. Este proceso tiene como finalidad validar que las conclusiones y recomendaciones planteadas cuenten con un sustento técnico sólido, apoyado en los análisis efectuados. De esta manera, se asegura la coherencia entre los hallazgos del Análisis Exploratorio de Datos (EDA) y las propuestas presentadas en el documento principal.

# -------------------------------------------------------------------------
# Solicitud de Compra 2 (Zona Sur)
# -------------------------------------------------------------------------

# Repetir los pasos 1 a 6 para la zona sur
df_sur <- vivienda_mice %>%
  filter(tipo == "casa", zona == "zona sur")

print("Primeros 3 registros de casas en la zona sur:")
[1] "Primeros 3 registros de casas en la zona sur:"
print(head(df_sur, 3))
    id     zona piso estrato  preciom areaconst parqueaderos banios
1 5992 zona sur    2       4 5.991465  5.634790            3      5
2 5157 zona sur    2       3 6.214608  5.869297            1      2
3 5501 zona sur    2       3 5.164786  4.624973            1      2
  habitaciones tipo  barrio longitud latitud
1            3 casa el lido  -76.540   3.435
2            4 casa alameda  -76.535   3.437
3            4 casa alameda  -76.537   3.435
# Paso 2: Análisis Exploratorio de Datos (EDA)
# Variables de interés
vars_interes <- df_sur %>%
  select(preciom, areaconst, estrato, banios, habitaciones, parqueaderos)

# Matriz de correlación
cor_matrix <- cor(vars_interes)
print("Matriz de correlación:")
[1] "Matriz de correlación:"
print(round(cor_matrix, 2))
             preciom areaconst estrato banios habitaciones parqueaderos
preciom         1.00      0.74    0.70   0.62         0.18         0.68
areaconst       0.74      1.00    0.38   0.56         0.38         0.53
estrato         0.70      0.38    1.00   0.41        -0.13         0.50
banios          0.62      0.56    0.41   1.00         0.49         0.46
habitaciones    0.18      0.38   -0.13   0.49         1.00         0.13
parqueaderos    0.68      0.53    0.50   0.46         0.13         1.00
# Gráfico de correlación interactivo con plotly
plot_corr <- corrplot(cor_matrix, method = "color", addCoef.col = "black", tl.col = "black")

print(plot_corr)
$corr
               preciom areaconst    estrato    banios habitaciones parqueaderos
preciom      1.0000000 0.7389099  0.7029473 0.6207693    0.1781872    0.6778166
areaconst    0.7389099 1.0000000  0.3751482 0.5604822    0.3802726    0.5322119
estrato      0.7029473 0.3751482  1.0000000 0.4149569   -0.1304175    0.4984704
banios       0.6207693 0.5604822  0.4149569 1.0000000    0.4937376    0.4648849
habitaciones 0.1781872 0.3802726 -0.1304175 0.4937376    1.0000000    0.1297777
parqueaderos 0.6778166 0.5322119  0.4984704 0.4648849    0.1297777    1.0000000

$corrPos
          xName        yName x y       corr
1       preciom      preciom 1 6  1.0000000
2       preciom    areaconst 1 5  0.7389099
3       preciom      estrato 1 4  0.7029473
4       preciom       banios 1 3  0.6207693
5       preciom habitaciones 1 2  0.1781872
6       preciom parqueaderos 1 1  0.6778166
7     areaconst      preciom 2 6  0.7389099
8     areaconst    areaconst 2 5  1.0000000
9     areaconst      estrato 2 4  0.3751482
10    areaconst       banios 2 3  0.5604822
11    areaconst habitaciones 2 2  0.3802726
12    areaconst parqueaderos 2 1  0.5322119
13      estrato      preciom 3 6  0.7029473
14      estrato    areaconst 3 5  0.3751482
15      estrato      estrato 3 4  1.0000000
16      estrato       banios 3 3  0.4149569
17      estrato habitaciones 3 2 -0.1304175
18      estrato parqueaderos 3 1  0.4984704
19       banios      preciom 4 6  0.6207693
20       banios    areaconst 4 5  0.5604822
21       banios      estrato 4 4  0.4149569
22       banios       banios 4 3  1.0000000
23       banios habitaciones 4 2  0.4937376
24       banios parqueaderos 4 1  0.4648849
25 habitaciones      preciom 5 6  0.1781872
26 habitaciones    areaconst 5 5  0.3802726
27 habitaciones      estrato 5 4 -0.1304175
28 habitaciones       banios 5 3  0.4937376
29 habitaciones habitaciones 5 2  1.0000000
30 habitaciones parqueaderos 5 1  0.1297777
31 parqueaderos      preciom 6 6  0.6778166
32 parqueaderos    areaconst 6 5  0.5322119
33 parqueaderos      estrato 6 4  0.4984704
34 parqueaderos       banios 6 3  0.4648849
35 parqueaderos habitaciones 6 2  0.1297777
36 parqueaderos parqueaderos 6 1  1.0000000

$arg
$arg$type
[1] "full"
# Gráfico de dispersión interactivo (Precio vs. Área Construida)
plot_scatter <- plot_ly(
  data = df_sur,
  x = ~areaconst,
  y = ~preciom,
  type = "scatter",
  mode = "markers",
  text = ~paste0("Área: ", areaconst, "m²", "<br>Precio: ", preciom, "M"),
  hoverinfo = "text"
) %>%
  layout(
    title = "Precio vs. Área Construida (Zona Norte)",
    xaxis = list(title = "Área Construida ($m^2$)"),
    yaxis = list(title = "Precio (Millones COP)")
  )

print(plot_scatter)

# Paso 3: Estimar el modelo de regresión lineal para la zona sur
modelo_sur <- lm(preciom ~ areaconst + estrato + banios + habitaciones + parqueaderos, data = df_sur)
print("Resumen del modelo de regresión para la Zona Sur:")
[1] "Resumen del modelo de regresión para la Zona Sur:"
print(summary(modelo_sur))

Call:
lm(formula = preciom ~ areaconst + estrato + banios + habitaciones + 
    parqueaderos, data = df_sur)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.02277 -0.15770 -0.02537  0.14596  1.42785 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)   2.523409   0.066980  37.674   <2e-16 ***
areaconst     0.417276   0.013734  30.382   <2e-16 ***
estrato       0.221714   0.007851  28.241   <2e-16 ***
banios        0.057857   0.005637  10.264   <2e-16 ***
habitaciones -0.011501   0.004787  -2.403   0.0164 *  
parqueaderos  0.075295   0.004961  15.177   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.2514 on 1933 degrees of freedom
Multiple R-squared:  0.7993,    Adjusted R-squared:  0.7987 
F-statistic:  1539 on 5 and 1933 DF,  p-value: < 2.2e-16
# Paso 4: Validación de supuestos (similar al anterior)
plot(modelo_sur)

# Paso 5: Predecir el precio para la Solicitud 2
# Características de la solicitud 2
solicitud2 <- data.frame(
  areaconst = 3.5, # Asumimos que la imagen proporcionada usa un valor normalizado
  estrato = 6,
  parqueaderos = 3,
  banios = 5,
  habitaciones = 6
)

# Predecir el precio
prediccion_sur <- predict(modelo_sur, newdata = solicitud2)
print(paste("El precio predicho para la solicitud 2 es:", round(prediccion_sur, 2), "millones de pesos"))
[1] "El precio predicho para la solicitud 2 es: 5.76 millones de pesos"
# Paso 6: Sugerir ofertas potenciales
# Filtrar ofertas que cumplan con el presupuesto
presupuesto_sur <- 850
ofertas_potenciales_sur <- df_sur %>%
  filter(preciom <= presupuesto_sur / 1000000) %>%
  select(preciom, areaconst, banios, habitaciones) %>%
  head(5)

print("Ofertas potenciales para la solicitud 2 (Presupuesto $850 millones):")
[1] "Ofertas potenciales para la solicitud 2 (Presupuesto $850 millones):"
print(ofertas_potenciales_sur)
[1] preciom      areaconst    banios       habitaciones
<0 rows> (or 0-length row.names)
# Crear un mapa con las ofertas potenciales para la zona sur
sf_potenciales_sur <- df_sur %>%
  filter(preciom <= presupuesto_sur / 1000000) %>%
  head(5) %>%
  st_as_sf(coords = c("longitud", "latitud"), crs = 4326)
Warning in min(cc[[1]], na.rm = TRUE): no non-missing arguments to min;
returning Inf
Warning in min(cc[[2]], na.rm = TRUE): no non-missing arguments to min;
returning Inf
Warning in max(cc[[1]], na.rm = TRUE): no non-missing arguments to max;
returning -Inf
Warning in max(cc[[2]], na.rm = TRUE): no non-missing arguments to max;
returning -Inf
mapa_potenciales_sur <- leaflet(data = sf_potenciales_sur) %>%
  addTiles() %>%
  addCircleMarkers(
    color = "red",
    radius = 5,
    popup = ~paste0(
      "<b>Tipo:</b> ", tipo, "<br>",
      "<b>Barrio:</b> ", barrio, "<br>",
      "<b>Precio:</b> $", preciom * 1000000, "<br>",
      "<b>Área:</b> ", areaconst, " m²"
    )
  )

htmlwidgets::saveWidget(mapa_potenciales_sur, "mapa_ofertas_sur.html")

ANEXOS

Anexo 1. Resultados iniciales de la función summary

Como primer anexo, se presentan los resultados obtenidos a partir de la función summary. En este análisis preliminar se identificó que varios campos contienen valores faltantes, lo cual requiere un tratamiento adecuado para evitar sesgos en el análisis posterior.

Adicionalmente, se evidenció la ausencia de estandarización en el campo Barrio, ya que el mismo sector aparece representado con categorías distintas debido a errores de digitación, faltas de ortografía y contracciones de palabras. Esta inconsistencia genera dispersión en los datos y dificulta la correcta agrupación y análisis de la información, por lo que será necesario aplicar un proceso de normalización y depuración.

#apartamentos=subset(vivienda, tipo=="Apartamento")
#vivienda$zona = as.factor(vivienda$zona)
summarytools::freq(vivienda)
Frequencies  
vivienda$zona  
Type: Character  

                     Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
------------------ ------ --------- -------------- --------- --------------
       Zona Centro    124     1.491          1.491     1.490          1.490
        Zona Norte   1920    23.080         24.570    23.071         24.561
        Zona Oeste   1198    14.401         38.971    14.396         38.957
      Zona Oriente    351     4.219         43.190     4.218         43.175
          Zona Sur   4726    56.810        100.000    56.789         99.964
              <NA>      3                              0.036        100.000
             Total   8322   100.000        100.000   100.000        100.000

vivienda$piso  
Type: Character  

              Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
----------- ------ --------- -------------- --------- --------------
         01    860     15.13          15.13     10.33          10.33
         02   1450     25.51          40.64     17.42          27.76
         03   1097     19.30          59.94     13.18          40.94
         04    607     10.68          70.62      7.29          48.23
         05    567      9.98          80.59      6.81          55.05
         06    245      4.31          84.90      2.94          57.99
         07    204      3.59          88.49      2.45          60.44
         08    211      3.71          92.21      2.54          62.98
         09    146      2.57          94.77      1.75          64.73
         10    130      2.29          97.06      1.56          66.29
         11     84      1.48          98.54      1.01          67.30
         12     83      1.46         100.00      1.00          68.30
       <NA>   2638                              31.70         100.00
      Total   8322    100.00         100.00    100.00         100.00

vivienda$estrato  
Type: Numeric  

              Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
----------- ------ --------- -------------- --------- --------------
          3   1453    17.466         17.466    17.460         17.460
          4   2129    25.592         43.058    25.583         43.043
          5   2750    33.057         76.115    33.045         76.087
          6   1987    23.885        100.000    23.876         99.964
       <NA>      3                              0.036        100.000
      Total   8322   100.000        100.000   100.000        100.000

vivienda$parqueaderos  
Type: Numeric  

              Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
----------- ------ --------- -------------- --------- --------------
          1   3155    46.970         46.970    37.912         37.912
          2   2475    36.847         83.817    29.740         67.652
          3    520     7.742         91.559     6.248         73.901
          4    384     5.717         97.276     4.614         78.515
          5     68     1.012         98.288     0.817         79.332
          6     68     1.012         99.300     0.817         80.149
          7     18     0.268         99.568     0.216         80.365
          8     17     0.253         99.821     0.204         80.570
          9      4     0.060         99.881     0.048         80.618
         10      8     0.119        100.000     0.096         80.714
       <NA>   1605                             19.286        100.000
      Total   8322   100.000        100.000   100.000        100.000

vivienda$banios  
Type: Numeric  

              Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
----------- ------ --------- -------------- --------- --------------
          0     45     0.541          0.541     0.541          0.541
          1    496     5.962          6.503     5.960          6.501
          2   2946    35.413         41.916    35.400         41.901
          3   1993    23.957         65.873    23.949         65.850
          4   1456    17.502         83.375    17.496         83.345
          5    890    10.698         94.074    10.695         94.040
          6    314     3.774         97.848     3.773         97.813
          7    107     1.286         99.135     1.286         99.099
          8     48     0.577         99.712     0.577         99.676
          9     15     0.180         99.892     0.180         99.856
         10      9     0.108        100.000     0.108         99.964
       <NA>      3                              0.036        100.000
      Total   8322   100.000        100.000   100.000        100.000

vivienda$habitaciones  
Type: Numeric  

              Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
----------- ------ --------- -------------- --------- --------------
          0     66     0.793          0.793     0.793          0.793
          1     59     0.709          1.503     0.709          1.502
          2    926    11.131         12.634    11.127         12.629
          3   4097    49.249         61.882    49.231         61.860
          4   1729    20.784         82.666    20.776         82.636
          5    679     8.162         90.828     8.159         90.795
          6    318     3.823         94.651     3.821         94.617
          7    173     2.080         96.730     2.079         96.696
          8    138     1.659         98.389     1.658         98.354
          9     83     0.998         99.387     0.997         99.351
         10     51     0.613        100.000     0.613         99.964
       <NA>      3                              0.036        100.000
      Total   8322   100.000        100.000   100.000        100.000

vivienda$tipo  
Type: Character  

                    Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
----------------- ------ --------- -------------- --------- --------------
      Apartamento   5100    61.305         61.305    61.283         61.283
             Casa   3219    38.695        100.000    38.681         99.964
             <NA>      3                              0.036        100.000
            Total   8322   100.000        100.000   100.000        100.000

vivienda$barrio  
Type: Character  

                                      Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
----------------------------------- ------ --------- -------------- --------- --------------
                        20 de julio      3     0.036          0.036     0.036          0.036
                         3 de julio      1     0.012          0.048     0.012          0.048
                              acopi    158     1.899          1.947     1.899          1.947
                        agua blanca      1     0.012          1.959     0.012          1.959
                         aguablanca      2     0.024          1.983     0.024          1.983
                          aguacatal    109     1.310          3.294     1.310          3.292
                            alameda     16     0.192          3.486     0.192          3.485
                    alameda del rio      1     0.012          3.498     0.012          3.497
                    alameda del río      2     0.024          3.522     0.024          3.521
                             alamos     14     0.168          3.690     0.168          3.689
                           alborada      1     0.012          3.702     0.012          3.701
                          alcazares      2     0.024          3.726     0.024          3.725
                      alférez real      5     0.060          3.787     0.060          3.785
                       alferez real      2     0.024          3.811     0.024          3.809
                      alfonso lopez      1     0.012          3.823     0.012          3.821
                      alfonso lópez     21     0.252          4.075     0.252          4.074
                    alfonso lópez i      1     0.012          4.087     0.012          4.086
                        alto jordán      1     0.012          4.099     0.012          4.098
                 altos de guadalupe      4     0.048          4.147     0.048          4.146
                     altos de menga      3     0.036          4.183     0.036          4.182
                     altos de santa      1     0.012          4.195     0.012          4.194
                     antonio nariño      2     0.024          4.219     0.024          4.218
                           aranjuez     15     0.180          4.400     0.180          4.398
                           arboleda      5     0.060          4.460     0.060          4.458
      arboleda campestre candelaria      1     0.012          4.472     0.012          4.470
                          arboledas     38     0.457          4.928     0.457          4.927
                  atanasio girardot      9     0.108          5.037     0.108          5.035
                      autopista sur      1     0.012          5.049     0.012          5.047
                     bajo aguacatal      1     0.012          5.061     0.012          5.059
                       barranquilla      6     0.072          5.133     0.072          5.131
                  barrio 7de agosto      1     0.012          5.145     0.012          5.143
                 barrio el recuerdo      1     0.012          5.157     0.012          5.155
                 barrio eucarístico      1     0.012          5.169     0.012          5.167
                      barrio obrero      1     0.012          5.181     0.012          5.179
                 barrio tranquilo y      1     0.012          5.193     0.012          5.191
                        base aérea      2     0.024          5.217     0.024          5.215
                         belalcazar      3     0.036          5.253     0.036          5.251
                         Belalcazar      1     0.012          5.265     0.012          5.263
                  belisario caicedo      2     0.024          5.289     0.024          5.287
                        bella suiza     18     0.216          5.505     0.216          5.503
                   bella suiza alta      4     0.048          5.554     0.048          5.552
                         bellavista     43     0.517          6.070     0.517          6.068
                   benjamín herrera      8     0.096          6.167     0.096          6.164
                             berlin      1     0.012          6.179     0.012          6.176
                bloques del limonar      1     0.012          6.191     0.012          6.188
                          bochalema     33     0.397          6.587     0.397          6.585
                        bolivariano      1     0.012          6.599     0.012          6.597
                bosques de alboleda      1     0.012          6.611     0.012          6.609
                bosques del limonar     21     0.252          6.864     0.252          6.861
                             boyacá      1     0.012          6.876     0.012          6.873
                            bretaña     16     0.192          7.068     0.192          7.066
                brisas de guadalupe      1     0.012          7.080     0.012          7.078
                      brisas de los     81     0.974          8.054     0.973          8.051
                      Brisas De Los      1     0.012          8.066     0.012          8.063
                 brisas del guabito      1     0.012          8.078     0.012          8.075
                 brisas del limonar      1     0.012          8.090     0.012          8.087
                       Bueno Madrid      1     0.012          8.102     0.012          8.099
                       buenos aires      7     0.084          8.186     0.084          8.183
                             caldas      1     0.012          8.198     0.012          8.195
                               Cali     37     0.445          8.643     0.445          8.640
                         cali bella      1     0.012          8.655     0.012          8.652
                         cali canto      1     0.012          8.667     0.012          8.664
                          calibella      1     0.012          8.679     0.012          8.676
                          calicanto      8     0.096          8.775     0.096          8.772
                     calicanto viii      1     0.012          8.787     0.012          8.784
                             calima      6     0.072          8.859     0.072          8.856
                      calimio norte      5     0.060          8.919     0.060          8.916
                            calipso     11     0.132          9.052     0.132          9.048
                           cambulos      3     0.036          9.088     0.036          9.084
                        camino real     35     0.421          9.508     0.421          9.505
                        Camino Real      1     0.012          9.520     0.012          9.517
                          campestre      1     0.012          9.532     0.012          9.529
                        cañasgordas      7     0.084          9.617     0.084          9.613
                       cañaveralejo     12     0.144          9.761     0.144          9.757
                        cañaverales     21     0.252         10.013     0.252         10.010
            cañaverales los samanes      1     0.012         10.025     0.012         10.022
                              caney     88     1.058         11.083     1.057         11.079
                     caney especial      5     0.060         11.143     0.060         11.139
                              capri     56     0.673         11.816     0.673         11.812
                           cascajal      1     0.012         11.828     0.012         11.824
                        cataya real      1     0.012         11.840     0.012         11.836
                             ceibas      1     0.012         11.852     0.012         11.848
                           centelsa      1     0.012         11.864     0.012         11.860
                         centenario     15     0.180         12.045     0.180         12.040
                         Centenario      1     0.012         12.057     0.012         12.052
                             centro      4     0.048         12.105     0.048         12.100
                    cerro cristales     22     0.264         12.369     0.264         12.365
                cerros de guadalupe      1     0.012         12.381     0.012         12.377
                         champagnat     14     0.168         12.550     0.168         12.545
                          chapinero      7     0.084         12.634     0.084         12.629
                        chiminangos     17     0.204         12.838     0.204         12.833
                        Chiminangos      1     0.012         12.850     0.012         12.845
                chiminangos 1 etapa      1     0.012         12.862     0.012         12.857
                chiminangos 2 etapa      2     0.024         12.886     0.024         12.882
                         chipichape     30     0.361         13.247     0.360         13.242
                        ciudad 2000     95     1.142         14.389     1.142         14.384
                        Ciudad 2000      1     0.012         14.401     0.012         14.396
                  ciudad antejardin      1     0.012         14.413     0.012         14.408
                   ciudad bochalema     48     0.577         14.990     0.577         14.984
                       ciudad capri     13     0.156         15.146     0.156         15.141
                     ciudad cordoba     20     0.240         15.386     0.240         15.381
                     ciudad córdoba     15     0.180         15.567     0.180         15.561
           ciudad córdoba reservado      1     0.012         15.579     0.012         15.573
                     ciudad country      1     0.012         15.591     0.012         15.585
                   ciudad del campo      1     0.012         15.603     0.012         15.597
                      ciudad jardin     22     0.264         15.867     0.264         15.862
                      ciudad jardín    516     6.203         22.070     6.200         22.062
                      Ciudad Jardín      2     0.024         22.094     0.024         22.086
                ciudad jardin pance      1     0.012         22.106     0.012         22.098
                  ciudad los alamos      1     0.012         22.118     0.012         22.110
                  ciudad los álamos     25     0.301         22.419     0.300         22.410
                   ciudad meléndez      1     0.012         22.431     0.012         22.422
                    ciudad melendez      1     0.012         22.443     0.012         22.435
                      ciudad modelo      7     0.084         22.527     0.084         22.519
                    ciudad pacifica      2     0.024         22.551     0.024         22.543
                    Ciudad Pacifica      1     0.012         22.563     0.012         22.555
                        ciudad real      3     0.036         22.599     0.036         22.591
                     ciudad talanga      1     0.012         22.611     0.012         22.603
               ciudad universitaria      1     0.012         22.623     0.012         22.615
                 ciudadela comfandi     17     0.204         22.827     0.204         22.819
                  ciudadela del río      1     0.012         22.839     0.012         22.831
                 ciudadela melendez      1     0.012         22.851     0.012         22.843
               ciudadela paso ancho      1     0.012         22.863     0.012         22.855
                ciudadela pasoancho     21     0.252         23.116     0.252         23.107
                   colinas de menga      3     0.036         23.152     0.036         23.143
                 colinas del bosque      1     0.012         23.164     0.012         23.155
                    colinas del sur      8     0.096         23.260     0.096         23.252
                              colon      1     0.012         23.272     0.012         23.264
                         colseguros     44     0.529         23.801     0.529         23.792
                   colseguros andes      4     0.048         23.849     0.048         23.840
                   Colseguros Andes      1     0.012         23.861     0.012         23.852
                         comfenalco      1     0.012         23.873     0.012         23.864
                          compartir      1     0.012         23.885     0.012         23.876
                 conjunto gibraltar      1     0.012         23.897     0.012         23.888
                          cristales     83     0.998         24.895     0.997         24.886
                    cristobal colón     14     0.168         25.063     0.168         25.054
                    cristóbal colón      2     0.024         25.087     0.024         25.078
                    cuarto de legua     44     0.529         25.616     0.529         25.607
                      departamental     29     0.349         25.965     0.348         25.955
                ed benjamin herrera      1     0.012         25.977     0.012         25.967
                          el bosque     49     0.589         26.566     0.589         26.556
                          El Bosque      1     0.012         26.578     0.012         26.568
                           el caney    208     2.500         29.078     2.499         29.068
                           El Caney      1     0.012         29.090     0.012         29.080
                        el castillo      6     0.072         29.162     0.072         29.152
                           el cedro      8     0.096         29.258     0.096         29.248
                        el diamante      2     0.024         29.282     0.024         29.272
                          el dorado      6     0.072         29.354     0.072         29.344
                    el gran limonar      8     0.096         29.451     0.096         29.440
                          el guabal     19     0.228         29.679     0.228         29.668
                         el guabito      1     0.012         29.691     0.012         29.680
                         el ingenio    202     2.428         32.119     2.427         32.108
                         El Ingenio      1     0.012         32.131     0.012         32.120
                       el ingenio 3      1     0.012         32.143     0.012         32.132
                       el ingenio i     19     0.228         32.372     0.228         32.360
                      el ingenio ii     21     0.252         32.624     0.252         32.612
                     el ingenio iii     20     0.240         32.865     0.240         32.853
                          el jardín     15     0.180         33.045     0.180         33.033
                          el jordán      1     0.012         33.057     0.012         33.045
                            el lido     59     0.709         33.766     0.709         33.754
                         el limonar    135     1.623         35.389     1.622         35.376
                        el nacional      1     0.012         35.401     0.012         35.388
                         el paraíso      3     0.036         35.437     0.036         35.424
                           el peñon     60     0.721         36.158     0.721         36.145
                           el prado      2     0.024         36.182     0.024         36.169
                         el refugio    120     1.442         37.625     1.442         37.611
                           el rodeo      1     0.012         37.637     0.012         37.623
                            el sena      1     0.012         37.649     0.012         37.635
                         el trébol      5     0.060         37.709     0.060         37.695
                         el troncal     19     0.228         37.937     0.228         37.924
                         el vallado      1     0.012         37.949     0.012         37.936
                        eucarístico      2     0.024         37.973     0.024         37.960
                    evaristo garcía      2     0.024         37.997     0.024         37.984
               farrallones de pance      1     0.012         38.009     0.012         37.996
                    fenalco kennedy      1     0.012         38.021     0.012         38.008
                            fepicol      1     0.012         38.033     0.012         38.020
                              flora      1     0.012         38.045     0.012         38.032
                   flora industrial     16     0.192         38.238     0.192         38.224
                           floralia      6     0.072         38.310     0.072         38.296
                       fonaviemcali      1     0.012         38.322     0.012         38.308
           francisco eladio ramirez      1     0.012         38.334     0.012         38.320
                      fuentes de la      1     0.012         38.346     0.012         38.332
                             gaitan      1     0.012         38.358     0.012         38.344
                       gran limonar     24     0.288         38.646     0.288         38.633
                            granada     15     0.180         38.827     0.180         38.813
                          guadalupe     21     0.252         39.079     0.252         39.065
                     guadalupe alto      1     0.012         39.091     0.012         39.077
                          guaduales      2     0.024         39.115     0.024         39.101
                          guayaquil     16     0.192         39.308     0.192         39.293
              hacienda alferez real      1     0.012         39.320     0.012         39.305
                            ingenio      1     0.012         39.332     0.012         39.317
                          ingenio i      1     0.012         39.344     0.012         39.329
                         ingenio ii      1     0.012         39.356     0.012         39.342
                            jamundi      4     0.048         39.404     0.048         39.390
                  jamundi alfaguara      1     0.012         39.416     0.012         39.402
               jorge eliecer gaitán      1     0.012         39.428     0.012         39.414
                       jorge isaacs      1     0.012         39.440     0.012         39.426
              jose manuel marroquín      1     0.012         39.452     0.012         39.438
                          juanamb√∫     53     0.637         40.089     0.637         40.075
                           juanambu      2     0.024         40.113     0.024         40.099
                              junin     18     0.216         40.329     0.216         40.315
                              junín      6     0.072         40.401     0.072         40.387
                        la alborada      5     0.060         40.462     0.060         40.447
                         la alianza      5     0.060         40.522     0.060         40.507
                        la arboleda     18     0.216         40.738     0.216         40.723
                            la base     15     0.180         40.918     0.180         40.904
                        la buitrera      3     0.036         40.954     0.036         40.940
                         la campiña     13     0.156         41.111     0.156         41.096
                         la cascada      7     0.084         41.195     0.084         41.180
                          la ceibas      1     0.012         41.207     0.012         41.192
                       la esmeralda      1     0.012         41.219     0.012         41.204
                           la flora    366     4.400         45.618     4.398         45.602
                           La Flora      2     0.024         45.643     0.024         45.626
                        la floresta     18     0.216         45.859     0.216         45.842
                       la fortaleza      4     0.048         45.907     0.048         45.890
                   la gran colombia      1     0.012         45.919     0.012         45.902
                        la hacienda    164     1.971         47.890     1.971         47.873
                        La Hacienda      2     0.024         47.914     0.024         47.897
                   la independencia     12     0.144         48.059     0.144         48.041
                        la libertad      2     0.024         48.083     0.024         48.065
                           la luisa      1     0.012         48.095     0.012         48.077
                          la merced     26     0.313         48.407     0.312         48.390
                          la morada      1     0.012         48.419     0.012         48.402
                      la nueva base      8     0.096         48.515     0.096         48.498
                           la playa      1     0.012         48.527     0.012         48.510
                      la portada al      1     0.012         48.539     0.012         48.522
                       la primavera      1     0.012         48.552     0.012         48.534
                         la reforma      1     0.012         48.564     0.012         48.546
                          la rivera     11     0.132         48.696     0.132         48.678
                        la rivera i      2     0.024         48.720     0.024         48.702
                       la rivera ii      2     0.024         48.744     0.024         48.726
                        la riverita      1     0.012         48.756     0.012         48.738
                         la riviera      1     0.012         48.768     0.012         48.750
                           la selva     11     0.132         48.900     0.132         48.882
                       la villa del      1     0.012         48.912     0.012         48.894
                            laflora      1     0.012         48.924     0.012         48.907
                lares de comfenalco      1     0.012         48.936     0.012         48.919
                        las acacias     12     0.144         49.080     0.144         49.063
                      las américas      3     0.036         49.116     0.036         49.099
                       las camelias      1     0.012         49.129     0.012         49.111
                         las ceibas     23     0.276         49.405     0.276         49.387
                       las delicias      5     0.060         49.465     0.060         49.447
                        las granjas     10     0.120         49.585     0.120         49.567
                     las quintas de      1     0.012         49.597     0.012         49.579
                          las vegas      1     0.012         49.609     0.012         49.591
                       las vegas de      1     0.012         49.621     0.012         49.603
                       libertadores      3     0.036         49.657     0.036         49.640
                         los alamos      1     0.012         49.669     0.012         49.652
                      los alcazares     17     0.204         49.874     0.204         49.856
                      los alcázares      5     0.060         49.934     0.060         49.916
                          los andes     21     0.252         50.186     0.252         50.168
                       los cambulos     25     0.301         50.487     0.300         50.469
                       los cámbulos      6     0.072         50.559     0.072         50.541
                      los cristales    154     1.851         52.410     1.851         52.391
                 los cristales club      1     0.012         52.422     0.012         52.403
                     los farallones      4     0.048         52.470     0.048         52.451
                      los guaduales     25     0.301         52.771     0.300         52.752
                      Los Guaduales      1     0.012         52.783     0.012         52.764
                     los guayacanes      3     0.036         52.819     0.036         52.800
                        los jockeys      1     0.012         52.831     0.012         52.812
                   los libertadores      4     0.048         52.879     0.048         52.860
           los parques barranquilla      6     0.072         52.951     0.072         52.932
                         los robles      1     0.012         52.963     0.012         52.944
                            lourdes      2     0.024         52.987     0.024         52.968
                           mamellan      1     0.012         52.999     0.012         52.980
                         manzanares      5     0.060         53.059     0.060         53.040
                      mariano ramos      1     0.012         53.071     0.012         53.052
                      marroquín iii      1     0.012         53.083     0.012         53.064
                  mayapan las vegas     46     0.553         53.636     0.553         53.617
                          meléndez     23     0.276         53.913     0.276         53.893
                           melendez     52     0.625         54.538     0.625         54.518
                              menga     23     0.276         54.814     0.276         54.795
            metropolitano del norte     21     0.252         55.067     0.252         55.047
              miradol del aguacatal      1     0.012         55.079     0.012         55.059
                         miraflores     25     0.301         55.379     0.300         55.359
                         Miraflores      1     0.012         55.391     0.012         55.371
               morichal de comfandi      3     0.036         55.427     0.036         55.407
                        multicentro     27     0.325         55.752     0.324         55.732
                          municipal      3     0.036         55.788     0.036         55.768
                            napoles      2     0.024         55.812     0.024         55.792
                            nápoles     29     0.349         56.161     0.348         56.140
                          normandia      5     0.060         56.221     0.060         56.200
                          normandía    154     1.851         58.072     1.851         58.051
               normandía west point      1     0.012         58.084     0.012         58.063
                              norte      9     0.108         58.192     0.108         58.171
                     norte la flora      1     0.012         58.204     0.012         58.183
                         nueva base      1     0.012         58.216     0.012         58.195
                     nueva floresta     15     0.180         58.396     0.180         58.375
                   nueva tequendama     73     0.878         59.274     0.877         59.253
                  oasis de comfandi      6     0.072         59.346     0.072         59.325
                 oasis de pasoancho      1     0.012         59.358     0.012         59.337
                          occidente     11     0.132         59.490     0.132         59.469
                             pacara     19     0.228         59.719     0.228         59.697
                             pacará      4     0.048         59.767     0.048         59.745
                 palmas del ingenio      1     0.012         59.779     0.012         59.757
                        pampa linda     26     0.313         60.091     0.312         60.070
                         pampalinda     12     0.144         60.236     0.144         60.214
                       panamericano      9     0.108         60.344     0.108         60.322
                              pance    409     4.916         65.260     4.915         65.237
                              Pance      3     0.036         65.296     0.036         65.273
                parcelaciones pance     61     0.733         66.030     0.733         66.006
              parque residencial el      1     0.012         66.042     0.012         66.018
                       paseo de los      2     0.024         66.066     0.024         66.042
                  paso del comercio      6     0.072         66.138     0.072         66.114
                          pasoancho      6     0.072         66.210     0.072         66.186
                  poblado campestre      2     0.024         66.234     0.024         66.210
                              ponce      1     0.012         66.246     0.012         66.222
                            popular      6     0.072         66.318     0.072         66.294
                portada de comfandi      2     0.024         66.342     0.024         66.318
               portales de comfandi      1     0.012         66.354     0.012         66.330
                           porvenir      3     0.036         66.390     0.036         66.366
                  prados de oriente      6     0.072         66.462     0.072         66.438
                 prados del limonar     20     0.240         66.703     0.240         66.679
                 Prados Del Limonar      1     0.012         66.715     0.012         66.691
                   prados del norte    126     1.515         68.229     1.514         68.205
                   Prados Del Norte      1     0.012         68.241     0.012         68.217
                     prados del sur      2     0.024         68.265     0.024         68.241
                          primavera      2     0.024         68.289     0.024         68.265
                    primero de mayo     37     0.445         68.734     0.445         68.709
                   primitivo crespo      3     0.036         68.770     0.036         68.745
                puente del comercio      6     0.072         68.842     0.072         68.818
                       puente palma      1     0.012         68.854     0.012         68.830
                     quintas de don     72     0.865         69.720     0.865         69.695
                     Quintas De Don      1     0.012         69.732     0.012         69.707
                 quintas de salomia      4     0.048         69.780     0.048         69.755
                 rafael uribe uribe      1     0.012         69.792     0.012         69.767
                            refugio      2     0.024         69.816     0.024         69.791
               rep√∫blica de israel      1     0.012         69.828     0.012         69.803
                       rincon de la      1     0.012         69.840     0.012         69.815
                  rincón de salomia      1     0.012         69.852     0.012         69.827
                  riveras del valle      1     0.012         69.864     0.012         69.839
                      rozo la torre      1     0.012         69.876     0.012         69.851
                   saavedra galindo      4     0.048         69.924     0.048         69.899
                            salomia     40     0.481         70.405     0.481         70.380
                            samanes      1     0.012         70.417     0.012         70.392
               samanes de guadalupe      1     0.012         70.429     0.012         70.404
                             sameco      1     0.012         70.441     0.012         70.416
                        san antonio     24     0.288         70.730     0.288         70.704
                          san bosco      8     0.096         70.826     0.096         70.800
                         san carlos      4     0.048         70.874     0.048         70.848
                       san cayetano      9     0.108         70.982     0.108         70.957
                       san fernando     54     0.649         71.631     0.649         71.605
                       San Fernando      1     0.012         71.643     0.012         71.617
                 san fernando nuevo     10     0.120         71.763     0.120         71.738
                 san fernando viejo     18     0.216         71.980     0.216         71.954
                        san joaquin      4     0.048         72.028     0.048         72.002
                        san joaquín     16     0.192         72.220     0.192         72.194
                     san juan bosco      7     0.084         72.304     0.084         72.278
                          san judas      1     0.012         72.316     0.012         72.290
                    san judas tadeo      2     0.024         72.340     0.024         72.314
                           san luis      2     0.024         72.364     0.024         72.338
                           san luís      1     0.012         72.376     0.012         72.350
                        san nicolas      1     0.012         72.389     0.012         72.362
                        san nicolás      1     0.012         72.401     0.012         72.374
                          san pedro      3     0.036         72.437     0.036         72.410
                        san vicente     48     0.577         73.014     0.577         72.987
                              santa      1     0.012         73.026     0.012         72.999
                        santa anita     48     0.577         73.603     0.577         73.576
                        Santa Anita      2     0.024         73.627     0.024         73.600
                    santa anita sur      1     0.012         73.639     0.012         73.612
                      santa bárbara      3     0.036         73.675     0.036         73.648
                        santa elena     10     0.120         73.795     0.120         73.768
                           santa fe      8     0.096         73.891     0.096         73.864
                    santa helena de      1     0.012         73.903     0.012         73.876
                       santa isabel     63     0.757         74.660     0.757         74.634
                       Santa Isabel      1     0.012         74.672     0.012         74.646
                       santa monica     51     0.613         75.285     0.613         75.258
                       Santa Monica      1     0.012         75.298     0.012         75.270
                       santa mónica      3     0.036         75.334     0.036         75.306
                  santa mónica alta      1     0.012         75.346     0.012         75.318
                 santa monica norte      2     0.024         75.370     0.024         75.342
               santa monica popular      2     0.024         75.394     0.024         75.366
               santa mónica popular      7     0.084         75.478     0.084         75.451
           santa monica residencial      5     0.060         75.538     0.060         75.511
           santa mónica residencial     39     0.469         76.007     0.469         75.979
                         santa rita     45     0.541         76.548     0.541         76.520
                         santa rosa      1     0.012         76.560     0.012         76.532
                     santa teresita    262     3.149         79.709     3.148         79.680
                     Santa Teresita      1     0.012         79.721     0.012         79.692
                            Santafe      1     0.012         79.733     0.012         79.704
                          santander      1     0.012         79.745     0.012         79.716
                      santo domingo      5     0.060         79.805     0.060         79.776
                      Santo Domingo      1     0.012         79.817     0.012         79.789
                   sector aguacatal      1     0.012         79.829     0.012         79.801
      sector cañaveralejo guadalupe      2     0.024         79.853     0.024         79.825
                          seminario     32     0.385         80.238     0.385         80.209
               sierras de normandía      1     0.012         80.250     0.012         80.221
                    siete de agosto      8     0.096         80.346     0.096         80.317
                      simón bolivar      1     0.012         80.358     0.012         80.329
                  tejares cristales      4     0.048         80.406     0.048         80.377
                     tejares de san     14     0.168         80.575     0.168         80.546
                           templete      4     0.048         80.623     0.048         80.594
                         tequendama     44     0.529         81.152     0.529         81.122
                         tequendema      1     0.012         81.164     0.012         81.134
                    terrón colorado      1     0.012         81.176     0.012         81.146
                 torres de comfandi     57     0.685         81.861     0.685         81.831
                     unicentro cali      1     0.012         81.873     0.012         81.843
                  unión de vivienda      3     0.036         81.909     0.036         81.879
          urbanización barranquilla      4     0.048         81.957     0.048         81.927
                urbanización boyacá      1     0.012         81.969     0.012         81.939
            urbanización colseguros      3     0.036         82.005     0.036         81.975
              urbanizacion el saman      1     0.012         82.017     0.012         81.988
             urbanizacion gratamira      1     0.012         82.029     0.012         82.000
              urbanización la flora     83     0.998         83.027     0.997         82.997
             urbanización la merced      4     0.048         83.075     0.048         83.045
              urbanización la nueva      4     0.048         83.123     0.048         83.093
          urbanización las cascadas      1     0.012         83.135     0.012         83.105
                  urbanizacion lili      2     0.024         83.159     0.024         83.129
         urbanización nueva granada      3     0.036         83.195     0.036         83.165
                urbanización pacara      1     0.012         83.207     0.012         83.177
              urbanización río lili      5     0.060         83.267     0.060         83.237
           urbanización san joaquin      4     0.048         83.315     0.048         83.285
            urbanización tequendama      7     0.084         83.399     0.084         83.369
                      valle de lili      1     0.012         83.411     0.012         83.381
                     valle del lili   1008    12.117         95.528    12.112         95.494
                     Valle Del Lili      1     0.012         95.540     0.012         95.506
                       valle grande      1     0.012         95.552     0.012         95.518
                          versalles     71     0.853         96.406     0.853         96.371
                     villa colombia      6     0.072         96.478     0.072         96.443
                  villa de veracruz      6     0.072         96.550     0.072         96.515
                     villa del lago     10     0.120         96.670     0.120         96.635
                   villa del parque      1     0.012         96.682     0.012         96.647
                    villa del prado     51     0.613         97.295     0.613         97.260
                    Villa Del Prado      1     0.012         97.307     0.012         97.272
                      villa del sol     25     0.301         97.608     0.300         97.573
                      villa del sur      5     0.060         97.668     0.060         97.633
                 villas de veracruz      8     0.096         97.764     0.096         97.729
                 Villas De Veracruz      1     0.012         97.776     0.012         97.741
                             vipasa     32     0.385         98.161     0.385         98.125
                        zona centro      1     0.012         98.173     0.012         98.137
                         zona norte     32     0.385         98.558     0.385         98.522
                     zona norte los      1     0.012         98.570     0.012         98.534
                         zona oeste     26     0.313         98.882     0.312         98.846
                       zona oriente     18     0.216         99.098     0.216         99.063
                   zona residencial      1     0.012         99.110     0.012         99.075
                           zona sur     74     0.890        100.000     0.889         99.964
                               <NA>      3                              0.036        100.000
                              Total   8322   100.000        100.000   100.000        100.000