Introducción

Este estudio tiene como finalidad implementar diversos métodos de análisis multivariado para comprender en profundidad las dinámicas y características clave del mercado de vivienda en la ciudad de Cali. Con este propósito, se analiza un conjunto de datos que recopila información detallada sobre las propiedades residenciales de la zona y sus precios de venta.

La investigación se estructura en cuatro secciones fundamentales: inicialmente, se detalla el procedimiento de limpieza, imputación de datos ausentes y exploración estadística inicial de la base de datos. Posteriormente, se abordan los resultados del análisis de componentes principales (PCA). En tercer lugar, se expone el análisis de conglomerados para la segmentación de viviendas y, finalmente, se desarrolla el análisis de correspondencias para estudiar las asociaciones entre variables cualitativas.

Objetivos

Objetivo general:

Evaluar las condiciones y patrones estructurales del sector inmobiliario de Cali mediante el uso de herramientas estadísticas multivariadas, específicamente a través de técnicas de reducción de dimensionalidad (componentes principales), agrupación de datos (conglomerados) y estudios de asociación categórica (correspondencias simples y múltiples).

Métodos

En este apartado se describen los procedimientos técnicos seguidos para asegurar la consistencia, calidad y confiabilidad de los datos. El proceso inicia con una fase de preprocesamiento dedicada a la identificación y tratamiento de registros vacíos. Posteriormente, se procede con la aplicación secuencial de los métodos de componentes principales, agrupamiento estadístico y correspondencias categóricas.

Preparación de la base de datos

Como punto de partida, se realiza la importación del conjunto de datos original, el cual cuenta con un total de 8,322 observaciones distribuidas en 13 variables.

data("vivienda")
vivienda

A continuación, se presentan las estadísticas descriptivas básicas para caracterizar el comportamiento inicial de las variables del estudio:

library(psych)
resu <- describe(vivienda)
format(round(resu, 2), nsmall = 2)

Se detecta la presencia de valores ausentes (NA) en múltiples variables dentro del conjunto de datos. En particular, las variables relativas al piso del inmueble y a la cantidad de parqueaderos exhiben la mayor proporción de datos faltantes, superando en ambos casos los 2,300 registros vacíos.

Para resolver esta limitación, el protocolo de limpieza contempla la recodificación de las variables cualitativas correspondientes al barrio y tipo de vivienda. Tras esto, se procederá con la imputación de los datos ausentes para asegurar la consistencia metodológica de los posteriores análisis multivariados (PCA, clúster y correspondencias).

Depuración de registros por identificador (id)

Debido a que la variable id funciona como la clave primaria para diferenciar cada propiedad, es indispensable descartar cualquier registro que presente un valor nulo en este campo. Asimismo, se verifica que no existan observaciones duplicadas para un mismo identificador.

# Eliminación de los valores NA del id
vivienda <- vivienda[!is.na(vivienda$id), ]

duplicados <- duplicated(vivienda$id) # genera una vista con las columnas duplicadas
vivienda_con_duplicados <- vivienda[duplicados, ] # genera una tabla con los duplicados
head(vivienda_con_duplicados) # Revisar el subconjunto de datos
vivienda <- subset(vivienda, !duplicados)

Dado que el valor bruto del inmueble está directamente influenciado por su tamaño, realizar comparaciones directas de precios puede inducir a sesgos. En su lugar, se opta por calcular el precio por metro cuadrado, una métrica estándar en el sector inmobiliario. Para facilitar la lectura y escala de las estimaciones en los gráficos y modelos, este valor se reescala multiplicándose por mil.

# crear la variable de precio por metro cuadrado
vivienda$p_m2 <- vivienda$preciom / vivienda$areaconst * 1000
vivienda$zona <- gsub("Zona ", "", vivienda$zona)

Estimación de datos omitidos (Imputación)

Se evalúa la magnitud de los valores vacíos en cada una de las columnas de la tabla de datos:

