1.Introducción

Una empresa inmobiliaria líder en una gran ciudad está buscando comprender en profundidad el mercado de viviendas urbanas para tomar decisiones estratégicas más informadas. La empresa posee una base de datos extensa que contiene información detallada sobre diversas propiedades residenciales disponibles en el mercado. Se requiere realizar un análisis holístico de estos datos para identificar patrones, relaciones y segmentaciones relevantes que permitan mejorar la toma de decisiones en cuanto a la compra, venta y valoración de propiedades.

2. Objetivos

Este informe tiene los siguientes objetivos:

  1. Análisis de Componentes Principales: Reducir la dimensionalidad del conjunto de datos y visualizar la estructura de las variables en componentes principales para identificar características clave que influyen en la variación de precios y oferta del mercado.

  2. Análisis de Conglomerados: Agrupar las propiedades residenciales en segmentos homogéneos con características similares para entender las dinámicas de las ofertas específicas en diferentes partes de la ciudad y en diferentes estratos socioeconómicos.

  3. Análisis de Correspondencia : Examinar la relación entre las variables categóricas (tipo de vivienda, zona y barrio), para identificar patrones de comportamiento de la oferta en mercado inmobiliario.

  4. Visualización de resultados: Presentar gráficos, mapas y otros recursos visuales para comunicar los hallazgos de manera clara y efectiva a la dirección de la empresa.

3. Características del dataset vivienda

Antes de iniciar la presentación del análisis exploratorio de datos es clave conocer qué contiene el conjunto de datos. Esta exploración preliminar permite corroborar que los datos que tenemos sí son los que esperamos tener.

## Loading required package: boot
## Loading required package: broom
## Loading required package: GGally
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.3
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## Loading required package: gridExtra
## Loading required package: knitr
## Warning: package 'knitr' was built under R version 4.3.3
## Loading required package: summarytools
## Warning: package 'mice' was built under R version 4.3.3
## 
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
## 
##     filter
## The following objects are masked from 'package:base':
## 
##     cbind, rbind
## Warning: package 'factoextra' was built under R version 4.3.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
## Warning: package 'sf' was built under R version 4.3.3
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
## Warning: package 'leaflet' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::combine() masks gridExtra::combine()
## ✖ dplyr::filter()  masks mice::filter(), stats::filter()
## ✖ dplyr::lag()     masks stats::lag()
## ✖ tibble::view()   masks summarytools::view()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## 
## Attaching package: 'reshape2'
## 
## 
## The following object is masked from 'package:tidyr':
## 
##     smiths
## Warning: package 'FactoMineR' was built under R version 4.3.3
## [1] 8322   13
##  [1] "id"           "zona"         "piso"         "estrato"      "preciom"     
##  [6] "areaconst"    "parqueaderos" "banios"       "habitaciones" "tipo"        
## [11] "barrio"       "longitud"     "latitud"
## [1] "id"           "estrato"      "preciom"      "areaconst"    "parqueaderos"
## [6] "banios"       "habitaciones" "longitud"     "latitud"
## [1] "zona"   "piso"   "tipo"   "barrio"

Zona

## [1] "Zona Oriente" "Zona Sur"     "Zona Norte"   "Zona Oeste"   "Zona Centro" 
## [6] NA

Tipo

## [1] "Casa"        "Apartamento" NA

Barrio

