library(paqueteMODELOS)
## Loading required package: boot
## Loading required package: broom
## Warning: package 'broom' was built under R version 4.3.1
## Loading required package: GGally
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.2
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
## Loading required package: gridExtra
## Warning: package 'gridExtra' was built under R version 4.3.1
## Loading required package: knitr
## Warning: package 'knitr' was built under R version 4.3.2
## Loading required package: summarytools
## Warning: package 'summarytools' was built under R version 4.3.1
data(vivienda)
str(vivienda)
## spc_tbl_ [8,322 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ id : num [1:8322] 1147 1169 1350 5992 1212 ...
## $ zona : chr [1:8322] "Zona Oriente" "Zona Oriente" "Zona Oriente" "Zona Sur" ...
## $ piso : chr [1:8322] NA NA NA "02" ...
## $ estrato : num [1:8322] 3 3 3 4 5 5 4 5 5 5 ...
## $ preciom : num [1:8322] 250 320 350 400 260 240 220 310 320 780 ...
## $ areaconst : num [1:8322] 70 120 220 280 90 87 52 137 150 380 ...
## $ parqueaderos: num [1:8322] 1 1 2 3 1 1 2 2 2 2 ...
## $ banios : num [1:8322] 3 2 2 5 2 3 2 3 4 3 ...
## $ habitaciones: num [1:8322] 6 3 4 3 3 3 3 4 6 3 ...
## $ tipo : chr [1:8322] "Casa" "Casa" "Casa" "Casa" ...
## $ barrio : chr [1:8322] "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
## $ longitud : num [1:8322] -76.5 -76.5 -76.5 -76.5 -76.5 ...
## $ latitud : num [1:8322] 3.43 3.43 3.44 3.44 3.46 ...
## - attr(*, "spec")=List of 3
## ..$ cols :List of 13
## .. ..$ id : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ zona : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ piso : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ estrato : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ preciom : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ areaconst : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ parqueaderos: list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ banios : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ habitaciones: list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ tipo : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ barrio : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ longitud : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ latitud : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## ..$ default: list()
## .. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
## ..$ delim : chr ";"
## ..- attr(*, "class")= chr "col_spec"
## - attr(*, "problems")=<externalptr>
El reto principal consiste en realizar un análisis integral y multidimensional de la base de datos de oferta de oferta de viviendas, con el fin de obtener una comprensión del mercado inmobiliario urbano.
Se cuantifican datos faltantes o NA
faltantes <- colSums(is.na(vivienda))
faltantes
## id zona piso estrato preciom areaconst
## 3 3 2638 3 2 3
## parqueaderos banios habitaciones tipo barrio longitud
## 1605 3 3 3 3 3
## latitud
## 3
Visualización de datos faltantes
library(naniar)
## Warning: package 'naniar' was built under R version 4.3.1
gg_miss_var(vivienda)
library(mice)
## Warning: package 'mice' was built under R version 4.3.1
##
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
##
## filter
## The following objects are masked from 'package:base':
##
## cbind, rbind
grafico <-md.pattern(vivienda, rotate.names = TRUE)
De la última visualización se obtiene que existen 2 registros con sólo valores nulos y un registro que tiene solamente el precio, por lo anterior, se hace necesario eliminar esos 3 registros
vivienda <- vivienda %>%
filter(id != "NA")
# Se vuelve a graficar para verificar el borrado de registros
grafico <-md.pattern(vivienda, rotate.names = TRUE)
Se realiza imputación de datos reemplazando los valores nulos por la moda
moda_parqueaderos <- as.numeric(names(sort(table(vivienda$parqueaderos), decreasing = TRUE)[1]))
moda_parqueaderos
## [1] 1
moda_piso <- as.numeric(names(sort(table(vivienda$piso), decreasing = TRUE)[1]))
moda_piso
## [1] 2
vivienda$parqueaderos[is.na(vivienda$parqueaderos)] <- moda_parqueaderos
vivienda$piso[is.na(vivienda$piso)] <- moda_piso
# Se grafica de nuevo para verificar la noexistencia de valores nulos
grafico <-md.pattern(vivienda, rotate.names = TRUE)
## /\ /\
## { `---' }
## { O O }
## ==> V <== No need for mice. This data set is completely observed.
## \ \|/ /
## `-----'
Se convierte el atributo de Estrato a categórico
# Se convierte la columna para etiquetar con valores específicos
vivienda$estratoCat <- factor(vivienda$estrato, levels = c(3, 4, 5, 6), labels = c("Est3", "Est4", "Est5", "Est6"))
Debido a que este atributo se requiere posteriormente para el análisis de correspondencia, se hace necesario realizar una limpieza de los nombres dado que existen un número importante de nombres duplicados por el uso de mayúsculas y tildes. Para este fin se crea una función para pasar todos los nombres a minúsculas y remover las tildes y acentos.
Se importan las librerías requeridas para crear la función
library(stringdist)
## Warning: package 'stringdist' was built under R version 4.3.2
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
##
## combine
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Se crea la función convertir a minúsculas y remover acentos
clean_string <- function(x) {
tolower(iconv(x, from = "UTF-8", to = "ASCII//TRANSLIT"))
}
Se aplica la función creando un campo nuevo denominado “cleaned_barrio”
vivienda <- vivienda %>%
mutate(cleaned_barrio = clean_string(barrio))
Se realiza una verificación de la limpieza de la columna de “Barrios” imprimiendo la cantidad de nombres únicos antes y después de la transformación
# Antes de la limpieza
print(length(unique(vivienda$barrio)))
## [1] 436
# Posteior a la limpieza
print(length(unique(vivienda$cleaned_barrio)))
## [1] 389
Con el proceso de limpieza del atributo “Barrios” se removieron 47 nombres duplicados.
Resumen de Análisis exploratorio
summary(vivienda)
## id zona piso estrato
## Min. : 1 Length:8319 Length:8319 Min. :3.000
## 1st Qu.:2080 Class :character Class :character 1st Qu.:4.000
## Median :4160 Mode :character Mode :character Median :5.000
## Mean :4160 Mean :4.634
## 3rd Qu.:6240 3rd Qu.:5.000
## Max. :8319 Max. :6.000
## preciom areaconst parqueaderos banios
## Min. : 58.0 Min. : 30.0 Min. : 1.000 Min. : 0.000
## 1st Qu.: 220.0 1st Qu.: 80.0 1st Qu.: 1.000 1st Qu.: 2.000
## Median : 330.0 Median : 123.0 Median : 1.000 Median : 3.000
## Mean : 433.9 Mean : 174.9 Mean : 1.674 Mean : 3.111
## 3rd Qu.: 540.0 3rd Qu.: 229.0 3rd Qu.: 2.000 3rd Qu.: 4.000
## Max. :1999.0 Max. :1745.0 Max. :10.000 Max. :10.000
## habitaciones tipo barrio longitud
## Min. : 0.000 Length:8319 Length:8319 Min. :-76.59
## 1st Qu.: 3.000 Class :character Class :character 1st Qu.:-76.54
## Median : 3.000 Mode :character Mode :character Median :-76.53
## Mean : 3.605 Mean :-76.53
## 3rd Qu.: 4.000 3rd Qu.:-76.52
## Max. :10.000 Max. :-76.46
## latitud estratoCat cleaned_barrio
## Min. :3.333 Est3:1453 Length:8319
## 1st Qu.:3.381 Est4:2129 Class :character
## Median :3.416 Est5:2750 Mode :character
## Mean :3.418 Est6:1987
## 3rd Qu.:3.452
## Max. :3.498
Para el análisis de Componentes Principales se requiere incluir las variables numéricas que se consideran deben hacer parte de esta técnica de reducción de dmensionalidad. Aunque el PCA tiene el enfoque de analizar variables numéricas, los atributos categóricos pueden hacer parte del análisis si se convierten a numéricas aplicando algún método de codificación. Debido a la importancia que tienen los atributos “zona”, “estrato” y “tipo” de vivienda en el mercado inmobiliario, estos tres atributos se convertirán a numéricos aplicando la técnica de one-hot encoding.
Se convierten las variables categóricas usando one-hot encoding
encoded_zona <- as.data.frame(model.matrix(~ zona - 1, data = vivienda))
encoded_tipo <- as.data.frame(model.matrix(~ tipo - 1, data = vivienda))
encoded_estrato <- as.data.frame(model.matrix(~ estratoCat - 1, data = vivienda))
encoded_vivienda <- cbind(vivienda, encoded_tipo, encoded_zona, encoded_estrato)
Se crea un nuevo Set de Datos con los atributos numéricos que harán parte del PCA
vivienda_num <- data.frame(encoded_vivienda[c("preciom", "areaconst", "parqueaderos", "banios", "habitaciones", "tipoApartamento", "tipoCasa", "zonaZona Centro", "zonaZona Norte", "zonaZona Oeste", "zonaZona Oriente", "zonaZona Sur", "estratoCatEst3", "estratoCatEst4", "estratoCatEst5", "estratoCatEst6")])
Se estandarizan los datos
vivienda_numZ= as.data.frame(scale(vivienda_num))
Se realiza la Estimación de Componentes Principales
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
prcomp(vivienda_numZ)
## Standard deviations (1, .., p=16):
## [1] 2.060161e+00 1.621780e+00 1.417176e+00 1.241612e+00 1.099689e+00
## [6] 1.010206e+00 9.314288e-01 8.147032e-01 7.584668e-01 6.776377e-01
## [11] 6.083677e-01 4.900935e-01 4.119176e-01 3.508790e-15 1.969585e-15
## [16] 2.009371e-16
##
## Rotation (n x k) = (16 x 16):
## PC1 PC2 PC3 PC4 PC5
## preciom 0.39060327 0.25642843 -0.070854636 0.001839190 -0.041163793
## areaconst 0.41182342 -0.03362822 -0.001487844 0.056844264 -0.090449624
## parqueaderos 0.33779060 0.19543083 -0.002388425 0.039010511 -0.005381416
## banios 0.40839792 0.06059770 0.046257254 0.058434312 -0.050093160
## habitaciones 0.30585570 -0.26453304 0.023016700 0.017823918 0.010227089
## tipoApartamento -0.32592814 0.37646355 -0.097812064 -0.002137303 0.070341826
## tipoCasa 0.32592814 -0.37646355 0.097812064 0.002137303 -0.070341826
## zonaZona.Centro 0.01061323 -0.15017924 -0.103529518 -0.124157400 0.073982559
## zonaZona.Norte -0.08379545 -0.15090051 -0.319512356 0.394854690 -0.563709528
## zonaZona.Oeste 0.06609860 0.33042150 -0.352576478 -0.128804904 0.067917464
## zonaZona.Oriente 0.01404278 -0.29544953 -0.217029903 -0.240951673 0.364296162
## zonaZona.Sur 0.01613129 0.05079810 0.635092330 -0.116411056 0.265414287
## estratoCatEst3 -0.07079308 -0.39219869 -0.339999524 -0.205915565 0.203821745
## estratoCatEst4 -0.14062986 -0.04940305 0.352753326 -0.322158606 -0.543050148
## estratoCatEst5 -0.02241301 0.02759172 0.111943672 0.714270105 0.331751937
## estratoCatEst6 0.23169304 0.36935780 -0.181771570 -0.274968593 0.008270394
## PC6 PC7 PC8 PC9 PC10
## preciom 0.008595844 -0.08627165 -0.008715213 -0.145598078 0.03993274
## areaconst -0.011206442 0.02456728 -0.063358665 -0.155045088 -0.08381377
## parqueaderos -0.021094307 -0.23694752 -0.047688467 -0.466106815 -0.58401867
## banios -0.009803530 0.10025260 -0.344796717 0.179858326 0.16877712
## habitaciones -0.007264901 0.23768746 -0.558548688 0.375101257 -0.07160858
## tipoApartamento -0.005183513 -0.05324290 -0.456897705 -0.039811506 -0.07023484
## tipoCasa 0.005183513 0.05324290 0.456897705 0.039811506 0.07023484
## zonaZona.Centro 0.899666366 0.01186952 -0.121185525 -0.262801538 0.16246281
## zonaZona.Norte -0.083013517 -0.27207039 -0.080757444 -0.007765462 0.09501519
## zonaZona.Oeste 0.037451134 0.60463086 0.261226308 0.185714013 -0.25243209
## zonaZona.Oriente -0.420901116 0.14281252 -0.179918956 -0.524674114 0.31537265
## zonaZona.Sur -0.005200871 -0.25799830 -0.013800306 0.152193257 -0.06963076
## estratoCatEst3 0.011619504 -0.28318649 -0.037160322 0.239756916 -0.45420137
## estratoCatEst4 -0.038156884 0.33255868 -0.103427786 -0.242137067 -0.08222073
## estratoCatEst5 0.046575921 0.20971803 0.035760719 -0.121504510 0.05006125
## estratoCatEst6 -0.022681581 -0.31956578 0.099488250 0.168372602 0.43336569
## PC11 PC12 PC13 PC14
## preciom -0.30756973 0.190397273 0.78340219 -2.706664e-15
## areaconst -0.72764069 -0.210907130 -0.45618639 2.652930e-16
## parqueaderos 0.45150652 -0.112361555 -0.11165976 -2.111214e-16
## banios 0.18900022 0.715549706 -0.28961486 2.316535e-16
## habitaciones 0.17600024 -0.492255869 0.21880834 -4.190038e-16
## tipoApartamento -0.13505314 0.001308431 -0.03391396 -2.041480e-05
## tipoCasa 0.13505314 -0.001308431 0.03391396 -2.041480e-05
## zonaZona.Centro 0.03793444 -0.006183233 -0.01195925 3.553598e-02
## zonaZona.Norte 0.04510729 -0.017672478 0.01749772 1.235633e-01
## zonaZona.Oeste 0.01887506 0.003270166 -0.04605162 1.029632e-01
## zonaZona.Oriente 0.04981503 0.012551451 0.01104814 5.895372e-02
## zonaZona.Sur -0.08124415 0.009133268 0.01619944 1.452642e-01
## estratoCatEst3 -0.17392750 0.261003030 0.04838255 4.304793e-01
## estratoCatEst4 -0.01289490 0.063000841 0.06512091 4.947670e-01
## estratoCatEst5 0.00754463 -0.013646256 0.03214995 5.333626e-01
## estratoCatEst6 0.15974917 -0.281835393 -0.14520075 4.834338e-01
## PC15 PC16
## preciom 3.693191e-16 -4.598970e-17
## areaconst 1.124013e-15 9.467319e-17
## parqueaderos -7.922551e-16 -3.069120e-16
## banios -1.093410e-16 5.404131e-16
## habitaciones -1.519666e-17 -7.275848e-18
## tipoApartamento -1.330667e-02 7.069816e-01
## tipoCasa -1.330667e-02 7.069816e-01
## zonaZona.Centro -1.521520e-01 -2.862749e-03
## zonaZona.Norte -5.290529e-01 -9.954159e-03
## zonaZona.Oeste -4.408505e-01 -8.294626e-03
## zonaZona.Oriente -2.524182e-01 -4.749262e-03
## zonaZona.Sur -6.219677e-01 -1.170236e-02
## estratoCatEst3 1.005051e-01 1.904117e-03
## estratoCatEst4 1.155145e-01 2.188478e-03
## estratoCatEst5 1.245255e-01 2.359196e-03
## estratoCatEst6 1.128685e-01 2.138348e-03
res.pca <- prcomp(vivienda_numZ)
fviz_eig(res.pca, addlabels = TRUE)
fviz_pca_var(res.pca,
col.var = "contrib", # Color by contributions to the PC
gradient.cols = c("#FF7F00", "#034D94"),
repel = TRUE # Avoid text overlapping
)
En este análisis de PCA el primer componente principal (CP) explica el 26.5% de la variabilidad contenida en la base de datos, el segundo CP explica el 16.4%, el CP3 el 12.6%, el cuarto CP el 9.6%, el CP5 el 7.6%, el CP6 el 6.4% y el CP7 el 5.4%, entre estos siete primeros CP se explica más del 80% de la variabilidad de los datos, lo cual indica que se requieren de al menos estos 7 CP para resumir gran parte de la variabilidad que contiene la base de datos. La visualización de las variables en el plano de componentes principales permite identificar que el CP1 está asociado principalmente a los atributos de área construida, número de baños y precio, así como el CP2 está asociado mayormente al estrato 3, al tipo de vivienda en ambas clases (apartamento y casa) y al estrato 6. También se puede apreciar en la grafica la relación entre las variables de precio y número de parqueaderos, entre el número de baños y el área construida, entre el número de habitaciones con las viviendas tipo casa, entre el área construida con el número de baños y como las viviendas estrato 6 se encuentran ubicadas mayormente en la zona sur.
Se requiere para reducir el númer de variables por analizar considerar al menos las primeras 7 componentes principales, con el fin de explicar la variabilidad de los datos con un porcentaje superior al 80%.
Se recomienda para estimar los precios de las viviendas considerar no sólo la relación de esta variable con el estrato, se debe analizar la relación entre y con atributos de número de parqueaderos, número de baños y área construida, así como la relación entre ubicación y estrato, todo esto con el fin de que los precios estimados sean acordes a las características del mercado inmobiliario.
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. Para agrupar los registros de vivienda considerando la ubicación se selecciona el atributo o campo de zona.
Se convierte la zona y el estrato a un factor con niveles específicos
vivienda$zona <- factor(vivienda$zona, levels = c("Zona Oriente", "Zona Sur", "Zona Norte", "Zona Oeste", "Zona Centro"))
# Se convierte el factor a numérico
vivienda$zona_encoded <- as.numeric(vivienda$zona)
vivienda$estratoCat <- factor(vivienda$estratoCat, levels = c("Est3", "Est4", "Est5", "Est6"))
# Se convierte el factor a numérico
vivienda$estrato_encoded <- as.numeric(vivienda$estratoCat)
Se crea un nuevo Set de Datos con los atributos numéricos que harán parte del análisis de conglomerados
vivienda_clusters <- data.frame(vivienda[c("estrato_encoded", "zona_encoded")])
# Se estandarizan los datos
vivienda_clustersZ= as.data.frame(scale(vivienda_clusters))# datos estandarizados
str(vivienda_clustersZ)
## 'data.frame': 8319 obs. of 2 variables:
## $ estrato_encoded: num -1.587 -1.587 -1.587 -0.616 0.356 ...
## $ zona_encoded : num -1.804 -1.804 -1.804 -0.618 0.567 ...
Distribución de las viviendas por distancias
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.1
## Warning: package 'tidyr' was built under R version 4.3.1
## Warning: package 'readr' was built under R version 4.3.2
## Warning: package 'purrr' was built under R version 4.3.1
## Warning: package 'stringr' was built under R version 4.3.2
## Warning: package 'forcats' was built under R version 4.3.1
## Warning: package 'lubridate' was built under R version 4.3.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ✔ readr 2.1.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::combine() masks gridExtra::combine()
## ✖ tidyr::extract() masks stringdist::extract()
## ✖ 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
# distancia euclidiana
dist_viv <- dist(vivienda_clustersZ, method = 'euclidean')
# Cluster jerárquico con el método complete
hc_viv <- hclust(dist_viv, method = 'complete')
Se determina a dónde pertenece cada observación o vivienda. Se toman k = 5 como aproximación con el criterio del número de zonas. Se realiza el ejercicio con k = 3, k = 4 y k = 6 con fines de comparación de resultados.
cluster_assigk3 <- cutree(hc_viv, k = 3)
cluster_assigk4 <- cutree(hc_viv, k = 4)
cluster_assigk5 <- cutree(hc_viv, k = 5)
cluster_assigk6 <- cutree(hc_viv, k = 6)
Se estima el Índice de Silhouette promedio para los k escogidos con el fin de determinar cuál es el número de conglomerados que mejor se adapta a este conjunto de datos
library(cluster)
# Para k = 3
silk3 <- silhouette(cluster_assigk3, dist(vivienda_clustersZ))
silk3_avg <- mean(silk3[,3])
silk3_avg
## [1] 0.4468593
# Para k = 4
silk4 <- silhouette(cluster_assigk4, dist(vivienda_clustersZ))
silk4_avg <- mean(silk4[,3])
silk4_avg
## [1] 0.5771272
# Para k = 5
silk5 <- silhouette(cluster_assigk5, dist(vivienda_clustersZ))
silk5_avg <- mean(silk5[,3])
silk5_avg
## [1] 0.5915985
# Para k = 6
silk6 <- silhouette(cluster_assigk6, dist(vivienda_clustersZ))
silk6_avg <- mean(silk6[,3])
silk6_avg
## [1] 0.5598762
# Se imprime el coeficiente de Silhouette promedio para la k con mejor resultado
cat("Coeficiente de Silhouette promedio k=5 : ", silk5_avg)
## Coeficiente de Silhouette promedio k=5 : 0.5915985
Se asignan los clusters
assigned_cluster <- vivienda_clustersZ %>% mutate(cluster = as.factor(cluster_assigk5))
# Gráfico de puntos
ggplot(assigned_cluster, aes(x = estrato_encoded, y = zona_encoded, color = cluster)) +
geom_point(size = 10) +
geom_text(aes(label = cluster), vjust = -.8) + # Agregar etiquetas del clúster
theme_classic()
# Dendograma
plot(hc_viv, cex = 0.6, main = "Dendograma de Viviendas", las=1,
ylab = "Distancia euclidiana", xlab = "Grupos")
rect.hclust(hc_viv, k = 5, border = 2:5)
Clasificación de las viviendas
dendograma <- hclust(dist_viv, method = "average")
grp <- cutree(dendograma, k = 5)
El objeto grp contiene el conglomerado al cual fue asignado cada vivienda en caso de querer consultar un determinado grupo.
De los resultados obtenidos se puede apreciar que el mayor coeficiente de Silhoutte se obtuvo con k = 5, por lo que la mejor agrupación se daría con 5 conglomerados. Se revisaron otras opciones de k, siendo estas 3, 4 o 6 conglomerados, sin embargo, la métrica de Silhoutte muestra que la mejor opción es la de k = 5, lo cual podría indicar que el agrupamiento tiene coherencia con la cantidad de zonas. Pero éste sería un análisis limitado, una interpretación ajustada al gráfico de puntos indicaría que en el conglomerado 1 se encuentran viviendas que pertenecen a dos zonas y a dos estratos; en el conglomerado 2 estarían viviendas de las dos zonas anterioes y de otra zona adicional, y con dos estratos diferentes a los del conglomerado 1; en el conglomerado 3 estarían las viviendas que comparten una zona con el agruamiento anterior y con una zona adicional diferente a todas las anterioes, compartiendo los mismos estratos del conglomerado 1; en el conglomerado 4 estarían viviendas que comparten una zona cn el grupo anterior y estarían también las viviendas de la zona faltante, respecto al estrato estarían presente los mismos estratos del grupo 2; y en el conglomerado 5 estarían viviendas que comparten zona con el grupo anterior y los mismos estratos del grupo 3.
La agrupación de los registros de viviendas para obtener segmentos homogéneos con características similares de estrato y zona se debe realizar con un k = 5.
Para entender las características del mercado inmobiliario respecto a la relación entre estrato y zona se reocmienda realizar agrupación de los datos, esto con el fin de entender las características que presentan viviendas de diferentes estratos en una misma zona de la ciudad.
Se examina la relación entre las variables categóricas de tipo de vivienda, zona y barrio con el fin de determinar patrones de comportamiento de la oferta del mercado inmobiliario. Adiocionalmenete, se presenta como valor agregado el análisis de la relación entre los atributos de estrato y zona.
Para la revisón de la relación de las variables de tipo de vivienda, zona y barrio se sugiere abordar los siguientes pasos: 1. Crear un conjunto de datos para cada tipo de vivienda, casa y apartamento. 2. Evaluar la relación de la zona con respecto al barrio para las casas. 3. Evaluar la relación de la zona respecto al barrio para los apartamentos.
Se divide el conjunto de datos por tipo de vivienda
vivienda_apto = subset(vivienda, vivienda$tipo=="Apartamento")
vivienda_casa = subset(vivienda, vivienda$tipo=="Casa")
Se examina la relación entre zona y barrio para las casas
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.3.2
# se crea la tabla de contingencia
tblCntCasas <- table(vivienda_casa$cleaned_barrio, vivienda_casa$zona)
tblCntCasas
##
## Zona Oriente Zona Sur Zona Norte Zona Oeste
## 20 de julio 3 0 0 0
## 3 de julio 0 1 0 0
## acopi 0 0 70 0
## agua blanca 1 0 0 0
## aguablanca 1 0 0 0
## aguacatal 0 0 0 11
## alameda 0 3 0 0
## alameda del rio 0 0 1 0
## alamos 0 0 3 0
## alborada 0 1 0 0
## alf?crez real 0 1 0 0
## alferez real 0 1 0 0
## alfonso lopez 20 0 0 0
## alfonso lopez i 1 0 0 0
## altos de guadalupe 0 2 0 1
## antonio narino 2 0 0 0
## aranjuez 0 1 0 0
## arboleda campestre candelaria 1 0 0 0
## atanasio girardot 7 0 1 0
## autopista sur 1 0 0 0
## barranquilla 0 0 3 0
## barrio 7de agosto 1 0 0 0
## barrio el recuerdo 1 0 0 0
## barrio eucaristico 0 1 0 0
## barrio obrero 0 0 0 0
## barrio tranquilo y 0 0 1 0
## base a?crea 0 0 2 0
## belalcazar 0 1 0 0
## bella suiza 0 0 0 7
## bella suiza alta 0 2 0 1
## bellavista 0 0 0 7
## benjamin herrera 6 0 0 0
## berlin 0 0 1 0
## bosques del limonar 0 9 0 0
## boyaca 1 0 0 0
## bretana 0 3 0 0
## brisas de guadalupe 0 1 0 0
## brisas de los 0 0 22 0
## brisas del guabito 0 0 1 0
## buenos aires 0 3 0 0
## cali 0 1 13 0
## cali canto 0 1 0 0
## calibella 0 0 1 0
## calicanto 0 6 0 0
## calicanto viii 0 1 0 0
## calima 0 0 6 0
## calimio norte 0 0 3 0
## calipso 7 0 0 0
## cambulos 0 0 1 0
## camino real 0 21 0 0
## canasgordas 0 2 0 0
## canaveralejo 0 3 0 0
## canaverales 0 2 0 0
## caney 0 30 0 0
## caney especial 0 4 0 0
## capri 0 13 0 0
## cascajal 0 1 0 0
## ceibas 1 0 0 0
## centenario 0 0 3 0
## centro 0 0 0 0
## cerros de guadalupe 0 1 0 0
## champagnat 0 13 0 0
## chapinero 6 0 1 0
## chipichape 0 0 5 0
## ciudad 2000 0 77 0 0
## ciudad antejardin 0 1 0 0
## ciudad capri 0 4 0 0
## ciudad cordoba 33 1 0 0
## ciudad cordoba reservado 1 0 0 0
## ciudad country 0 1 0 0
## ciudad del campo 1 0 0 0
## ciudad jardin 0 310 0 0
## ciudad los alamos 0 0 11 0
## ciudad modelo 5 1 0 0
## ciudad real 0 3 0 0
## ciudad talanga 1 0 0 0
## ciudadela comfandi 0 15 0 0
## ciudadela del rio 1 0 0 0
## ciudadela paso ancho 0 1 0 0
## ciudadela pasoancho 0 18 0 0
## colinas del bosque 0 0 1 0
## colinas del sur 0 5 0 0
## colon 0 1 0 0
## colseguros 0 21 0 0
## colseguros andes 0 4 0 0
## compartir 1 0 0 0
## cristales 0 0 1 10
## cristobal colon 0 14 0 0
## cuarto de legua 0 14 0 0
## departamental 0 13 0 0
## el bosque 0 0 37 0
## el caney 0 84 0 0
## el castillo 0 6 0 0
## el cedro 0 7 1 0
## el diamante 2 0 0 0
## el gran limonar 0 4 1 0
## el guabal 0 15 0 0
## el guabito 0 0 1 0
## el ingenio 0 75 0 0
## el ingenio i 0 6 0 0
## el ingenio ii 0 12 0 0
## el ingenio iii 0 10 0 0
## el jardin 10 1 0 0
## el lido 0 25 0 0
## el limonar 0 76 0 0
## el nacional 0 0 0 1
## el paraiso 3 0 0 0
## el penon 0 0 0 4
## el prado 1 0 0 0
## el refugio 0 43 0 0
## el rodeo 1 0 0 0
## el sena 0 0 1 0
## el tr?cbol 4 0 1 0
## el troncal 11 0 0 0
## el vallado 1 0 0 0
## eucaristico 0 2 0 0
## evaristo garcia 0 0 1 0
## farrallones de pance 0 1 0 0
## fenalco kennedy 1 0 0 0
## flora industrial 0 0 4 0
## floralia 0 0 3 0
## fonaviemcali 1 0 0 0
## francisco eladio ramirez 0 1 0 0
## gaitan 0 0 1 0
## gran limonar 0 16 0 0
## granada 0 0 10 0
## guadalupe 0 11 0 0
## guayaquil 0 1 0 0
## hacienda alferez real 0 1 0 0
## ingenio i 0 1 0 0
## jamundi 0 4 0 0
## jamundi alfaguara 0 1 0 0
## jorge eliecer gaitan 0 0 1 0
## jorge isaacs 0 0 0 0
## jose manuel marroquin 1 0 0 0
## juanamb?? 0 0 11 1
## junin 1 3 0 0
## la alborada 0 1 0 0
## la base 10 0 1 0
## la buitrera 0 3 0 0
## la campina 0 0 4 0
## la cascada 0 4 0 1
## la ceibas 1 0 0 0
## la esmeralda 0 0 1 0
## la flora 0 0 100 0
## la floresta 11 0 2 0
## la fortaleza 4 0 0 0
## la gran colombia 1 0 0 0
## la hacienda 0 57 0 0
## la independencia 10 2 0 0
## la libertad 0 2 0 0
## la merced 0 0 24 0
## la morada 0 0 0 0
## la nueva base 5 0 0 0
## la playa 0 1 0 0
## la portada al 0 1 0 0
## la primavera 1 0 0 0
## la reforma 0 1 0 0
## la rivera 0 0 9 0
## la rivera i 1 0 1 0
## la rivera ii 0 0 2 0
## la riverita 0 1 0 0
## la riviera 0 0 1 0
## la selva 0 4 0 0
## la villa del 0 0 1 0
## las acacias 0 10 1 0
## las am?cricas 1 0 1 0
## las ceibas 13 0 2 0
## las delicias 0 0 3 0
## las granjas 0 2 1 0
## las quintas de 0 1 0 0
## las vegas 0 1 0 0
## libertadores 0 2 0 1
## los andes 0 0 13 0
## los cambulos 0 8 0 0
## los cristales 0 0 0 17
## los farallones 0 2 0 0
## los guaduales 0 0 10 0
## los guayacanes 0 0 2 0
## los jockeys 0 1 0 0
## los libertadores 0 1 0 2
## lourdes 0 2 0 0
## mamellan 0 0 0 1
## manzanares 0 0 1 0
## mariano ramos 1 0 0 0
## marroquin iii 1 0 0 0
## mayapan las vegas 0 14 0 0
## mel?cndez 0 2 0 0
## melendez 0 12 0 0
## menga 0 0 2 0
## metropolitano del norte 0 0 1 0
## miraflores 0 0 0 19
## morichal de comfandi 2 0 0 0
## municipal 3 0 0 0
## napoles 0 18 0 0
## normandia 0 0 0 4
## norte 0 0 0 1
## nueva base 1 0 0 0
## nueva floresta 11 3 0 0
## nueva tequendama 0 35 1 0
## oasis de comfandi 0 0 1 0
## occidente 0 0 1 0
## pacara 0 0 2 0
## palmas del ingenio 0 1 0 0
## pampa linda 0 13 0 0
## pampalinda 0 9 0 0
## panamericano 0 7 0 0
## pance 0 206 0 0
## parcelaciones pance 0 43 0 0
## parque residencial el 0 0 1 0
## paseo de los 0 0 2 0
## paso del comercio 0 0 2 0
## pasoancho 0 1 0 0
## poblado campestre 0 1 1 0
## popular 0 0 5 0
## portada de comfandi 0 0 1 0
## portales de comfandi 0 0 1 0
## porvenir 0 0 2 0
## prados de oriente 4 0 0 0
## prados del limonar 0 17 0 0
## prados del norte 0 0 31 0
## prados del sur 0 2 0 0
## primavera 1 0 0 1
## primero de mayo 0 13 0 0
## primitivo crespo 3 0 0 0
## puente palma 0 1 0 0
## quintas de don 0 15 0 0
## quintas de salomia 3 0 1 0
## rafael uribe uribe 1 0 0 0
## rep??blica de israel 1 0 0 0
## riveras del valle 0 1 0 0
## rozo la torre 0 0 1 0
## saavedra galindo 3 0 0 0
## salomia 0 0 20 0
## san antonio 0 0 0 19
## san bosco 0 0 0 0
## san carlos 3 0 0 0
## san cayetano 0 0 0 8
## san fernando 0 31 0 2
## san fernando nuevo 0 6 0 0
## san fernando viejo 0 12 0 0
## san joaquin 0 19 0 0
## san juan bosco 0 0 0 0
## san judas 0 1 0 0
## san judas tadeo 0 2 0 0
## san luis 0 0 3 0
## san nicolas 0 0 0 0
## san vicente 0 0 31 1
## santa anita 0 10 0 1
## santa anita sur 0 1 0 0
## santa barbara 1 0 1 0
## santa elena 0 9 0 0
## santa fe 8 0 0 0
## santa helena de 0 0 0 0
## santa isabel 0 9 0 11
## santa monica 0 0 18 0
## santa monica norte 0 0 1 0
## santa monica popular 5 1 0 0
## santa monica residencial 0 0 20 1
## santa rita 0 0 0 8
## santa teresita 0 0 0 12
## santafe 1 0 0 0
## santander 0 0 1 0
## santo domingo 0 5 0 0
## seminario 0 9 0 0
## siete de agosto 7 0 0 0
## simon bolivar 1 0 0 0
## tejares cristales 0 0 0 3
## tejares de san 0 3 1 8
## templete 0 2 0 0
## tequendama 0 29 0 0
## tequendema 0 1 0 0
## terron colorado 0 0 0 1
## torres de comfandi 0 0 2 0
## union de vivienda 0 0 1 0
## urbanizacion barranquilla 0 0 2 0
## urbanizacion boyaca 1 0 0 0
## urbanizacion colseguros 0 1 0 0
## urbanizacion el saman 0 1 0 0
## urbanizacion la flora 0 0 23 0
## urbanizacion la merced 0 0 4 0
## urbanizacion la nueva 2 0 1 0
## urbanizacion las cascadas 0 1 0 0
## urbanizacion lili 0 2 0 0
## urbanizacion nueva granada 0 2 0 0
## urbanizacion rio lili 0 2 0 0
## urbanizacion san joaquin 0 4 0 0
## urbanizacion tequendama 0 5 0 0
## valle del lili 0 167 1 0
## versalles 0 0 16 0
## villa colombia 5 0 1 0
## villa de veracruz 0 0 4 0
## villa del lago 6 0 0 0
## villa del prado 0 0 41 0
## villa del sol 0 0 12 0
## villa del sur 1 1 0 0
## villas de veracruz 0 0 8 0
## vipasa 0 1 30 0
## zona centro 0 0 0 0
## zona norte 0 0 19 0
## zona oeste 0 0 0 4
## zona oriente 15 0 1 0
## zona sur 0 42 0 0
##
## Zona Centro
## 20 de julio 0
## 3 de julio 0
## acopi 0
## agua blanca 0
## aguablanca 0
## aguacatal 0
## alameda 9
## alameda del rio 0
## alamos 0
## alborada 0
## alf?crez real 0
## alferez real 0
## alfonso lopez 0
## alfonso lopez i 0
## altos de guadalupe 0
## antonio narino 0
## aranjuez 14
## arboleda campestre candelaria 0
## atanasio girardot 0
## autopista sur 0
## barranquilla 0
## barrio 7de agosto 0
## barrio el recuerdo 0
## barrio eucaristico 0
## barrio obrero 1
## barrio tranquilo y 0
## base a?crea 0
## belalcazar 3
## bella suiza 0
## bella suiza alta 0
## bellavista 0
## benjamin herrera 2
## berlin 0
## bosques del limonar 0
## boyaca 0
## bretana 11
## brisas de guadalupe 0
## brisas de los 0
## brisas del guabito 0
## buenos aires 0
## cali 0
## cali canto 0
## calibella 0
## calicanto 0
## calicanto viii 0
## calima 0
## calimio norte 0
## calipso 0
## cambulos 0
## camino real 0
## canasgordas 0
## canaveralejo 0
## canaverales 0
## caney 0
## caney especial 0
## capri 0
## cascajal 0
## ceibas 0
## centenario 0
## centro 3
## cerros de guadalupe 0
## champagnat 0
## chapinero 0
## chipichape 0
## ciudad 2000 0
## ciudad antejardin 0
## ciudad capri 0
## ciudad cordoba 0
## ciudad cordoba reservado 0
## ciudad country 0
## ciudad del campo 0
## ciudad jardin 0
## ciudad los alamos 0
## ciudad modelo 0
## ciudad real 0
## ciudad talanga 0
## ciudadela comfandi 0
## ciudadela del rio 0
## ciudadela paso ancho 0
## ciudadela pasoancho 0
## colinas del bosque 0
## colinas del sur 0
## colon 0
## colseguros 1
## colseguros andes 0
## compartir 0
## cristales 0
## cristobal colon 0
## cuarto de legua 0
## departamental 0
## el bosque 0
## el caney 0
## el castillo 0
## el cedro 0
## el diamante 0
## el gran limonar 0
## el guabal 0
## el guabito 0
## el ingenio 0
## el ingenio i 0
## el ingenio ii 0
## el ingenio iii 0
## el jardin 0
## el lido 0
## el limonar 0
## el nacional 0
## el paraiso 0
## el penon 0
## el prado 0
## el refugio 0
## el rodeo 0
## el sena 0
## el tr?cbol 0
## el troncal 1
## el vallado 0
## eucaristico 0
## evaristo garcia 0
## farrallones de pance 0
## fenalco kennedy 0
## flora industrial 0
## floralia 0
## fonaviemcali 0
## francisco eladio ramirez 0
## gaitan 0
## gran limonar 0
## granada 0
## guadalupe 0
## guayaquil 13
## hacienda alferez real 0
## ingenio i 0
## jamundi 0
## jamundi alfaguara 0
## jorge eliecer gaitan 0
## jorge isaacs 1
## jose manuel marroquin 0
## juanamb?? 0
## junin 18
## la alborada 0
## la base 0
## la buitrera 0
## la campina 0
## la cascada 0
## la ceibas 0
## la esmeralda 0
## la flora 0
## la floresta 0
## la fortaleza 0
## la gran colombia 0
## la hacienda 0
## la independencia 0
## la libertad 0
## la merced 0
## la morada 1
## la nueva base 0
## la playa 0
## la portada al 0
## la primavera 0
## la reforma 0
## la rivera 0
## la rivera i 0
## la rivera ii 0
## la riverita 0
## la riviera 0
## la selva 0
## la villa del 0
## las acacias 0
## las am?cricas 0
## las ceibas 0
## las delicias 0
## las granjas 0
## las quintas de 0
## las vegas 0
## libertadores 0
## los andes 0
## los cambulos 0
## los cristales 0
## los farallones 0
## los guaduales 0
## los guayacanes 0
## los jockeys 0
## los libertadores 1
## lourdes 0
## mamellan 0
## manzanares 0
## mariano ramos 0
## marroquin iii 0
## mayapan las vegas 0
## mel?cndez 0
## melendez 0
## menga 0
## metropolitano del norte 0
## miraflores 1
## morichal de comfandi 0
## municipal 0
## napoles 0
## normandia 0
## norte 0
## nueva base 0
## nueva floresta 0
## nueva tequendama 0
## oasis de comfandi 0
## occidente 0
## pacara 0
## palmas del ingenio 0
## pampa linda 0
## pampalinda 0
## panamericano 0
## pance 0
## parcelaciones pance 0
## parque residencial el 0
## paseo de los 0
## paso del comercio 0
## pasoancho 0
## poblado campestre 0
## popular 0
## portada de comfandi 0
## portales de comfandi 0
## porvenir 0
## prados de oriente 0
## prados del limonar 0
## prados del norte 0
## prados del sur 0
## primavera 0
## primero de mayo 0
## primitivo crespo 0
## puente palma 0
## quintas de don 0
## quintas de salomia 0
## rafael uribe uribe 0
## rep??blica de israel 0
## riveras del valle 0
## rozo la torre 0
## saavedra galindo 0
## salomia 0
## san antonio 4
## san bosco 4
## san carlos 1
## san cayetano 1
## san fernando 0
## san fernando nuevo 0
## san fernando viejo 0
## san joaquin 0
## san juan bosco 6
## san judas 0
## san judas tadeo 0
## san luis 0
## san nicolas 2
## san vicente 0
## santa anita 0
## santa anita sur 0
## santa barbara 0
## santa elena 0
## santa fe 0
## santa helena de 1
## santa isabel 0
## santa monica 0
## santa monica norte 0
## santa monica popular 0
## santa monica residencial 0
## santa rita 0
## santa teresita 0
## santafe 0
## santander 0
## santo domingo 0
## seminario 0
## siete de agosto 0
## simon bolivar 0
## tejares cristales 0
## tejares de san 0
## templete 0
## tequendama 0
## tequendema 0
## terron colorado 0
## torres de comfandi 0
## union de vivienda 0
## urbanizacion barranquilla 0
## urbanizacion boyaca 0
## urbanizacion colseguros 0
## urbanizacion el saman 0
## urbanizacion la flora 0
## urbanizacion la merced 0
## urbanizacion la nueva 0
## urbanizacion las cascadas 0
## urbanizacion lili 0
## urbanizacion nueva granada 0
## urbanizacion rio lili 0
## urbanizacion san joaquin 0
## urbanizacion tequendama 0
## valle del lili 0
## versalles 0
## villa colombia 0
## villa de veracruz 0
## villa del lago 0
## villa del prado 0
## villa del sol 0
## villa del sur 0
## villas de veracruz 0
## vipasa 0
## zona centro 1
## zona norte 0
## zona oeste 0
## zona oriente 0
## zona sur 0
Se aplica Test Chi-cuadrado para la tabla de contingencia de casas.
chisq.test(tblCntCasas)
## Warning in chisq.test(tblCntCasas): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: tblCntCasas
## X-squared = 11324, df = 1208, p-value < 2.2e-16
El resultado indica que se rechaza la hipótesis de independencia de las variables. Se estima el mapa factorial del análsis de correspondencia para las casas
library(ade4)
## Warning: package 'ade4' was built under R version 4.3.2
##
## Attaching package: 'ade4'
## The following object is masked from 'package:FactoMineR':
##
## reconst
library(FactoMineR)
library(factoextra)
library(gridExtra)
library(tidyr)
res_ac_casas <- CA(tblCntCasas)
Valores de la varianza acumulada utilizando los valores propios de la matriz de discrepancias de casas
valores_prop <-res_ac_casas$eig ; valores_prop
## eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.9692930 27.55396 27.55396
## dim 2 0.9078534 25.80742 53.36138
## dim 3 0.8711218 24.76326 78.12463
## dim 4 0.7695316 21.87537 100.00000
fviz_screeplot(res_ac_casas, addlabels = TRUE, ylim = c(0, 80))+ggtitle("")+
ylab("Porcentaje de varianza explicado") + xlab("Ejes")
Se examina la relación entre zona y barrio para los apartamentos
# se crea la tabla de contingencia
tblCntApto <- table(vivienda_apto$cleaned_barrio, vivienda_apto$zona)
tblCntApto
##
## Zona Oriente Zona Sur Zona Norte Zona Oeste
## acopi 0 1 87 0
## aguablanca 0 1 0 0
## aguacatal 0 1 0 97
## alameda 0 2 0 0
## alameda del rio 0 0 2 0
## alamos 0 0 11 0
## alcazares 0 0 2 0
## alf?crez real 0 4 0 0
## alferez real 0 1 0 0
## alfonso lopez 2 0 0 0
## alto jordan 0 1 0 0
## altos de guadalupe 0 1 0 0
## altos de menga 0 0 3 0
## altos de santa 0 0 0 1
## arboleda 0 1 0 4
## arboledas 0 0 0 38
## atanasio girardot 1 0 0 0
## bajo aguacatal 0 0 0 1
## barranquilla 0 0 3 0
## belisario caicedo 0 2 0 0
## bella suiza 0 5 0 6
## bella suiza alta 0 0 0 1
## bellavista 0 0 0 36
## bloques del limonar 0 1 0 0
## bochalema 0 33 0 0
## bolivariano 0 0 1 0
## bosques de alboleda 0 0 0 1
## bosques del limonar 0 12 0 0
## bretana 0 0 0 0
## brisas de los 0 0 60 0
## brisas del limonar 0 1 0 0
## bueno madrid 0 0 1 0
## buenos aires 0 4 0 0
## caldas 0 1 0 0
## cali 0 3 20 0
## cali bella 0 0 1 0
## calicanto 0 2 0 0
## calimio norte 0 0 2 0
## calipso 4 0 0 0
## cambulos 0 2 0 0
## camino real 0 15 0 0
## campestre 0 1 0 0
## canasgordas 0 5 0 0
## canaveralejo 0 9 0 0
## canaverales 0 19 0 0
## canaverales los samanes 0 1 0 0
## caney 0 58 0 0
## caney especial 0 1 0 0
## capri 0 43 0 0
## cataya real 0 1 0 0
## centelsa 0 0 0 0
## centenario 0 0 10 3
## centro 0 0 0 0
## cerro cristales 0 1 0 21
## champagnat 0 1 0 0
## chiminangos 0 0 18 0
## chiminangos 1 etapa 1 0 0 0
## chiminangos 2 etapa 0 0 2 0
## chipichape 0 0 25 0
## ciudad 2000 0 19 0 0
## ciudad bochalema 0 48 0 0
## ciudad capri 0 9 0 0
## ciudad cordoba 1 0 0 0
## ciudad jardin 0 227 3 0
## ciudad jardin pance 0 1 0 0
## ciudad los alamos 0 0 15 0
## ciudad mel?cndez 0 1 0 0
## ciudad melendez 0 1 0 0
## ciudad modelo 1 0 0 0
## ciudad pacifica 0 3 0 0
## ciudad universitaria 0 1 0 0
## ciudadela comfandi 0 2 0 0
## ciudadela melendez 0 1 0 0
## ciudadela pasoancho 0 3 0 0
## colinas de menga 0 0 3 0
## colinas del sur 0 3 0 0
## colseguros 0 22 0 0
## colseguros andes 0 1 0 0
## comfenalco 0 0 1 0
## conjunto gibraltar 0 0 1 0
## cristales 0 1 0 71
## cristobal colon 0 2 0 0
## cuarto de legua 0 30 0 0
## departamental 0 16 0 0
## ed benjamin herrera 0 0 0 0
## el bosque 0 0 13 0
## el caney 0 125 0 0
## el dorado 0 6 0 0
## el gran limonar 0 3 0 0
## el guabal 0 4 0 0
## el ingenio 0 128 0 0
## el ingenio 3 0 1 0 0
## el ingenio i 0 13 0 0
## el ingenio ii 0 9 0 0
## el ingenio iii 0 10 0 0
## el jardin 4 0 0 0
## el jordan 0 1 0 0
## el lido 0 33 1 0
## el limonar 0 59 0 0
## el penon 0 0 1 55
## el prado 1 0 0 0
## el refugio 0 77 0 0
## el troncal 5 0 2 0
## evaristo garcia 0 0 1 0
## fepicol 1 0 0 0
## flora 0 0 1 0
## flora industrial 0 0 11 0
## floralia 0 0 3 0
## fuentes de la 0 1 0 0
## gran limonar 0 8 0 0
## granada 0 0 5 0
## guadalupe 0 10 0 0
## guadalupe alto 0 0 0 1
## guaduales 0 0 2 0
## guayaquil 0 0 1 0
## ingenio 0 1 0 0
## ingenio ii 0 1 0 0
## juanamb?? 0 0 33 8
## juanambu 0 0 1 1
## junin 0 0 0 0
## la alborada 0 4 0 0
## la alianza 0 0 5 0
## la arboleda 0 0 0 18
## la base 4 0 0 0
## la campina 0 0 9 0
## la cascada 0 2 0 0
## la flora 0 1 267 0
## la floresta 5 0 0 0
## la hacienda 0 109 0 0
## la luisa 0 1 0 0
## la merced 0 0 0 0
## la nueva base 3 0 0 0
## la rivera 0 0 2 0
## la selva 0 7 0 0
## laflora 0 0 1 0
## lares de comfenalco 0 0 1 0
## las acacias 0 1 0 0
## las am?cricas 0 0 1 0
## las camelias 0 1 0 0
## las ceibas 6 0 2 0
## las delicias 0 0 2 0
## las granjas 0 7 0 0
## las vegas de 0 1 0 0
## los alamos 0 0 1 0
## los alcazares 0 0 22 0
## los andes 0 0 8 0
## los cambulos 0 22 1 0
## los cristales 0 0 0 137
## los cristales club 0 0 0 1
## los farallones 0 2 0 0
## los guaduales 1 0 15 0
## los guayacanes 0 0 1 0
## los parques barranquilla 0 0 6 0
## los robles 0 0 1 0
## manzanares 0 0 4 0
## mayapan las vegas 1 31 0 0
## mel?cndez 1 19 0 1
## melendez 0 40 0 0
## menga 0 0 21 0
## metropolitano del norte 0 0 20 0
## miradol del aguacatal 0 0 0 1
## miraflores 0 1 0 5
## morichal de comfandi 1 0 0 0
## multicentro 0 27 0 0
## napoles 0 13 0 0
## normandia 0 1 0 154
## normandia west point 0 0 0 1
## norte 0 0 1 7
## norte la flora 0 0 1 0
## nueva floresta 1 0 0 0
## nueva tequendama 0 36 0 0
## oasis de comfandi 0 0 5 0
## oasis de pasoancho 0 1 0 0
## occidente 0 0 9 1
## pacara 0 0 21 0
## pampa linda 0 13 0 0
## pampalinda 0 3 0 0
## panamericano 0 2 0 0
## pance 1 205 0 0
## parcelaciones pance 0 18 0 0
## paso del comercio 0 0 4 0
## pasoancho 0 5 0 0
## ponce 0 1 0 0
## popular 0 0 1 0
## portada de comfandi 0 0 1 0
## porvenir 0 0 1 0
## prados de oriente 2 0 0 0
## prados del limonar 0 4 0 0
## prados del norte 0 0 94 1
## primero de mayo 0 24 0 0
## puente del comercio 0 0 6 0
## quintas de don 0 58 0 0
## refugio 0 1 0 1
## rincon de la 0 0 1 0
## rincon de salomia 0 0 1 0
## saavedra galindo 1 0 0 0
## salomia 0 0 20 0
## samanes 0 1 0 0
## samanes de guadalupe 0 1 0 0
## sameco 0 0 1 0
## san antonio 0 0 0 1
## san bosco 0 2 0 0
## san fernando 0 19 2 1
## san fernando nuevo 0 4 0 0
## san fernando viejo 0 5 0 1
## san joaquin 0 1 0 0
## san juan bosco 0 0 0 0
## san pedro 0 0 1 0
## san vicente 0 0 16 0
## santa 0 0 0 1
## santa anita 0 38 0 0
## santa barbara 0 0 0 1
## santa elena 0 1 0 0
## santa isabel 0 7 0 37
## santa monica 0 0 37 0
## santa monica alta 0 0 1 0
## santa monica norte 0 0 1 0
## santa monica popular 2 0 0 1
## santa monica residencial 0 0 19 4
## santa rita 0 0 0 37
## santa rosa 0 0 0 0
## santa teresita 0 6 2 243
## santo domingo 0 1 0 0
## sector aguacatal 0 1 0 0
## sector canaveralejo guadalupe 0 2 0 0
## seminario 0 22 0 1
## sierras de normandia 0 0 0 1
## siete de agosto 1 0 0 0
## tejares cristales 0 0 0 1
## tejares de san 0 0 0 2
## templete 0 2 0 0
## tequendama 0 14 1 0
## torres de comfandi 0 0 53 0
## unicentro cali 0 1 0 0
## union de vivienda 2 0 0 0
## urbanizacion barranquilla 0 0 2 0
## urbanizacion colseguros 0 2 0 0
## urbanizacion gratamira 0 1 0 0
## urbanizacion la flora 0 0 60 0
## urbanizacion la nueva 0 0 1 0
## urbanizacion nueva granada 0 1 0 0
## urbanizacion pacara 0 0 1 0
## urbanizacion rio lili 0 3 0 0
## urbanizacion tequendama 0 2 0 0
## valle de lili 0 1 0 0
## valle del lili 0 838 3 0
## valle grande 1 0 0 0
## versalles 0 1 54 0
## villa de veracruz 0 0 2 0
## villa del lago 4 0 0 0
## villa del parque 0 0 1 0
## villa del prado 0 0 11 0
## villa del sol 0 0 13 0
## villa del sur 2 1 0 0
## villas de veracruz 0 0 1 0
## vipasa 0 1 0 0
## zona norte 0 0 11 2
## zona norte los 0 0 1 0
## zona oeste 0 0 0 22
## zona oriente 2 0 0 0
## zona residencial 0 0 1 0
## zona sur 0 32 0 0
##
## Zona Centro
## acopi 0
## aguablanca 0
## aguacatal 0
## alameda 2
## alameda del rio 0
## alamos 0
## alcazares 0
## alf?crez real 0
## alferez real 0
## alfonso lopez 0
## alto jordan 0
## altos de guadalupe 0
## altos de menga 0
## altos de santa 0
## arboleda 0
## arboledas 0
## atanasio girardot 0
## bajo aguacatal 0
## barranquilla 0
## belisario caicedo 0
## bella suiza 0
## bella suiza alta 0
## bellavista 0
## bloques del limonar 0
## bochalema 0
## bolivariano 0
## bosques de alboleda 0
## bosques del limonar 0
## bretana 2
## brisas de los 0
## brisas del limonar 0
## bueno madrid 0
## buenos aires 0
## caldas 0
## cali 0
## cali bella 0
## calicanto 0
## calimio norte 0
## calipso 0
## cambulos 0
## camino real 0
## campestre 0
## canasgordas 0
## canaveralejo 0
## canaverales 0
## canaverales los samanes 0
## caney 0
## caney especial 0
## capri 0
## cataya real 0
## centelsa 1
## centenario 0
## centro 1
## cerro cristales 0
## champagnat 0
## chiminangos 0
## chiminangos 1 etapa 0
## chiminangos 2 etapa 0
## chipichape 0
## ciudad 2000 0
## ciudad bochalema 0
## ciudad capri 0
## ciudad cordoba 0
## ciudad jardin 0
## ciudad jardin pance 0
## ciudad los alamos 0
## ciudad mel?cndez 0
## ciudad melendez 0
## ciudad modelo 0
## ciudad pacifica 0
## ciudad universitaria 0
## ciudadela comfandi 0
## ciudadela melendez 0
## ciudadela pasoancho 0
## colinas de menga 0
## colinas del sur 0
## colseguros 0
## colseguros andes 0
## comfenalco 0
## conjunto gibraltar 0
## cristales 0
## cristobal colon 0
## cuarto de legua 0
## departamental 0
## ed benjamin herrera 1
## el bosque 0
## el caney 0
## el dorado 0
## el gran limonar 0
## el guabal 0
## el ingenio 0
## el ingenio 3 0
## el ingenio i 0
## el ingenio ii 0
## el ingenio iii 0
## el jardin 0
## el jordan 0
## el lido 0
## el limonar 0
## el penon 0
## el prado 0
## el refugio 0
## el troncal 0
## evaristo garcia 0
## fepicol 0
## flora 0
## flora industrial 1
## floralia 0
## fuentes de la 0
## gran limonar 0
## granada 0
## guadalupe 0
## guadalupe alto 0
## guaduales 0
## guayaquil 1
## ingenio 0
## ingenio ii 0
## juanamb?? 0
## juanambu 0
## junin 2
## la alborada 0
## la alianza 0
## la arboleda 0
## la base 0
## la campina 0
## la cascada 0
## la flora 0
## la floresta 0
## la hacienda 0
## la luisa 0
## la merced 2
## la nueva base 0
## la rivera 0
## la selva 0
## laflora 0
## lares de comfenalco 0
## las acacias 0
## las am?cricas 0
## las camelias 0
## las ceibas 0
## las delicias 0
## las granjas 0
## las vegas de 0
## los alamos 0
## los alcazares 0
## los andes 0
## los cambulos 0
## los cristales 0
## los cristales club 0
## los farallones 0
## los guaduales 0
## los guayacanes 0
## los parques barranquilla 0
## los robles 0
## manzanares 0
## mayapan las vegas 0
## mel?cndez 0
## melendez 0
## menga 0
## metropolitano del norte 0
## miradol del aguacatal 0
## miraflores 0
## morichal de comfandi 0
## multicentro 0
## napoles 0
## normandia 0
## normandia west point 0
## norte 0
## norte la flora 0
## nueva floresta 0
## nueva tequendama 1
## oasis de comfandi 0
## oasis de pasoancho 0
## occidente 0
## pacara 0
## pampa linda 0
## pampalinda 0
## panamericano 0
## pance 0
## parcelaciones pance 0
## paso del comercio 0
## pasoancho 0
## ponce 0
## popular 0
## portada de comfandi 0
## porvenir 0
## prados de oriente 0
## prados del limonar 0
## prados del norte 1
## primero de mayo 0
## puente del comercio 0
## quintas de don 0
## refugio 0
## rincon de la 0
## rincon de salomia 0
## saavedra galindo 0
## salomia 0
## samanes 0
## samanes de guadalupe 0
## sameco 0
## san antonio 0
## san bosco 2
## san fernando 0
## san fernando nuevo 0
## san fernando viejo 0
## san joaquin 0
## san juan bosco 1
## san pedro 2
## san vicente 0
## santa 0
## santa anita 1
## santa barbara 0
## santa elena 0
## santa isabel 0
## santa monica 0
## santa monica alta 0
## santa monica norte 0
## santa monica popular 0
## santa monica residencial 0
## santa rita 0
## santa rosa 1
## santa teresita 0
## santo domingo 0
## sector aguacatal 0
## sector canaveralejo guadalupe 0
## seminario 0
## sierras de normandia 0
## siete de agosto 0
## tejares cristales 0
## tejares de san 0
## templete 0
## tequendama 0
## torres de comfandi 2
## unicentro cali 0
## union de vivienda 0
## urbanizacion barranquilla 0
## urbanizacion colseguros 0
## urbanizacion gratamira 0
## urbanizacion la flora 0
## urbanizacion la nueva 0
## urbanizacion nueva granada 0
## urbanizacion pacara 0
## urbanizacion rio lili 0
## urbanizacion tequendama 0
## valle de lili 0
## valle del lili 0
## valle grande 0
## versalles 0
## villa de veracruz 0
## villa del lago 0
## villa del parque 0
## villa del prado 0
## villa del sol 0
## villa del sur 0
## villas de veracruz 0
## vipasa 0
## zona norte 0
## zona norte los 0
## zona oeste 0
## zona oriente 0
## zona residencial 0
## zona sur 0
Se aplica Test Chi-cuadrado para la tabla de contingencia de apartamentos.
chisq.test(tblCntApto)
## Warning in chisq.test(tblCntApto): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: tblCntApto
## X-squared = 17330, df = 1044, p-value < 2.2e-16
El resultado indica que se rechaza la hipótesis de independencia de las variables. Se estima el mapa factorial del análsis de correspondencia para los apartamentos
res_ac_apto <- CA(tblCntApto)
Valores de la varianza acumulada utilizando los valores propios de la matriz de discrepancias de apartamentos
valores_prop <-res_ac_apto$eig ; valores_prop
## eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.9651892 28.40388 28.40388
## dim 2 0.9422260 27.72811 56.13199
## dim 3 0.8666551 25.50419 81.63617
## dim 4 0.6240193 18.36383 100.00000
fviz_screeplot(res_ac_apto, addlabels = TRUE, ylim = c(0, 80))+ggtitle("")+
ylab("Porcentaje de varianza explicado") + xlab("Ejes")
Se examina la relación entre zona y estrato para todas las viviendas
# se crea la tabla de contingencia
tblCntViv <- table(vivienda$zona, vivienda$estratoCat)
tblCntViv
##
## Est3 Est4 Est5 Est6
## Zona Oriente 340 8 2 1
## Zona Sur 382 1616 1685 1043
## Zona Norte 572 407 769 172
## Zona Oeste 54 84 290 770
## Zona Centro 105 14 4 1
Se aplica Test Chi-cuadrado para la tabla de contingencia de viviendas
chisq.test(tblCntViv)
##
## Pearson's Chi-squared test
##
## data: tblCntViv
## X-squared = 3830.4, df = 12, p-value < 2.2e-16
El resultado indica que se rechaza la hipótesis de independencia de las variables. Se estima el mapa factorial del análsis de correspondencia para las viviendas
res_ac_viv <- CA(tblCntViv)
Valores de la varianza acumulada utilizando los valores propios de la matriz de discrepancias de viviendas
valores_prop <-res_ac_viv$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
fviz_screeplot(res_ac_viv, addlabels = TRUE, ylim = c(0, 80))+ggtitle("")+
ylab("Porcentaje de varianza explicado") + xlab("Ejes")
Un análisis de correspondencia entre atributos geográficos de zona y barrio debería, en teoría, dar resultados claros de la relación de los conjuntos de barrios que hacen parte de una zona, sin embargo, al revisar los datos se puede visualizar que en un determinado barrio pueden existir viviendas que pertenecen a dos zonas distintas. En este análisis se relizó en primera medida una diferenciación entre el tipo de vivienda, abordando las casas y los apartamentos en análisis de correspondencia independientes.
Del mapa factorial obtenido para las casas se puede distinguir como las viviendas de la mayoria de los barrios se encuentran enuna determinada zona, sin embargo, aparecen barrios como Primavera o Villa del Sur cuyas casas se encuentran en las zonas Oeste y Centro. Algo similar sucede cuando se analiza lo que sucede con los apartamentos, en su mapa facotrial se aprecia la misma situación para apartamentos en barrios como el Refugio o Bella Suiza. De los valores propios de la matriz de discrepancias se puede apreciar para el caso de las casas, que la primera componente resume el 27.5% de la varianza explicada y que el porcentaje acumulativo de los primeros tres ejes explican el 78.1% de este conjunto de datos. Para el caso de los apartamentos, en la matriz de discrepancia se visualiza como el primer eje explica la varianza en un 28.4% y que las tres primeras dimensiones resumen la variablidad de estos datos en un 81.6%.
Del mapa factorial de CA entre zonas y estratos para todas las viviendas, se puede distinguir la ubicación de los estratos por zonas, teniendo que en las zonas norte y sur se presentan los estratos 4 y 5, y en la zona oeste el estrato 6. De los valores propios de la matriz de discrepancias se puede apreciar que la primera componente resume el 70% de la varianza explicada y que los dos primeros ejes explican en un 97.7% la variabilidad de los datos.
El análisis de correspondencia permite validar hipótesis de relaciones entre variables. En eel caso de las relaciones entre tipo de vivienda, barrio y zona, se pudo corroborar para cada tipo de vivienda que la correspondencia geográfica que debería presentarse entre las viviendas presentes en los barrios respecto a las zonas no se cumple del todo, encontrándose barrios con viviendas en zonas distintas.Respecto al CA entre estrato y zona, fue posible verificar el estrato predominante para las viviendas de cada zona.
Se recomienda a la inmobiliaria que las hipótesis de relaciones entre variables de las viviendas que se tenga identificadas, se validen a través de un análisis de correspondencia, de manera que pueda validarse si se cumple la hipótesis y en qué medida.