# Ver columnas con NA
na_values <- colSums(is.na(vivienda))  %>% data.frame()
na_values

Dado que las variables de piso y de parqueaderos concentran la totalidad de los datos nulos, se diseñarán estrategias específicas de imputación para cada una.

Tratamiento de datos faltantes en la variable piso

Aunque existen métodos sencillos como la sustitución por la media o la mediana, estos pueden alterar la variabilidad natural de los datos, especialmente al tratarse de una variable discreta. Para mitigar esto, se aplica una técnica de imputación múltiple utilizando el algoritmo PMM (Predictive Mean Matching) mediante el paquete mice. Este enfoque estima las observaciones faltantes relacionando la variable de interés con otras características de la propiedad y seleccionando un valor real de un caso similar.

A fin de optimizar el algoritmo, las variables cualitativas (zona, barrio y tipo de vivienda) se transforman a formato numérico (factores) y se ejecuta el modelo con un límite de 50 iteraciones.

vivienda$piso <- as.numeric(vivienda$piso)

ggplot(vivienda, aes(x = .data[["piso"]])) +
  geom_bar() +
  labs(title = "Distribución de 'piso' antes de la imputación")

na_piso <- sum(is.na(vivienda$piso))
mensaje <- paste("Hay", na_piso, "valores en blanco")
print(mensaje)
## [1] "Hay 2635 valores en blanco"
######3.1 convertir variables categóricas a numéricas ######
# Convertir la variable "tipo" a numérica

vivienda$tipo_num <- as.numeric(factor(vivienda$tipo))
vivienda$barrio_num <- as.numeric(factor(vivienda$barrio))
vivienda$zona_num <- as.numeric(factor(vivienda$zona))

######3.2 Imputar la variable piso con el paquete mice ######

# Crear un conjunto de datos con las variables relevantes para la imputación
data_impute <- vivienda[, c("estrato", "preciom", "areaconst", "banios", "habitaciones", "tipo_num", "barrio_num", "zona_num", "piso")]

# Realizar la imputación utilizando el método MICE (Multiple Imputation by Chained Equations)
imputed_data <- mice(data_impute, method = "pmm", m = 5, maxit = 50, printFlag = FALSE)

# Combinar los conjuntos de datos imputados en un único conjunto de datos
imputed_data_complete <- complete(imputed_data)

# Agregar la columna imputada "piso_imp" a la tabla vivienda
# vivienda$piso_imp <- imputed_data_complete$piso
vivienda$piso <- imputed_data_complete$piso

El gráfico siguiente muestra la distribución de la variable después del proceso de imputación, donde se observa que no se generaron alteraciones o sesgos drásticos en el comportamiento de los datos originales.

ggplot(vivienda, aes_string(x = "piso")) +
  geom_bar() +
  labs(title = "Distribución de 'piso' después de la imputación")

Tratamiento de datos faltantes en la variable de parqueaderos

Al examinar la distribución de los estacionamientos en función de los estratos socioeconómicos, se nota que no hay registros iniciales con valor cero (propiedades sin parqueadero). Esto sugiere que la ausencia de datos en esta columna responde a viviendas que no disponen de este espacio. Como los valores omitidos se concentran principalmente en los estratos 3 y 4, se asume esta premisa y se reemplazan los valores nulos por cero.

ggplot(data = vivienda, aes_string(x = "parqueaderos")) +
  geom_bar(stat = "count", position = "identity") +
  labs(x = "Parqueaderos", y = "Frecuencia", title = "Distribución de parqueaderos") +
  theme_minimal()

tabla_na <- table(factor(vivienda$estrato, levels = unique(vivienda$estrato)), ifelse(is.na(vivienda$parqueaderos), "Con NA", "Sin NA")) %>% data.frame()

# Convertir la tabla a formato Markdown
tabla_markdown <- knitr::kable(tabla_na, format = "markdown")