##   [1] "20 de julio"                   "3 de julio"                   
##   [3] "acopi"                         "agua blanca"                  
##   [5] "aguablanca"                    "aguacatal"                    
##   [7] "alameda"                       "alameda del río"              
##   [9] "alameda del rio"               "alamos"                       
##  [11] "alborada"                      "alcazares"                    
##  [13] "alférez real"                 "alferez real"                 
##  [15] "alfonso lópez"                 "alfonso lópez i"              
##  [17] "alfonso lopez"                 "alto jordán"                  
##  [19] "altos de guadalupe"            "altos de menga"               
##  [21] "altos de santa"                "antonio nariño"               
##  [23] "aranjuez"                      "arboleda"                     
##  [25] "arboleda campestre candelaria" "arboledas"                    
##  [27] "atanasio girardot"             "autopista sur"                
##  [29] "bajo aguacatal"                "barranquilla"                 
##  [31] "barrio 7de agosto"             "barrio el recuerdo"           
##  [33] "barrio eucarístico"            "barrio obrero"                
##  [35] "barrio tranquilo y"            "base aérea"                  
##  [37] "belalcazar"                    "Belalcazar"                   
##  [39] "belisario caicedo"             "bella suiza"                  
##  [41] "bella suiza alta"              "bellavista"                   
##  [43] "benjamín herrera"              "berlin"                       
##  [45] "bloques del limonar"           "bochalema"                    
##  [47] "bolivariano"                   "bosques de alboleda"          
##  [49] "bosques del limonar"           "boyacá"                       
##  [51] "bretaña"                       "brisas de guadalupe"          
##  [53] "brisas de los"                 "Brisas De Los"                
##  [55] "brisas del guabito"            "brisas del limonar"           
##  [57] "Bueno Madrid"                  "buenos aires"                 
##  [59] "cañasgordas"                   "cañaveralejo"                 
##  [61] "cañaverales"                   "cañaverales los samanes"      
##  [63] "caldas"                        "Cali"                         
##  [65] "cali bella"                    "cali canto"                   
##  [67] "calibella"                     "calicanto"                    
##  [69] "calicanto viii"                "calima"                       
##  [71] "calimio norte"                 "calipso"                      
##  [73] "cambulos"                      "camino real"                  
##  [75] "Camino Real"                   "campestre"                    
##  [77] "caney"                         "caney especial"               
##  [79] "capri"                         "cascajal"                     
##  [81] "cataya real"                   "ceibas"                       
##  [83] "centelsa"                      "centenario"                   
##  [85] "Centenario"                    "centro"                       
##  [87] "cerro cristales"               "cerros de guadalupe"          
##  [89] "champagnat"                    "chapinero"                    
##  [91] "chiminangos"                   "Chiminangos"                  
##  [93] "chiminangos 1 etapa"           "chiminangos 2 etapa"          
##  [95] "chipichape"                    "ciudad 2000"                  
##  [97] "Ciudad 2000"                   "ciudad antejardin"            
##  [99] "ciudad bochalema"              "ciudad córdoba"               
## [101] "ciudad córdoba reservado"      "ciudad capri"                 
## [103] "ciudad cordoba"                "ciudad country"               
## [105] "ciudad del campo"              "ciudad jardín"                
## [107] "Ciudad Jardín"                 "ciudad jardin"                
## [109] "ciudad jardin pance"           "ciudad los álamos"            
## [111] "ciudad los alamos"             "ciudad meléndez"             
## [113] "ciudad melendez"               "ciudad modelo"                
## [115] "ciudad pacifica"               "Ciudad Pacifica"              
## [117] "ciudad real"                   "ciudad talanga"               
## [119] "ciudad universitaria"          "ciudadela comfandi"           
## [121] "ciudadela del río"             "ciudadela melendez"           
## [123] "ciudadela paso ancho"          "ciudadela pasoancho"          
## [125] "colinas de menga"              "colinas del bosque"           
## [127] "colinas del sur"               "colon"                        
## [129] "colseguros"                    "colseguros andes"             
## [131] "Colseguros Andes"              "comfenalco"                   
## [133] "compartir"                     "conjunto gibraltar"           
## [135] "cristóbal colón"               "cristales"                    
## [137] "cristobal colón"               "cuarto de legua"              
## [139] "departamental"                 "ed benjamin herrera"          
## [141] "el bosque"                     "El Bosque"                    
## [143] "el caney"                      "El Caney"                     
## [145] "el castillo"                   "el cedro"                     
## [147] "el diamante"                   "el dorado"                    
## [149] "el gran limonar"               "el guabal"                    
## [151] "el guabito"                    "el ingenio"                   
## [153] "El Ingenio"                    "el ingenio 3"                 
## [155] "el ingenio i"                  "el ingenio ii"                
## [157] "el ingenio iii"                "el jardín"                    
## [159] "el jordán"                     "el lido"                      
## [161] "el limonar"                    "el nacional"                  
## [163] "el paraíso"                    "el peñon"                     
## [165] "el prado"                      "el refugio"                   
## [167] "el rodeo"                      "el sena"                      
## [169] "el trébol"                    "el troncal"                   
## [171] "el vallado"                    "eucarístico"                  
## [173] "evaristo garcía"               "farrallones de pance"         
## [175] "fenalco kennedy"               "fepicol"                      
## [177] "flora"                         "flora industrial"             
## [179] "floralia"                      "fonaviemcali"                 
## [181] "francisco eladio ramirez"      "fuentes de la"                
## [183] "gaitan"                        "gran limonar"                 
## [185] "granada"                       "guadalupe"                    
## [187] "guadalupe alto"                "guaduales"                    
## [189] "guayaquil"                     "hacienda alferez real"        
## [191] "ingenio"                       "ingenio i"                    
## [193] "ingenio ii"                    "jamundi"                      
## [195] "jamundi alfaguara"             "jorge eliecer gaitán"         
## [197] "jorge isaacs"                  "jose manuel marroquín"        
## [199] "juanamb√∫"                     "juanambu"                     
## [201] "junín"                         "junin"                        
## [203] "la alborada"                   "la alianza"                   
## [205] "la arboleda"                   "la base"                      
## [207] "la buitrera"                   "la campiña"                   
## [209] "la cascada"                    "la ceibas"                    
## [211] "la esmeralda"                  "la flora"                     
## [213] "La Flora"                      "la floresta"                  
## [215] "la fortaleza"                  "la gran colombia"             
## [217] "la hacienda"                   "La Hacienda"                  
## [219] "la independencia"              "la libertad"                  
## [221] "la luisa"                      "la merced"                    
## [223] "la morada"                     "la nueva base"                
## [225] "la playa"                      "la portada al"                
## [227] "la primavera"                  "la reforma"                   
## [229] "la rivera"                     "la rivera i"                  
## [231] "la rivera ii"                  "la riverita"                  
## [233] "la riviera"                    "la selva"                     
## [235] "la villa del"                  "laflora"                      
## [237] "lares de comfenalco"           "las acacias"                  
## [239] "las américas"                 "las camelias"                 
## [241] "las ceibas"                    "las delicias"                 
## [243] "las granjas"                   "las quintas de"               
## [245] "las vegas"                     "las vegas de"                 
## [247] "libertadores"                  "los alamos"                   
## [249] "los alcázares"                 "los alcazares"                
## [251] "los andes"                     "los cámbulos"                 
## [253] "los cambulos"                  "los cristales"                
## [255] "los cristales club"            "los farallones"               
## [257] "los guaduales"                 "Los Guaduales"                
## [259] "los guayacanes"                "los jockeys"                  
## [261] "los libertadores"              "los parques barranquilla"     
## [263] "los robles"                    "lourdes"                      
## [265] "mamellan"                      "manzanares"                   
## [267] "mariano ramos"                 "marroquín iii"                
## [269] "mayapan las vegas"             "meléndez"                    
## [271] "melendez"                      "menga"                        
## [273] "metropolitano del norte"       "miradol del aguacatal"        
## [275] "miraflores"                    "Miraflores"                   
## [277] "morichal de comfandi"          "multicentro"                  
## [279] "municipal"                     "nápoles"                      
## [281] "napoles"                       "normandía"                    
## [283] "normandía west point"          "normandia"                    
## [285] "norte"                         "norte la flora"               
## [287] "nueva base"                    "nueva floresta"               
## [289] "nueva tequendama"              "oasis de comfandi"            
## [291] "oasis de pasoancho"            "occidente"                    
## [293] "pacará"                        "pacara"                       
## [295] "palmas del ingenio"            "pampa linda"                  
## [297] "pampalinda"                    "panamericano"                 
## [299] "pance"                         "Pance"                        
## [301] "parcelaciones pance"           "parque residencial el"        
## [303] "paseo de los"                  "paso del comercio"            
## [305] "pasoancho"                     "poblado campestre"            
## [307] "ponce"                         "popular"                      
## [309] "portada de comfandi"           "portales de comfandi"         
## [311] "porvenir"                      "prados de oriente"            
## [313] "prados del limonar"            "Prados Del Limonar"           
## [315] "prados del norte"              "Prados Del Norte"             
## [317] "prados del sur"                "primavera"                    
## [319] "primero de mayo"               "primitivo crespo"             
## [321] "puente del comercio"           "puente palma"                 
## [323] "quintas de don"                "Quintas De Don"               
## [325] "quintas de salomia"            "rafael uribe uribe"           
## [327] "refugio"                       "rep√∫blica de israel"         
## [329] "rincón de salomia"             "rincon de la"                 
## [331] "riveras del valle"             "rozo la torre"                
## [333] "saavedra galindo"              "salomia"                      
## [335] "samanes"                       "samanes de guadalupe"         
## [337] "sameco"                        "san antonio"                  
## [339] "san bosco"                     "san carlos"                   
## [341] "san cayetano"                  "san fernando"                 
## [343] "San Fernando"                  "san fernando nuevo"           
## [345] "san fernando viejo"            "san joaquín"                  
## [347] "san joaquin"                   "san juan bosco"               
## [349] "san judas"                     "san judas tadeo"              
## [351] "san luís"                      "san luis"                     
## [353] "san nicolás"                   "san nicolas"                  
## [355] "san pedro"                     "san vicente"                  
## [357] "santa"                         "santa anita"                  
## [359] "Santa Anita"                   "santa anita sur"              
## [361] "santa bárbara"                 "santa elena"                  
## [363] "santa fe"                      "santa helena de"              
## [365] "santa isabel"                  "Santa Isabel"                 
## [367] "santa mónica"                  "santa mónica alta"            
## [369] "santa mónica popular"          "santa mónica residencial"     
## [371] "santa monica"                  "Santa Monica"                 
## [373] "santa monica norte"            "santa monica popular"         
## [375] "santa monica residencial"      "santa rita"                   
## [377] "santa rosa"                    "santa teresita"               
## [379] "Santa Teresita"                "Santafe"                      
## [381] "santander"                     "santo domingo"                
## [383] "Santo Domingo"                 "sector aguacatal"             
## [385] "sector cañaveralejo guadalupe" "seminario"                    
## [387] "sierras de normandía"          "siete de agosto"              
## [389] "simón bolivar"                 "tejares cristales"            
## [391] "tejares de san"                "templete"                     
## [393] "tequendama"                    "tequendema"                   
## [395] "terrón colorado"               "torres de comfandi"           
## [397] "unión de vivienda"             "unicentro cali"               
## [399] "urbanización barranquilla"     "urbanización boyacá"          
## [401] "urbanización colseguros"       "urbanización la flora"        
## [403] "urbanización la merced"        "urbanización la nueva"        
## [405] "urbanización las cascadas"     "urbanización nueva granada"   
## [407] "urbanización pacara"           "urbanización río lili"        
## [409] "urbanización san joaquin"      "urbanización tequendama"      
## [411] "urbanizacion el saman"         "urbanizacion gratamira"       
## [413] "urbanizacion lili"             "valle de lili"                
## [415] "valle del lili"                "Valle Del Lili"               
## [417] "valle grande"                  "versalles"                    
## [419] "villa colombia"                "villa de veracruz"            
## [421] "villa del lago"                "villa del parque"             
## [423] "villa del prado"               "Villa Del Prado"              
## [425] "villa del sol"                 "villa del sur"                
## [427] "Villas De Veracruz"            "villas de veracruz"           
## [429] "vipasa"                        "zona centro"                  
## [431] "zona norte"                    "zona norte los"               
## [433] "zona oeste"                    "zona oriente"                 
## [435] "zona residencial"              "zona sur"                     
## [437] NA

Piso

##  [1] NA   "02" "01" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12"

4. Preprocesamiento de la base de datos

4.1 Valores NA

El conjunto de datos contiene la siguiente frecuencia de valores NA por variable presentada como tabla.

##                 .
## id              3
## zona            3
## piso         2638
## estrato         3
## preciom         2
## areaconst       3
## parqueaderos 1605
## banios          3
## habitaciones    3
## tipo            3
## barrio          3
## longitud        3
## latitud         3

A partir de lo anterior se decide revisar los registros de id con valores NA.

## # A tibble: 3 × 13
##      id zona  piso  estrato preciom areaconst parqueaderos banios habitaciones
##   <dbl> <chr> <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
## 1    NA <NA>  <NA>       NA      NA        NA           NA     NA           NA
## 2    NA <NA>  <NA>       NA      NA        NA           NA     NA           NA
## 3    NA <NA>  <NA>       NA     330        NA           NA     NA           NA
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

Se observa que los 3 registros no contienen información en ninguna de sus 13 variables por lo que serán retirados. A continuación, se muestra nuevamente la tabla de los valores NA.

##                 .
## id              0
## zona            0
## piso         2635
## estrato         0
## preciom         0
## areaconst       0
## parqueaderos 1602
## banios          0
## habitaciones    0
## tipo            0
## barrio          0
## longitud        0
## latitud         0