# Mostrar la tabla en Markdown
tabla_markdown
Var1 Var2 Freq
3 Con NA 769
4 Con NA 488
5 Con NA 228
6 Con NA 117
3 Sin NA 684
4 Sin NA 1641
5 Sin NA 2522
6 Sin NA 1870
na_parquea <- sum(is.na(vivienda$parqueaderos))
mensaje <- paste("Hay", na_parquea, "valores en blanco")
mensaje
## [1] "Hay 1602 valores en blanco"

Se procede con la sustitución directa de los datos ausentes por el valor de cero en la variable correspondiente a parqueaderos.

######Imputar los valores NA de la variable parquea con ceros
vivienda$parqueaderos <- replace(vivienda$parqueaderos, is.na(vivienda$parqueaderos), 0)
na_parquea <- sum(is.na(vivienda$parqueaderos))
mensaje <- paste("Hay", na_parquea, "valores en blanco")
mensaje
## [1] "Hay 0 valores en blanco"
rm(barrio_frec, na_values, tabla_na, vivienda_con_duplicados, data_impute, imputed_data, imputed_data_complete) # borrado de tablas que no se usan

En conclusión, en esta fase preliminar de acondicionamiento de datos se removieron los registros con identificadores vacíos y se estimaron con éxito las observaciones faltantes de las variables de parqueaderos y piso.

# Crear la nueva tabla vivienda_work
vivienda_work <- vivienda[, c("id", "piso", "estrato", "areaconst", "parqueaderos", "preciom", "banios", "habitaciones", "p_m2", "tipo_num", "zona_num")]

Evaluación de Correlaciones Lineales

El análisis de correlaciones constituye un paso indispensable en la fase de exploración de datos. Permite identificar de manera visual el nivel de asociación lineal entre variables continuas y orienta la posterior selección de componentes y agrupamientos.

Con el propósito de simplificar el estudio y centrarnos en las variables estructurantes de la vivienda, se descartan variables de georreferenciación o alta dimensionalidad categórica como latitud, longitud y barrio.

# Crear la matriz de correlación
cor_matrix <- cor(vivienda_work)

# Graficar la matriz de correlación
corrplot(cor_matrix, method = "color", type = "upper", 
         tl.col = "black", tl.srt = 45, 
         title = "Matriz de Correlación de vivienda")

Asociaciones lineales detectadas: - Nivel del Piso (piso): Muestra una asociación negativa de magnitud moderada con la zona codificada (zona_num). Esto sugiere que la tendencia a construir edificios de mayor altura varía geográficamente según el sector de la ciudad.

  • Estrato Socioeconómico (estrato): Exhibe una correlación positiva y moderada con el tamaño de construcción, el valor comercial y el número de parqueaderos. Esto ratifica que los sectores de mayor nivel socioeconómico se caracterizan por albergar viviendas de mayor metraje, precio y disponibilidad de cocheras. La relación con el número de dormitorios es igualmente positiva pero de menor intensidad.

  • Área Construida (areaconst): Posee una marcada y positiva asociación lineal con el precio y los estacionamientos, lo que comprueba que las viviendas de mayor tamaño implican un mayor desembolso económico y más espacios para vehículos. Asimismo, guarda correlación positiva con la cantidad de habitaciones y baños.

  • Estacionamientos (parqueaderos): Registra una fuerte dependencia lineal positiva con el precio de venta del inmueble, evidenciando que las propiedades equipadas con más espacios de parqueo tienen una valoración superior en el mercado.

  • Precio Total (preciom): De manera congruente con la lógica del mercado, está estrechamente vinculado de forma positiva con el área de construcción, el número de parqueaderos y el estrato socioeconómico de la vivienda, además de mostrar nexos positivos con la cantidad de alcobas y servicios sanitarios.

  • Baños (banios): Tiene una relación lineal directa y positiva con el metraje, parqueaderos, precio y alcobas, revelando que a mayor escala física y precio del inmueble, aumenta proporcionalmente la cantidad de servicios sanitarios.

  • Habitaciones (habitaciones): Se asocia positivamente con el espacio construido, precio y baños. Destaca un vínculo relevante con la variable numérica de tipo de vivienda (tipo_num), lo que sugiere que ciertas tipologías (como casas) concentran inherentemente un mayor número de dormitorios.

  • Precio Unitario por Metro Cuadrado (p_m2): Exhibe correlaciones de menor intensidad comparado con las variables brutas de tamaño y precio total, sugiriendo una mayor estabilidad o un comportamiento influenciado por factores no lineales.

  • Tipología (tipo_num): Presenta relaciones interesantes con las variables de habitaciones y zona geográfica, sugiriendo diferencias estructurales de construcción según el cuadrante urbano de Cali.

  • Zona (zona_num): Posee nexos negativos con el piso de ubicación y relaciones leves con el resto de atributos, indicando disparidades espaciales en la morfología de la oferta de vivienda.