Ahora el enfoque será en las variables piso y parqueaderos. Para ello se calculará el porcentaje que representan los NA de cada variable del total de registros.

##                  Variable Proporcion
## id                     id    0.00000
## zona                 zona    0.00000
## piso                 piso   31.67448
## estrato           estrato    0.00000
## preciom           preciom    0.00000
## areaconst       areaconst    0.00000
## parqueaderos parqueaderos   19.25712
## banios             banios    0.00000
## habitaciones habitaciones    0.00000
## tipo                 tipo    0.00000
## barrio             barrio    0.00000
## longitud         longitud    0.00000
## latitud           latitud    0.00000

Teniendo en cuenta el porcentaje de NA presente en ambas se decide eliminar la variable piso e imputar la variable parqueadero con la mediana

##              .
## id           0
## zona         0
## estrato      0
## preciom      0
## areaconst    0
## parqueaderos 0
## banios       0
## habitaciones 0
## tipo         0
## barrio       0
## longitud     0
## latitud      0

4.2 Variables categóricas

Con la eliminación de piso, las variables categóricas restantes son Zona, Barrio y Tipo. Como se mostró algunos nombres de barrios requieren ser tratados. Lo primero que se hará será eliminar tildes y poner en minúscula todos los nombres.

## [1] "Cantidad de registros únicos:  389"

Se pasó de 436 a 389 valores únicos. Ahora se estandarizarán los nombres que tengan errores ortográficos.

## [1] "Cantidad de registros únicos:  370"

Finalmente, después del tratamiento a la variable la cantidad de registros únicos es 370.

4.3 Identificación y remoción de valores atípicos

La imagen muestra visualmente los valores atípicos de las variables en el conjunto de datos.

## Using zona, tipo, barrio as id variables

Por otra parte se usará el primer y tercer cuartil así como el rango intercuartilico para identificar los valores atípicos y eliminarlos.

## Warning in x < (Q1 - 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x > (Q3 + 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x < (Q1 - 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x > (Q3 + 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x < (Q1 - 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x > (Q3 + 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x < (Q1 - 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x > (Q3 + 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x < (Q1 - 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x > (Q3 + 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x < (Q1 - 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x > (Q3 + 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x < (Q1 - 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x > (Q3 + 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x < (Q1 - 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x > (Q3 + 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x < (Q1 - 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Warning in x > (Q3 + 1.5 * IQR): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## Número de filas antes de eliminar outliers: 8319
## Número de filas después de eliminar outliers: 1081

A pesar de identificar los valores atípicos solo se conservaría cerca del 13% de los datos. Por lo tanto se mantendrán sin realizar ninguna imputación debido a la alta cantidad. Con esto finaliza el proceso de preprocesamiento del conjunto de datos. Ahora se desarrollará se hará un análisis exploratorio.

4.4 Análisis exploratorio

A continuación se muestra cuál es la distribución de precios teniendo en cuenta el tipo de vivienda.

La distribución del precio es la siguiente

La relación entre el área construida y el precio es la siguiente:

## `geom_smooth()` using formula = 'y ~ x'

El precio promedio por zona es el siguiente:

Finalmente, se muestra la proporción en el tipo de vivienda presente en el conjunto de datos.

5. Análisis de componentes principales

5.1 Preparación de datos

A continuación se prepararán los datos para su transformación en componentes principales. Primero se seleccionarán las variables numéricas y se validará si contienen datos faltantes.

# Variables numéricas
numericas <- numericas[,-c(1,8,9)]
# Validación de valores faltantes
md.pattern(numericas)
##  /\     /\
## {  `---'  }
## {  O   O  }
## ==>  V <==  No need for mice. This data set is completely observed.
##  \  \|/  /
##   `-----'

##      estrato preciom areaconst parqueaderos banios habitaciones  
## 8319       1       1         1            1      1            1 0
##            0       0         0            0      0            0 0

Luego de verificar que no existan datos faltantes, se escalarán las variables para generar las componentes principales.