Conclusión de la fase exploratoria: La matriz de correlación simplifica la comprensión de la estructura de dependencia lineal del conjunto de datos. Permite identificar núcleos de fuerte asociación entre atributos socioeconómicos y de tamaño (como estrato, área de construcción y precio total), estableciendo las bases para la aplicación de técnicas multivariadas.

Análisis de Componentes Principales (PCA)

Este método se emplea con el fin de simplificar la dimensionalidad del espacio de variables originales, proyectando la información en un número reducido de variables ortogonales (componentes principales) que retienen la mayor proporción posible de la variabilidad del sistema.

data("vivienda_work")

viviendaZ= scale(vivienda_work[,2:5]) 
res.pca <- prcomp(viviendaZ)
fviz_eig(res.pca, addlabels = TRUE)

El primer eje de proyección (Dim1) logra explicar por sí solo el 46.4% de la dispersión total de la información. Por su parte, el segundo eje (Dim2) retiene un 28.9% de la varianza. De forma conjunta, las dos primeras dimensiones acumulan el 75.3% de la variabilidad global, lo que garantiza una representación simplificada de alta calidad que conserva la mayor parte de la información relevante de la muestra.

fviz_pca_var(res.pca,
col.var = "contrib", # Color by contributions to the PC
gradient.cols = c("#FF7F00",  "#034D94"),
repel = TRUE     # Avoid text overlapping
)

El círculo de correlación del PCA proyecta el comportamiento de las variables originales sobre el plano de las dos dimensiones principales, revelando su grado de asociación y aportes a cada eje:

Relaciones Entre Variables:

  • Piso del inmueble (piso): Muestra una contribución dominante hacia la segunda dimensión (Dim2), como lo ilustra su vector vertical. Su orientación casi perpendicular al eje horizontal indica que su variabilidad es independiente del comportamiento de las variables de dimensión y precio.

  • Área, Estacionamientos y Estrato (areaconst, parqueaderos, estrato): Estos atributos están estrechamente alineados con la primera dimensión (Dim1), evidenciando que son los que estructuran la mayor parte del primer factor.

  • Patrón de asociación: Los vectores del tamaño de la vivienda, parqueaderos y nivel socioeconómico se agrupan en una misma dirección. Esto demuestra una correlación directa y positiva: las propiedades con mayor superficie cubierta suelen ubicarse en sectores de estratos elevados y ofrecer mayor capacidad de estacionamiento. En contraste, el vector correspondiente a la altura de piso se muestra ortogonal a este grupo, corroborando la nula relación lineal entre el nivel del piso y el metraje o estrato del inmueble.

Conclusión de PCA:

El análisis factorial sintetiza la estructura de la base de datos en dos grandes patrones: - El factor de altura o nivel del piso de la vivienda (piso), que actúa de forma aislada e independiente en el segundo componente (Dim2). - El factor dimensional y socioeconómico (conformado por areaconst, parqueaderos y estrato), las cuales están estrechamente asociadas entre sí y rigen el comportamiento del primer componente (Dim1).

Análisis de Conglomerados (Clustering)

Esta metodología estadística tiene como finalidad clasificar los registros en grupos homogéneos (clústeres), de tal modo que las viviendas de un mismo grupo compartan atributos similares y se diferencien de las pertenecientes a otras agrupaciones. Para este estudio, se normalizan las variables cuantitativas y se ejecuta un algoritmo de particionamiento no jerárquico a fin de clasificar el mercado de Cali.

datos_escalados <- scale(vivienda_work)

Determinación de la cantidad óptima de clústeres

# Método del codo
fviz_nbclust(datos_escalados, kmeans, method = "wss") +
  geom_vline(xintercept = 3, linetype = 2) +  # Modifica el número de intersección según el gráfico generado
  labs(subtitle = "Elbow method")

Al evaluar el punto de inflexión en la curva de la suma de cuadrados intra-grupo (gráfico de codo), se identifica que la estructura óptima para segmentar la base de datos consta de 3 conglomerados.

Ajuste del algoritmo K-means

set.seed(123)  # Para garantizar resultados reproducibles
kmeans_result <- kmeans(datos_escalados, centers = 3, nstart = 25)

Visualización espacial de las agrupaciones

# Agregar el número de cluster a los datos originales
vivienda_work$cluster <- as.factor(kmeans_result$cluster)

# Visualización de los clusters
fviz_cluster(kmeans_result, data = datos_escalados, 
             geom = "point", stand = FALSE, 
             ellipse.type = "norm", ggtheme = theme_minimal())

# Graficar el dendograma


### Dendograma basado en los centroides

# Calcular las distancias entre los centroides
dist_centroids <- dist(kmeans_result$centers, method = "euclidean")

# Clustering jerárquico basado en los centroides
hclust_centroids <- hclust(dist_centroids, method = "complete")

# Graficar el dendograma
fviz_dend(hclust_centroids, rect = TRUE, show_labels = TRUE, palette = "jco")

Interpretación y caracterización de los conglomerados

La estructura jerárquica del dendrograma de centroides indica una alta cercanía entre las agrupaciones 1 y 2, las cuales se enlazan en un nivel inferior de distancia euclidiana. En contraste, el conglomerado 3 se separa de los dos primeros a una altura significativamente mayor, marcando una discrepancia notable en sus atributos estructurales. Si se realizara una simplificación a nivel macro, los grupos 1 y 2 podrían consolidarse frente al comportamiento atípico del grupo 3.

# Resumen de características de cada cluster
vivienda_work %>% 
  group_by(cluster) %>% 
  summarise_all(mean)

El resumen promedio de los conglomerados permite identificar la siguiente segmentación del mercado: - Clúster 1 (Gama Media-Alta): Se asocia predominantemente con propiedades en estrato 6, con un área promedio de 163 m², y características intermedias de baños e infraestructura. - Clúster 2 (Gama Media-Baja): Vinculado mayoritariamente a viviendas de estrato 4, con una superficie promedio menor (aprox. 93 m²) y menor cantidad de servicios. - Clúster 3 (Gama Alta / Lujo): Representa las viviendas más amplias y costosas, con un promedio de área de 329 m², asociadas al estrato 5 y caracterizadas por un mayor número de sanitarios y parqueaderos.

Análisis de Correspondencias

Esta técnica multivariada está diseñada para estudiar la existencia de asociaciones significativas entre variables cualitativas. A través de la proyección gráfica en dimensiones reducidas, es posible interpretar visualmente la cercanía y afinidad entre las distintas categorías del estudio.

# Crear la nueva tabla vivienda_work
vivienda_cat <- vivienda[, c("zona", "estrato", "tipo")]

Evaluación de la asociación entre Zona y Estrato

Inicialmente, se presenta un análisis gráfico de distribución para explorar la composición socioeconómica según la ubicación geográfica de las viviendas:

# Crear un dataframe con el conteo por zona y estrato
conteo_zona_estrato <- vivienda %>%
  group_by(zona) %>%
  count(estrato)