# Escalamiento
numericasZ <- scale(numericas)
# Pca
pca<-prcomp(numericasZ, scale. = TRUE)
summary(pca)
## Importance of components:
##                          PC1    PC2    PC3     PC4     PC5     PC6
## Standard deviation     1.835 1.0958 0.7890 0.62298 0.48690 0.43075
## Proportion of Variance 0.561 0.2001 0.1038 0.06468 0.03951 0.03092
## Cumulative Proportion  0.561 0.7611 0.8649 0.92956 0.96908 1.00000

5.2 Selección de componentes

Ahora se presenta una gráfica que muestra el comportamiento del porcentaje de la varianza explicada por cada componente.

# Pca
fviz_eig(pca, addlabels = TRUE)

En la gráfica se observa que solamente hasta la componente principal número 5 se alcanza un valor por encima del 95% de la varianza explicada.

5.3 Visualización de resultados

fviz_pca_var(pca,col.var = "contrib",
gradient.cols = c("#1f77b4",  "#ff7f0e"),repel = TRUE)

En este caso, la componente 1 explica el 56.1% de la variabilidad en los datos. Mientras que la componente 2 explica el 20%. En conjunto capturan el 76,1% de la información.

Habitaciones, areaconst (área construida), y banios (baños) están agrupadas y apuntan en direcciones similares, indicando una fuerte correlación positiva entre ellas.

Parqueaderos está más cerca del centro, indicando menor influencia en la variabilidad de los datos.

Adicionalmente, a partir de esta gráfica se observa que existe una tendencia positiva entre el área construida y el precio. A medida que aumenta el área, aumenta el precio.

La relación entre área, precio y estrato indica que los estratos más bajos (3, 4) tienden a concentrarse en áreas más pequeñas y precios más bajos. Mientras que los más altos (5, 6) comprenden viviendas más grandes y precios más altos.

Las viviendas con número de habitaciones más alto tienden a estar en estratos más altos y precios más altos.

6. Análisis de conglomerados

6.1 Preparación de análisis

Para esta sección se usará el dataframe anterior con las variables cuantitativas del conjunto de datos, incluyendo el estrato como factor. En este caso se combinará el método PCA con la clasificación por conglomerados. A continuación se muestra un gráfico biplot donde se observan las variablesy los puntos en el mismo gráfico.

# ACP
ACP <- PCA(numericasZ, graph = FALSE)

# Gráfico
fviz_pca_biplot(ACP)

6.2 Visualización de resultados

Ahora se mostrará la diferenciación de clusters.

Cluster.Calificaciones <- HCPC(ACP,nb.clust = -1)

fviz_cluster(Cluster.Calificaciones,
             show.clust.cent = TRUE, 
             palette = "jco",         
             ggtheme = theme_minimal(),
             main = ""
)

Finalmente, se muestra el resumen de las variables por cluster.

Cluster=Cluster.Calificaciones$data.clust$clust
Base_Final=cbind(numericas,Cluster)
summary_by_cluster <- Base_Final %>%
  group_by(Cluster) %>%
  summarise_all(list(mean = mean, sd = sd))
summary_by_cluster
## # A tibble: 4 × 13
##   Cluster estrato_mean preciom_mean areaconst_mean parqueaderos_mean banios_mean
##   <fct>          <dbl>        <dbl>          <dbl>             <dbl>       <dbl>
## 1 1               4.05         220.           91.6              1.38        2.08
## 2 2               5.47         521.          173.               1.97        3.52
## 3 3               3.90         444.          298.               1.84        4.45
## 4 4               5.71        1131.          422.               3.80        5.14
## # ℹ 7 more variables: habitaciones_mean <dbl>, estrato_sd <dbl>,
## #   preciom_sd <dbl>, areaconst_sd <dbl>, parqueaderos_sd <dbl>,
## #   banios_sd <dbl>, habitaciones_sd <dbl>
  • El cluster 1 representa propiedades de menor costo con áreas construidas más pequeñas. Es ideal para compradores con un presupuesto limitado o que buscan opciones más asequibles. El número de parqueaderos es reducido, y las propiedades tienen menos habitaciones y baños en comparación con otros clusters.

  • El cluster 2 se caracteriza por un precio moderado y un buen equilibrio entre espacio y comodidad. Las propiedades son más grandes y cuentan con un mayor número de baños y habitaciones. Es una opción atractiva para compradores que buscan un equilibrio entre costo y comodidad.

  • El cluster 3 incluye propiedades con un gran espacio y un número importante de habitaciones y baños. Aunque el precio es alto, ofrece grandes ventajas en términos de tamaño y comodidad. Ideal para compradores que priorizan espacio y comodidad en sus hogares.

  • El cluster 4 representa viviendas de mayor costo, con el mayor espacio y la mayor cantidad de parqueaderos y baños. Es adecuado para compradores de alto poder adquisitivo que buscan lujo y confort.