# Crear el gráfico de barras
ggplot(conteo_zona_estrato, aes(x = fct_reorder(zona, n), y = n, fill = estrato)) +
  geom_bar(stat = "identity") +
  labs(title = "Distribución de viviendas por estrato",x = "Zona", y = "Unidades", fill = "Estrato") +
  theme_test()

Creación de tabla de contingencia

tabla <- table(vivienda_cat$zona, vivienda_cat$estrato)
colnames(tabla) <- c("Estrato 3", "Estrato 4", "Estrato 5", "Estrato 6" )
tabla
##          
##           Estrato 3 Estrato 4 Estrato 5 Estrato 6
##   Centro        105        14         4         1
##   Norte         572       407       769       172
##   Oeste          54        84       290       770
##   Oriente       340         8         2         1
##   Sur           382      1616      1685      1043

Prueba de chi-cuadrado

chisq.test(tabla)
## 
##  Pearson's Chi-squared test
## 
## data:  tabla
## X-squared = 3830.4, df = 12, p-value < 2.2e-16

Los resultados del contraste de hipótesis Chi-cuadrado indican una fuerte asociación entre la ubicación (zona) y el estrato socioeconómico. Dado que el p-valor resulta significativo, se rechaza la hipótesis de independencia, confirmando que la distribución de estratos está condicionada por la zona geográfica.

Gráfico de análisis de correspondencias

resultados_ac <- CA(tabla)

Extraer y mostrar valores propios (eigenvalores)

valores_prop <-resultados_ac$eig ; valores_prop
##       eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.32215213              69.965515                          69.96551
## dim 2 0.12745096              27.680002                          97.64552
## dim 3 0.01084108               2.354483                         100.00000

Visualizar la varianza explicada

fviz_screeplot(resultados_ac, addlabels = TRUE, ylim = c(0, 80))+ggtitle("")+
ylab("Porcentaje de varianza explicado") + xlab("Ejes")

Evaluación de la asociación entre Tipo de Vivienda y Estrato

# graficar las unidades por estrato y tipo
ggplot(vivienda, aes(fill = tipo, y = after_stat(count), x = estrato)) +
  geom_bar(position = "dodge") +
  labs(title = "Distribución de Tipos de Vivienda por estrato",
       x = "Estrato",
       y = "Número de viviendas") +
  theme_test()

Crear tabla de contingencia

tabla2 <- table(vivienda_cat$tipo, vivienda_cat$estrato)
colnames(tabla2) <- c("Estrato 3", "Estrato 4", "Estrato 5", "Estrato 6" )
tabla2
##              
##               Estrato 3 Estrato 4 Estrato 5 Estrato 6
##   Apartamento       639      1404      1766      1291
##   Casa              814       725       984       696

Prueba chi-cuadrado

chisq.test(tabla2)
## 
##  Pearson's Chi-squared test
## 
## data:  tabla2
## X-squared = 224.33, df = 3, p-value < 2.2e-16

De manera similar a la relación anterior, el contraste Chi-cuadrado demuestra una estrecha dependencia entre el estrato y el tipo de construcción (casa o apartamento), validando estadísticamente la hipótesis de asociación.

Gráfico de análisis de correspondencias

resultados_ac <- CA(tabla2)
valores_prop <-resultados_ac$eig ; valores_prop
##       eigenvalue percentage of variance cumulative percentage of variance
## dim 1  0.0269661                    100                               100

Los autovalores revelan que una única dimensión recoge la totalidad de la varianza acumulada del análisis de asociación entre estas dos variables.

fviz_screeplot(resultados_ac, addlabels = TRUE, ylim = c(0, 80))+ggtitle("")+
ylab("Porcentaje de varianza explicado") + xlab("Ejes")
## `geom_line()`: Each group consists of only one observation.
## ℹ Do you need to adjust the group aesthetic?

Análisis de Correspondencias Múltiples (MCA)

Con el fin de analizar conjuntamente las tres variables categóricas estructurantes (Zona, Tipo y Estrato), se efectúa un modelo MCA para visualizar las interrelaciones globales en un espacio bidimensional:

# Seleccionar las variables categóricas de interés
vivienda_cat <- vivienda[, c("zona", "estrato", "tipo")]
vivienda_cat$estrato <- as.factor(vivienda_cat$estrato)
# Realizar el Análisis de Correspondencias Múltiples (MCA)
mca_resultado <- MCA(vivienda_cat, graph = FALSE)

# Visualizar la varianza explicada por cada componente
fviz_screeplot(mca_resultado, addlabels = TRUE, ylim = c(0, 50)) +
  ggtitle("Porcentaje de Varianza Explicada por los Componentes") +
  ylab("Porcentaje de varianza explicado") +
  xlab("Componentes")

# Graficar el biplot de MCA
fviz_mca_biplot(mca_resultado, repel = TRUE) +
  ggtitle("Biplot de MCA") +
  theme_minimal()

# Visualizar las contribuciones de las variables a cada dimensión
fviz_mca_var(mca_resultado, choice = "mca.cor", repel = TRUE) +
  ggtitle("Contribuciones de las Variables a las Dimensiones") +
  theme_minimal()

- El histograma de varianza explicada indica que aproximadamente el 80% de la inercia total se retiene al considerar los primeros 5 factores. - La representación del biplot MCA destaca las siguientes cercanías categóricas: - Las categorías Centro y Oriente se posicionan de manera contigua en la parte derecha, sugiriendo que comparten perfiles urbanos y comerciales muy similares. - La Zona Sur y los Estratos 4 y 5 se sitúan en cuadrantes cercanos, lo que constata la alta incidencia de estos niveles socioeconómicos en el sur de Cali. - La cercanía entre Estrato 3 y la Zona Centro sugiere una presencia predominante de este estrato en dicho sector de la ciudad. - Respecto al mapa de correlación de variables con los factores principales, se concluye que Zona y Estrato ejercen la mayor influencia en la conformación de los primeros dos componentes (Dim1 y Dim2). Por el contrario, la variable Tipo de vivienda se sitúa próxima al origen, evidenciando un menor peso explicativo en la variabilidad espacial global de este modelo.

Conclusiones Generales

A partir de la ejecución y evaluación de los modelos multivariados se derivan las siguientes conclusiones:

  1. Estructura Factorial (PCA): La variable relativa a la altura del inmueble (piso) opera de manera independiente y segregada, marcando una dimensión de variabilidad diferenciada del grupo de variables de tamaño y precio (areaconst, preciom, estrato, parqueaderos), las cuales se encuentran altamente vinculadas entre sí.
  2. Segmentación de Clientes (Clustering): La clasificación en 3 conglomerados segmenta el mercado inmobiliario de Cali en tres tipologías claras de vivienda (gama media-alta en estrato 6, gama media-baja en estrato 4 y gama de lujo en estrato 5), aportando criterios de valor adicionales al mero análisis unidimensional del precio.
  3. Asociaciones de Ubicación (Correspondencias): Se comprueba una fuerte codependencia entre la ubicación geográfica (Zona) y el estrato socioeconómico, así como entre el tipo de propiedad y su estrato, revelando patrones geodemográficos marcados en la ciudad.

Cada una de las metodologías estadísticas implementadas aporta perspectivas complementarias y no excluyentes:

  • Reducción de Dimensiones (PCA): Condensa las variables continuas correlacionadas en factores latentes independientes, lo que simplifica la visualización espacial, descarta el ruido numérico y facilita posteriores análisis predictivos.
  • Análisis de Correspondencias: Permite mapear las variables cualitativas identificando asociaciones, dependencias e interacciones espaciales y tipológicas entre categorías en un plano gráfico simplificado.
  • Análisis de Agrupamientos (Clustering): Facilita la segmentación de datos agrupando registros bajo criterios de homogeneidad interna y heterogeneidad externa, aportando inteligencia de negocio para el diseño de estrategias comerciales personalizadas en el sector inmobiliario.