7. Análisis de correspondencia

7.1 Preparación de análisis

Para este análisis de correspondencia se usarán 3 variables categóricas: zona, tipo y estrato. Se realiza la selección de las tres variables. Tal como se verificó anteriomente, las variables del conjunto de datos ya no contienen valores nulos.

La gráfica que se muestra a continuación contiene las 3 variables seleccionadas en el mismo plano mostrando la relación que existe entre ellas.

df_correspondencia <- vivienda[,c(2,3,9)]
z_t_e <- data.frame(
  var1 = as.factor(c(vivienda$tipo)),
  var2 = as.factor(c(vivienda$zona)),
  var3 = as.factor(c(vivienda$estrato))
)
mca2 <- MCA(z_t_e, graph = FALSE)

7.2 Visualización de resultados

fviz_mca_var(mca2, repel = TRUE, col.var="blue")

  • Dim1 y Dim2 comprenden el 21,1% y 17% respectivamente.
  • Zona Norte y Casa están asociadas, sugiriendo que en la Zona Norte es más común encontrar casas, probablemente de estrato alto, dado que Zona Norte se acerca a la categoría de Estrato 5.
  • Zona Oriente y Zona Centro están más alejadas del resto de las zonas, lo que podría indicar una diferenciación en el tipo de vivienda o estrato en comparación con las demás zonas.
  • El tipo Apartamento y Zona Sur están cercanos y podrían estar asociados con un estrato medio, teniendo en cuenta que Estrato 4 también está cerca.

8. Conclusiones

  1. Identificación de factores determinantes en las viviendas (PCA):

    • El análisis de reducción de dimensionalidad revela que el número de habitaciones es el factor más determinante en la valoración de propiedades, seguido por el área construida y el número de baños. Este hallazgo sugiere que el tamaño de la vivienda es un aspecto clave en la percepción de valor en el mercado.

    • Por otro lado, el precio y el estrato también juegan un papel importante, pero en menor medida. Esta información es crucial para la valoración precisa de las propiedades y puede orientar las decisiones de compra y venta, enfocándose en maximizar estos atributos para aumentar el valor percibido.

  2. Segmentación de mercado (Análisis de conglomerados):

    El análisis de conglomerados identifica cuatro segmentos de mercado claramente diferenciados:

    • Cluster 1: Viviendas de bajo costo con menos espacio y menos comodidades. Este segmento puede enfocarse en compradores con un presupuesto limitado.

    • Cluster 2: Viviendas de costo moderado con buen espacio y comodidades adecuadas. Este segmento es atractivo para familias de clase media.

    • Cluster 3: Propiedades de precio alto con espacio amplio y varias comodidades. Este segmento está orientado hacia compradores con mayor poder adquisitivo que buscan confort.

    • Cluster 4: Propiedades de alto costo con espacio muy amplio y muchas comodidades. Este segmento representa el lujo y exclusividad en el mercado.

      Estas segmentaciones permiten personalizar las estrategias de marketing y ventas para cada grupo, optimizando los esfuerzos según las características y necesidades de cada segmento.

  3. Relaciones geográficas y socioeconómicas (Análisis de correspondencia):

    • El análisis de correspondencia muestra patrones geográficos y socioeconómicos claros. Las casas se concentran en la Zona Norte y están asociadas con estratos altos (5), lo que sugiere que las estrategias de desarrollo en esta área deben centrarse en un público de mayor poder adquisitivo.

    • Los apartamentos se relacionan más con la Zona Sur y estratos medios (3), indicando un mercado orientado hacia la clase media en esta zona. Esta segmentación geográfica permite ajustar la oferta de propiedades según el perfil socioeconómico de los compradores potenciales.

    • Además, las viviendas en la Zona Oriente y Zona Centro muestran características únicas, sugiriendo la necesidad de estrategias diferenciadas que destaquen estos atributos.

    • La Zona Oeste y Estrato 6 están vinculadas a una segmentación más exclusiva, lo que requiere un enfoque que resalte el lujo y la exclusividad para atraer a compradores de alto nivel.