El mercado inmobiliario en Cali ha experimentado un notable crecimiento en los últimos años, impulsado por una combinación de factores que incluyen el aumento de la demanda, la evolución de las preferencias del consumidor y el desarrollo continuo de nuevas áreas urbanas. Ante este panorama dinámico y en constante cambio, resulta fundamental disponer de información precisa y actualizada que permita comprender a fondo las tendencias del mercado y ajustar las estrategias empresariales en consecuencia.
La empresa ha compilado una valiosa base de datos que contiene información detallada sobre las propiedades en venta en Cali, abarcando aspectos como los precios, ubicaciones, características y transacciones de viviendas. Este conjunto de datos se presenta como una herramienta invaluable para la empresa, brindando la oportunidad de generar un informe estadístico que respalde la toma de decisiones estratégicas.
El análisis descriptivo de estos datos proporcionará la oportunidad de explorar una amplia gama de variables, desde los precios y las ubicaciones hasta las características específicas de las propiedades. A través del uso de técnicas estadísticas y herramientas de visualización de datos, seremos capaces de identificar patrones emergentes, relaciones significativas y posibles oportunidades de negocio dentro del mercado inmobiliario de Cali.
El objetivo principal de este proyecto es proporcionar una visión detallada del mercado inmobiliario en la ciudad de Cali, dirigida específicamente a los directivos de B&C (Bines y Casas). Se busca realizar un análisis exhaustivo de los datos recopilados con el fin de identificar tendencias y patrones significativos que puedan orientar las decisiones futuras de la empresa.
Realizar un análisis descriptivo completo de la base de datos recopilada sobre el mercado inmobiliario de Cali.
Identificar el precio promedio de las viviendas en diferentes zonas de Cali y su evolución temporal.
Determinar los tipos de viviendas más ofertadas en Cali y su distribución por áreas geográficas.
Analizar las características más relevantes de la oferta de vivienda en Cali, como tamaño, número de habitaciones, entre otros aspectos.
Utilizar la información obtenida para proporcionar recomendaciones específicas a la empresa B&C, incluyendo la definición de su nicho de mercado, el desarrollo de estrategias de marketing, el establecimiento de precios de venta competitivos y la mejora de los servicios ofrecidos a los clientes.
La base de datos vivienda_faltantes contiene información sobre propiedades inmobiliarias, y cada variable representa diferentes características de estas propiedades. Aquí tienes una descripción de cada una de las variables:
Data con 8322 registros y 13 variables
library(paqueteMETODOS)
data(vivienda_faltantes)
library(mice)
library(naniar)
attach(vivienda_faltantes)
library(dplyr)
library(ggmap)
library(fdth)
library(formattable)
library(kableExtra)
library(summarytools)
library(ggplot2)
datos<- vivienda_faltantes
datos
## spc_tbl_ [8,330 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ id : num [1:8330] 8312 8311 8307 8296 8297 ...
## $ zona : chr [1:8330] "Zona Oeste" "Zona Oeste" "Zona Oeste" "Zona Sur" ...
## $ piso : num [1:8330] 4 1 NA 2 NA NA 2 NA NA 2 ...
## $ estrato : num [1:8330] 6 6 5 3 5 5 6 5 5 5 ...
## $ preciom : num [1:8330] 1300 480 1200 220 330 1350 305 480 275 285 ...
## $ areaconst: num [1:8330] 318 300 800 150 112 390 125 280 74 120 ...
## $ parquea : num [1:8330] 2 1 4 1 2 8 2 4 1 2 ...
## $ banios : num [1:8330] 4 4 7 2 4 10 3 4 2 4 ...
## $ habitac : num [1:8330] 2 4 5 4 3 10 3 4 3 3 ...
## $ tipo : chr [1:8330] "Apartamento" "Casa" "Casa" "Casa" ...
## $ barrio : chr [1:8330] "arboleda" "normandía" "miraflores" "el guabal" ...
## $ longitud : num [1:8330] -76576 -76571 -76568 -76565 -76565 ...
## $ latitud : num [1:8330] 3454 3454 3455 3417 3408 ...
## - 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_double" "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"
## .. ..$ parquea : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ banios : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ habitac : 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>
Para el análisis que se llevará a cabo, se eligen las siguientes variables:
Se define el nuevo dataset
El estrato es una categoría socioeconómica, por tal razón, para este análisis se tratará como una variable tipo factor.
Observando los valores que puede tomar la variable tipo se tiene
##
## Apartamento APARTAMENTO apto casa Casa CASA
## 5032 61 13 14 3195 12
Por lo tanto, identificamos un problema de sistematización que abordamos mediante:
datos$tipo <- toupper(datos$tipo)
datos$tipo <- gsub("APTO", "APARTAMENTO", datos$tipo)
table(datos$tipo)
##
## APARTAMENTO CASA
## 5106 3221
Se hace la verificación respectiva de la existencia de los datos faltantes
Se evidencia una notable cantidad de datos faltantes en las variables piso y parquea. Por consiguiente, se llevará a cabo un análisis de algunos supuestos para efectuar la imputación de estos datos ausentes.
A continuación se realiza un análisis para los datos faltantes de la variable parquea
el resultado obtenido desvirtúa el anterior supuesto
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## 60 633 101 188 621
##
## 3 4 5 6
## 769 489 228 117
## Class limits f rf rf(%) cf cf(%)
## [61.38,207.8492) 882 0.55 54.92 882 54.92
## [207.8492,354.3183) 337 0.21 20.98 1219 75.90
## [354.3183,500.7875) 178 0.11 11.08 1397 86.99
## [500.7875,647.2567) 69 0.04 4.30 1466 91.28
## [647.2567,793.7258) 55 0.03 3.42 1521 94.71
## [793.7258,940.195) 33 0.02 2.05 1554 96.76
## [940.195,1086.664) 12 0.01 0.75 1566 97.51
## [1086.664,1233.133) 13 0.01 0.81 1579 98.32
## [1233.133,1379.603) 8 0.00 0.50 1587 98.82
## [1379.603,1526.072) 9 0.01 0.56 1596 99.38
## [1526.072,1672.541) 4 0.00 0.25 1600 99.63
## [1672.541,1819.01) 4 0.00 0.25 1604 99.88
## Class limits f rf rf(%) cf cf(%)
## [34.65,146.65) 1063 0.66 66.19 1063 66.19
## [146.65,258.65) 283 0.18 17.62 1346 83.81
## [258.65,370.65) 154 0.10 9.59 1500 93.40
## [370.65,482.65) 57 0.04 3.55 1557 96.95
## [482.65,594.65) 24 0.01 1.49 1581 98.44
## [594.65,706.65) 8 0.00 0.50 1589 98.94
## [706.65,818.65) 7 0.00 0.44 1596 99.38
## [818.65,930.65) 2 0.00 0.12 1598 99.50
## [930.65,1042.65) 3 0.00 0.19 1601 99.69
## [1042.65,1154.65) 0 0.00 0.00 1601 99.69
## [1154.65,1266.65) 1 0.00 0.06 1602 99.75
## [1266.65,1378.65) 1 0.00 0.06 1603 99.81
##
## APARTAMENTO CASA
## 1 2299 857
## 2 1586 892
## 3 253 268
## 4 90 296
## 5 4 64
## 6 2 66
## 7 1 17
## 8 0 17
## 9 0 4
## 10 2 6
Basándonos en las tablas anteriores, se aprecia que los datos faltantes de la variable parquea se concentran principalmente en las viviendas de menor tamaño y menor valor. Esta tendencia sugiere que es posible que estas viviendas no cuenten con parqueaderos. Por consiguiente, se procederá a la imputación de datos, sustituyendo los valores faltantes por cero.
A continuación se realiza un análisis para los datos faltantes de la variable piso
##
## 3 4 5 6
## 575 614 792 657
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## 55 782 395 143 1263
##
## APARTAMENTO CASA
## 1383 1255
## Class limits f rf rf(%) cf cf(%)
## [64.35,210.9) 600 0.23 22.72 600 22.72
## [210.9,357.45) 769 0.29 29.12 1369 51.84
## [357.45,504) 487 0.18 18.44 1856 70.28
## [504,650.55) 261 0.10 9.88 2117 80.16
## [650.55,797.1) 149 0.06 5.64 2266 85.80
## [797.1,943.65) 119 0.05 4.51 2385 90.31
## [943.65,1090.2) 65 0.02 2.46 2450 92.77
## [1090.2,1236.75) 60 0.02 2.27 2510 95.04
## [1236.75,1383.3) 45 0.02 1.70 2555 96.74
## [1383.3,1529.85) 39 0.01 1.48 2594 98.22
## [1529.85,1676.4) 14 0.01 0.53 2608 98.75
## [1676.4,1822.95) 17 0.01 0.64 2625 99.39
## [1822.95,1969.5) 14 0.01 0.53 2639 99.92
## Class limits f rf rf(%) cf cf(%)
## [29.7,162.9885) 1506 0.57 57.02 1506 57.02
## [162.9885,296.2769) 629 0.24 23.82 2135 80.84
## [296.2769,429.5654) 332 0.13 12.57 2467 93.41
## [429.5654,562.8538) 104 0.04 3.94 2571 97.35
## [562.8538,696.1423) 27 0.01 1.02 2598 98.37
## [696.1423,829.4308) 19 0.01 0.72 2617 99.09
## [829.4308,962.7192) 10 0.00 0.38 2627 99.47
## [962.7192,1096.008) 4 0.00 0.15 2631 99.62
## [1096.008,1229.296) 2 0.00 0.08 2633 99.70
## [1229.296,1362.585) 1 0.00 0.04 2634 99.73
## [1362.585,1495.873) 1 0.00 0.04 2635 99.77
## [1495.873,1629.162) 2 0.00 0.08 2637 99.85
## [1629.162,1762.45) 1 0.00 0.04 2638 99.89
##
## APARTAMENTO CASA
## 1 431 430
## 2 512 938
## 3 573 524
## 4 545 62
## 5 564 4
## 6 243 2
## 7 203 4
## 8 211 0
## 9 146 0
## 10 128 2
## 11 84 0
## 12 83 0
Después de revisar las tablas anteriores, no se aprecia ninguna tendencia clara en los datos. Por lo tanto, se optará por realizar la imputación utilizando la moda. Este enfoque resulta especialmente útil cuando se trata de datos categóricos o discretos, ya que la moda no se ve afectada por valores atípicos. Al imputar datos con la moda, se conserva la distribución original de los datos de manera más fiel en comparación con otras técnicas de imputación.
##
## APARTAMENTO CASA
## 1 431 430
## 2 512 938
## 3 573 524
## 4 545 62
## 5 564 4
## 6 243 2
## 7 203 4
## 8 211 0
## 9 146 0
## 10 128 2
## 11 84 0
## 12 83 0
Se procede a reemplazar los valores faltantes en la variable “parquea” por cero, y se crea un nuevo conjunto de datos denominado “datosNA”.
Para la variable “piso”, se sustituyen los valores NA por la moda de dicha variable.
## [1] "2"
Dado que los datos faltantes en las demás variables no exceden tres para una observación, se procede a eliminar dichas observaciones.
##
## 1 10 11 12 2 3 4 5 6 7 8 9
## 861 130 84 83 4088 1097 607 568 245 207 211 146
##
## FALSE
## 74943
## 3.7. Datos atípicos.
Se hace la revisión de los datos atípicos para las variables preciom y areaconst
### 3.7.1. Variable precio
```r
boxplot(datosSINA$preciom)
## 25%
## 220
## 75%
## 540
## 75%
## 320
## 25%
## -260
## 75%
## 1020
valores_atipicos <- datosSINA$preciom < limite_inferior | datosSINA$preciom > limite_superior
datos_sin_atipicos <- datosSINA[!valores_atipicos, ]
print(datos_sin_atipicos)
## # A tibble: 7,772 × 9
## zona piso estrato preciom areaconst parquea banios habitac tipo
## <chr> <chr> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 Zona Oeste 1 6 480 300 1 4 4 CASA
## 2 Zona Sur 2 3 220 150 1 2 4 CASA
## 3 Zona Oeste 2 5 330 112 2 4 3 CASA
## 4 Zona Sur 2 6 305 125 2 3 3 APARTAMENTO
## 5 Zona Oeste 2 5 480 280 4 4 4 APARTAMENTO
## 6 Zona Sur 2 5 275 74 1 2 3 APARTAMENTO
## 7 Zona Sur 2 5 285 120 2 4 3 APARTAMENTO
## 8 Zona Sur 1 5 310 166 2 4 3 APARTAMENTO
## 9 Zona Oeste 2 3 175 155 0 4 6 CASA
## 10 Zona Oeste 6 6 640 157 2 3 3 APARTAMENTO
## # ℹ 7,762 more rows
percentiles <- quantile(datosSINA$preciom, probs = seq(0, 1, by = 0.01))
percentil_1020 <- sum(datosSINA$preciom <= 1020) / length(datosSINA$preciom)
print(percentil_1020)
## [1] 0.9333493
## 25%
## 80
## 75%
## 229
## 75%
## 149
## 25%
## -143.5
## 75%
## 452.5
valores_atipicos1 <- datosSINA$areaconst < limite_inferior | datosSINA$areaconst > limite_superior
datos_sin_atipicos1 <- datosSINA[!valores_atipicos, ]
print(datos_sin_atipicos)
## # A tibble: 7,772 × 9
## zona piso estrato preciom areaconst parquea banios habitac tipo
## <chr> <chr> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 Zona Oeste 1 6 480 300 1 4 4 CASA
## 2 Zona Sur 2 3 220 150 1 2 4 CASA
## 3 Zona Oeste 2 5 330 112 2 4 3 CASA
## 4 Zona Sur 2 6 305 125 2 3 3 APARTAMENTO
## 5 Zona Oeste 2 5 480 280 4 4 4 APARTAMENTO
## 6 Zona Sur 2 5 275 74 1 2 3 APARTAMENTO
## 7 Zona Sur 2 5 285 120 2 4 3 APARTAMENTO
## 8 Zona Sur 1 5 310 166 2 4 3 APARTAMENTO
## 9 Zona Oeste 2 3 175 155 0 4 6 CASA
## 10 Zona Oeste 6 6 640 157 2 3 3 APARTAMENTO
## # ℹ 7,762 more rows
percentiles <- quantile(datosSINA$areaconst, probs = seq(0, 1, by = 0.01))
percentil_452.5 <- sum(datosSINA$areaconst <= 452.5) / length(datosSINA$areaconst)
print(percentil_452.5)
## [1] 0.954005
Valor por metro cuadrado: precimtc
En esta sección, se realiza el análisis descriptivo del conjunto de datos proporcionado por la empresa.
## spc_tbl_ [8,327 × 10] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ zona : chr [1:8327] "Zona Oeste" "Zona Oeste" "Zona Oeste" "Zona Sur" ...
## $ piso : num [1:8327] 4 1 2 2 2 2 2 2 2 2 ...
## $ estrato : Factor w/ 4 levels "3","4","5","6": 4 4 3 1 3 3 4 3 3 3 ...
## $ preciom : num [1:8327] 1300 480 1200 220 330 1350 305 480 275 285 ...
## $ areaconst: num [1:8327] 318 300 800 150 112 390 125 280 74 120 ...
## $ parquea : num [1:8327] 2 1 4 1 2 8 2 4 1 2 ...
## $ banios : num [1:8327] 4 4 7 2 4 10 3 4 2 4 ...
## $ habitac : num [1:8327] 2 4 5 4 3 10 3 4 3 3 ...
## $ tipo : chr [1:8327] "APARTAMENTO" "CASA" "CASA" "CASA" ...
## $ precimtc : num [1:8327] 4.09 1.6 1.5 1.47 2.95 ...
## - 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_double" "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"
## .. ..$ parquea : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ banios : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ habitac : 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>
## - attr(*, "na.action")= 'omit' Named int [1:3] 8320 8321 8322
## ..- attr(*, "names")= chr [1:3] "8320" "8321" "8322"
## zona piso estrato preciom areaconst
## Length:8327 Min. : 1.000 3:1453 Min. : 58.0 Min. : 30
## Class :character 1st Qu.: 2.000 4:2131 1st Qu.: 220.0 1st Qu.: 80
## Mode :character Median : 2.000 5:2751 Median : 330.0 Median : 123
## Mean : 3.211 6:1992 Mean : 434.3 Mean : 175
## 3rd Qu.: 4.000 3rd Qu.: 540.0 3rd Qu.: 229
## Max. :12.000 Max. :1999.0 Max. :1745
## parquea banios habitac tipo
## Min. : 0.000 Min. : 0.000 Min. : 0.000 Length:8327
## 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 3.000 Class :character
## Median : 1.000 Median : 3.000 Median : 3.000 Mode :character
## Mean : 1.483 Mean : 3.112 Mean : 3.605
## 3rd Qu.: 2.000 3rd Qu.: 4.000 3rd Qu.: 4.000
## Max. :10.000 Max. :10.000 Max. :10.000
## precimtc
## Min. :0.1461
## 1st Qu.:1.9167
## Median :2.6431
## Mean :2.7230
## 3rd Qu.:3.3810
## Max. :9.4681
A continuación se presentan las tablas de frecuencias para las variables seleccionadas.
## Frequencies
## datosSINA$estrato
## Type: Factor
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 3 1453 17.45 17.45 17.45 17.45
## 4 2131 25.59 43.04 25.59 43.04
## 5 2751 33.04 76.08 33.04 76.08
## 6 1992 23.92 100.00 23.92 100.00
## <NA> 0 0.00 100.00
## Total 8327 100.00 100.00 100.00 100.00
## Frequencies
## datosSINA$zona
## Type: Character
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ------------------ ------ --------- -------------- --------- --------------
## Zona Centro 124 1.49 1.49 1.49 1.49
## Zona Norte 1922 23.08 24.57 23.08 24.57
## Zona Oeste 1204 14.46 39.03 14.46 39.03
## Zona Oriente 351 4.22 43.24 4.22 43.24
## Zona Sur 4726 56.76 100.00 56.76 100.00
## <NA> 0 0.00 100.00
## Total 8327 100.00 100.00 100.00 100.00
## Frequencies
## datosSINA$piso
## Type: Numeric
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 1 861 10.34 10.34 10.34 10.34
## 2 4088 49.09 59.43 49.09 59.43
## 3 1097 13.17 72.61 13.17 72.61
## 4 607 7.29 79.90 7.29 79.90
## 5 568 6.82 86.72 6.82 86.72
## 6 245 2.94 89.66 2.94 89.66
## 7 207 2.49 92.15 2.49 92.15
## 8 211 2.53 94.68 2.53 94.68
## 9 146 1.75 96.43 1.75 96.43
## 10 130 1.56 97.99 1.56 97.99
## 11 84 1.01 99.00 1.01 99.00
## 12 83 1.00 100.00 1.00 100.00
## <NA> 0 0.00 100.00
## Total 8327 100.00 100.00 100.00 100.00
## Frequencies
## datosSINA$parquea
## Type: Numeric
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 0 1603 19.251 19.251 19.251 19.251
## 1 3156 37.901 57.151 37.901 57.151
## 2 2478 29.759 86.910 29.759 86.910
## 3 521 6.257 93.167 6.257 93.167
## 4 386 4.636 97.802 4.636 97.802
## 5 68 0.817 98.619 0.817 98.619
## 6 68 0.817 99.436 0.817 99.436
## 7 18 0.216 99.652 0.216 99.652
## 8 17 0.204 99.856 0.204 99.856
## 9 4 0.048 99.904 0.048 99.904
## 10 8 0.096 100.000 0.096 100.000
## <NA> 0 0.000 100.000
## Total 8327 100.000 100.000 100.000 100.000
## Frequencies
## datosSINA$banios
## Type: Numeric
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 0 45 0.54 0.54 0.54 0.54
## 1 497 5.97 6.51 5.97 6.51
## 2 2946 35.38 41.89 35.38 41.89
## 3 1994 23.95 65.83 23.95 65.83
## 4 1460 17.53 83.37 17.53 83.37
## 5 891 10.70 94.07 10.70 94.07
## 6 315 3.78 97.85 3.78 97.85
## 7 107 1.28 99.14 1.28 99.14
## 8 48 0.58 99.71 0.58 99.71
## 9 15 0.18 99.89 0.18 99.89
## 10 9 0.11 100.00 0.11 100.00
## <NA> 0 0.00 100.00
## Total 8327 100.00 100.00 100.00 100.00
## Frequencies
## datosSINA$habitac
## Type: Numeric
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 0 66 0.79 0.79 0.79 0.79
## 1 59 0.71 1.50 0.71 1.50
## 2 927 11.13 12.63 11.13 12.63
## 3 4101 49.25 61.88 49.25 61.88
## 4 1731 20.79 82.67 20.79 82.67
## 5 680 8.17 90.84 8.17 90.84
## 6 318 3.82 94.66 3.82 94.66
## 7 173 2.08 96.73 2.08 96.73
## 8 138 1.66 98.39 1.66 98.39
## 9 83 1.00 99.39 1.00 99.39
## 10 51 0.61 100.00 0.61 100.00
## <NA> 0 0.00 100.00
## Total 8327 100.00 100.00 100.00 100.00
## Frequencies
## datosSINA$tipo
## Type: Character
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------------- ------ --------- -------------- --------- --------------
## APARTAMENTO 5106 61.32 61.32 61.32 61.32
## CASA 3221 38.68 100.00 38.68 100.00
## <NA> 0 0.00 100.00
## Total 8327 100.00 100.00 100.00 100.00
## Class limits f rf rf(%) cf cf(%)
## [57.42,188.1913) 1657 0.20 19.90 1657 19.90
## [188.1913,318.9627) 2245 0.27 26.96 3902 46.86
## [318.9627,449.734) 1654 0.20 19.86 5556 66.72
## [449.734,580.5053) 939 0.11 11.28 6495 78.00
## [580.5053,711.2767) 603 0.07 7.24 7098 85.24
## [711.2767,842.048) 288 0.03 3.46 7386 88.70
## [842.048,972.8193) 306 0.04 3.67 7692 92.37
## [972.8193,1103.591) 150 0.02 1.80 7842 94.18
## [1103.591,1234.362) 129 0.02 1.55 7971 95.72
## [1234.362,1365.133) 120 0.01 1.44 8091 97.17
## [1365.133,1495.905) 71 0.01 0.85 8162 98.02
## [1495.905,1626.676) 75 0.01 0.90 8237 98.92
## [1626.676,1757.447) 37 0.00 0.44 8274 99.36
## [1757.447,1888.219) 37 0.00 0.44 8311 99.81
## [1888.219,2018.99) 16 0.00 0.19 8327 100.00
## Class limits f rf rf(%) cf cf(%)
## [29.7,145.2167) 4805 0.58 57.70 4805 57.70
## [145.2167,260.7333) 1904 0.23 22.87 6709 80.57
## [260.7333,376.25) 916 0.11 11.00 7625 91.57
## [376.25,491.7667) 408 0.05 4.90 8033 96.47
## [491.7667,607.2833) 166 0.02 1.99 8199 98.46
## [607.2833,722.8) 46 0.01 0.55 8245 99.02
## [722.8,838.3167) 38 0.00 0.46 8283 99.47
## [838.3167,953.8333) 17 0.00 0.20 8300 99.68
## [953.8333,1069.35) 13 0.00 0.16 8313 99.83
## [1069.35,1184.867) 3 0.00 0.04 8316 99.87
## [1184.867,1300.383) 4 0.00 0.05 8320 99.92
## [1300.383,1415.9) 1 0.00 0.01 8321 99.93
## [1415.9,1531.417) 3 0.00 0.04 8324 99.96
## [1531.417,1646.933) 2 0.00 0.02 8326 99.99
## [1646.933,1762.45) 1 0.00 0.01 8327 100.00
## Class limits f rf rf(%) cf cf(%)
## [0.1447,0.7725) 49 0.01 0.59 49 0.59
## [0.7725,1.4) 792 0.10 9.51 841 10.10
## [1.4,2.028) 1557 0.19 18.70 2398 28.80
## [2.028,2.656) 1800 0.22 21.62 4198 50.41
## [2.656,3.284) 1809 0.22 21.72 6007 72.14
## [3.284,3.912) 1207 0.14 14.50 7214 86.63
## [3.912,4.54) 636 0.08 7.64 7850 94.27
## [4.54,5.168) 301 0.04 3.61 8151 97.89
## [5.168,5.796) 76 0.01 0.91 8227 98.80
## [5.796,6.423) 74 0.01 0.89 8301 99.69
## [6.423,7.051) 13 0.00 0.16 8314 99.84
## [7.051,7.679) 8 0.00 0.10 8322 99.94
## [7.679,8.307) 4 0.00 0.05 8326 99.99
## [8.307,8.935) 0 0.00 0.00 8326 99.99
## [8.935,9.563) 1 0.00 0.01 8327 100.00
Se realiza la tabla cruzada entre tipo de inmueble y la zona
conteo <- table(datosSINA$tipo, datosSINA$zona)
barplot(conteo, main="Tipo de inmueble por zona",
xlab="Zona",
col=c("#0d3b66","#f4d35e"),
legend = rownames(conteo),
las=1, ylim = c(0,7200))
Se realiza la tabla cruzada entre la zona y el precio
##
## (56.1,187] (187,317] (317,446] (446,576] (576,705] (705,834]
## Zona Centro 31 42 34 10 4 1
## Zona Norte 569 463 447 184 115 51
## Zona Oeste 70 84 250 193 181 77
## Zona Oriente 144 137 58 8 2 1
## Zona Sur 840 1516 867 490 352 156
##
## (834,964] (964,1.09e+03] (1.09e+03,1.22e+03] (1.22e+03,1.35e+03]
## Zona Centro 0 1 1 0
## Zona Norte 47 10 14 8
## Zona Oeste 86 49 79 50
## Zona Oriente 0 0 0 1
## Zona Sur 180 45 80 62
##
## (1.35e+03,1.48e+03] (1.48e+03,1.61e+03] (1.61e+03,1.74e+03]
## Zona Centro 0 0 0
## Zona Norte 4 7 1
## Zona Oeste 32 23 5
## Zona Oriente 0 0 0
## Zona Sur 36 45 27
##
## (1.74e+03,1.87e+03] (1.87e+03,2e+03]
## Zona Centro 0 0
## Zona Norte 1 1
## Zona Oeste 19 6
## Zona Oriente 0 0
## Zona Sur 21 9
Se realiza la tabla cruzada entre el número de habitaciones y el precio
tabla_cruzada_habitaciones <- table(datosSINA$habitac, cut(datosSINA$preciom, breaks = 15))
tabla_cruzada_habitaciones
##
## (56.1,187] (187,317] (317,446] (446,576] (576,705] (705,834] (834,964]
## 0 6 8 28 6 6 4 4
## 1 14 24 14 3 1 1 0
## 2 420 315 111 45 21 5 3
## 3 1069 1322 769 286 237 96 112
## 4 103 338 390 281 189 93 118
## 5 18 74 154 129 108 39 48
## 6 13 61 80 49 37 22 14
## 7 6 32 48 29 25 10 6
## 8 4 38 38 28 12 8 2
## 9 1 24 16 17 8 5 6
## 10 0 6 8 12 10 3 0
##
## (964,1.09e+03] (1.09e+03,1.22e+03] (1.22e+03,1.35e+03] (1.35e+03,1.48e+03]
## 0 0 3 0 0
## 1 0 1 0 0
## 2 2 2 1 0
## 3 45 55 37 26
## 4 36 63 44 18
## 5 11 29 22 20
## 6 2 14 11 4
## 7 3 4 2 1
## 8 1 1 0 0
## 9 2 1 1 2
## 10 3 1 3 1
##
## (1.48e+03,1.61e+03] (1.61e+03,1.74e+03] (1.74e+03,1.87e+03]
## 0 0 1 0
## 1 1 0 0
## 2 0 1 1
## 3 27 9 8
## 4 20 13 17
## 5 10 5 11
## 6 7 1 2
## 7 4 2 1
## 8 4 0 1
## 9 0 0 0
## 10 2 1 0
##
## (1.87e+03,2e+03]
## 0 0
## 1 0
## 2 0
## 3 3
## 4 8
## 5 2
## 6 1
## 7 0
## 8 1
## 9 0
## 10 1
barplot(tabla_cruzada_habitaciones, beside = TRUE, legend = TRUE, col = rainbow(nrow(tabla_cruzada_habitaciones)))
Se realiza la tabla cruzada entre el número de parqueaderos y el precio
```r
tabla_cruzada_parqueadero <- table(datosSINA$parquea, cut(datosSINA$preciom, breaks = 15))
tabla_cruzada_parqueadero
##
## (56.1,187] (187,317] (317,446] (446,576] (576,705] (705,834] (834,964]
## 0 834 315 177 113 59 32 27
## 1 797 1558 579 142 46 14 10
## 2 22 356 805 521 406 142 102
## 3 1 9 67 64 86 44 73
## 4 0 3 20 30 41 44 82
## 5 0 0 3 7 9 3 7
## 6 0 0 2 6 5 5 6
## 7 0 0 1 1 2 1 3
## 8 0 0 0 1 0 0 2
## 9 0 0 1 0 0 1 0
## 10 0 1 1 0 0 0 1
##
## (964,1.09e+03] (1.09e+03,1.22e+03] (1.22e+03,1.35e+03] (1.35e+03,1.48e+03]
## 0 8 13 8 5
## 1 0 1 4 2
## 2 30 36 21 19
## 3 29 53 37 20
## 4 29 48 35 12
## 5 4 9 6 8
## 6 3 9 7 3
## 7 1 1 2 2
## 8 1 2 1 1
## 9 0 0 0 0
## 10 0 2 0 0
##
## (1.48e+03,1.61e+03] (1.61e+03,1.74e+03] (1.74e+03,1.87e+03]
## 0 7 3 2
## 1 2 0 1
## 2 10 3 4
## 3 21 8 7
## 4 14 9 13
## 5 5 2 3
## 6 8 6 5
## 7 2 0 2
## 8 4 1 2
## 9 1 1 0
## 10 1 0 2
##
## (1.87e+03,2e+03]
## 0 0
## 1 0
## 2 1
## 3 2
## 4 6
## 5 2
## 6 3
## 7 0
## 8 2
## 9 0
## 10 0
Se realiza la tabla cruzada entre la zona y el precio por metro cuadrado
tabla_cruzada_zona1 <- table(datosSINA$zona, cut(datosSINA$precimtc, breaks = 15))
tabla_cruzada_zona1
##
## (0.137,0.768] (0.768,1.39] (1.39,2.01] (2.01,2.63] (2.63,3.25]
## Zona Centro 0 42 54 20 2
## Zona Norte 7 218 550 441 275
## Zona Oeste 0 30 91 140 184
## Zona Oriente 28 167 106 32 13
## Zona Sur 11 304 751 1143 1332
##
## (3.25,3.87] (3.87,4.5] (4.5,5.12] (5.12,5.74] (5.74,6.36]
## Zona Centro 2 2 2 0 0
## Zona Norte 251 125 41 9 3
## Zona Oeste 241 262 133 52 52
## Zona Oriente 1 2 1 0 0
## Zona Sur 717 283 133 29 15
##
## (6.36,6.98] (6.98,7.6] (7.6,8.23] (8.23,8.85] (8.85,9.48]
## Zona Centro 0 0 0 0 0
## Zona Norte 0 1 0 0 1
## Zona Oeste 10 5 3 1 0
## Zona Oriente 1 0 0 0 0
## Zona Sur 5 2 1 0 0
barplot(tabla_cruzada_zona1, beside = TRUE, legend = TRUE, col = rainbow(nrow(tabla_cruzada_zona1)))
Se realiza la tabla cruzada entre la zona y el área construida
tabla_cruzada_zonaa <- table(datosSINA$zona, cut(datosSINA$areaconst, breaks = 15))
tabla_cruzada_zonaa
##
## (28.3,144] (144,259] (259,373] (373,487] (487,602] (602,716]
## Zona Centro 46 51 20 5 1 0
## Zona Norte 1224 340 219 80 31 6
## Zona Oeste 509 431 170 56 22 10
## Zona Oriente 156 124 41 19 8 0
## Zona Sur 2824 968 486 258 108 30
##
## (716,830] (830,945] (945,1.06e+03] (1.06e+03,1.17e+03]
## Zona Centro 1 0 0 0
## Zona Norte 12 6 2 0
## Zona Oeste 4 1 0 0
## Zona Oriente 0 1 0 0
## Zona Sur 19 12 12 3
##
## (1.17e+03,1.29e+03] (1.29e+03,1.4e+03] (1.4e+03,1.52e+03]
## Zona Centro 0 0 0
## Zona Norte 1 0 1
## Zona Oeste 1 0 0
## Zona Oriente 0 1 0
## Zona Sur 2 0 2
##
## (1.52e+03,1.63e+03] (1.63e+03,1.75e+03]
## Zona Centro 0 0
## Zona Norte 0 0
## Zona Oeste 0 0
## Zona Oriente 0 1
## Zona Sur 2 0
barplot(tabla_cruzada_zonaa, beside = TRUE, legend = TRUE, col = rainbow(nrow(tabla_cruzada_zonaa)))
## [1] 0.6872452
norte_precio <- datosSINA[datosSINA$zona == "Zona Norte", ]
frec_precionorte<- fdt(norte_precio$preciom,breaks="Sturges", na.rm = TRUE)
frec_precionorte
## Class limits f rf rf(%) cf cf(%)
## [64.35,222.271) 683 0.36 35.54 683 35.54
## [222.271,380.192) 606 0.32 31.53 1289 67.07
## [380.192,538.113) 339 0.18 17.64 1628 84.70
## [538.113,696.033) 146 0.08 7.60 1774 92.30
## [696.033,853.954) 71 0.04 3.69 1845 95.99
## [853.954,1011.88) 37 0.02 1.93 1882 97.92
## [1011.88,1169.8) 11 0.01 0.57 1893 98.49
## [1169.8,1327.72) 14 0.01 0.73 1907 99.22
## [1327.72,1485.64) 5 0.00 0.26 1912 99.48
## [1485.64,1643.56) 7 0.00 0.36 1919 99.84
## [1643.56,1801.48) 2 0.00 0.10 1921 99.95
## [1801.48,1959.4) 1 0.00 0.05 1922 100.00
## zona piso estrato preciom areaconst
## Length:1922 Min. : 1.000 3:572 Min. : 65.0 Min. : 30.0
## Class :character 1st Qu.: 2.000 4:408 1st Qu.: 160.0 1st Qu.: 70.0
## Mode :character Median : 2.000 5:770 Median : 300.0 Median : 107.0
## Mean : 3.178 6:172 Mean : 345.8 Mean : 161.2
## 3rd Qu.: 3.750 3rd Qu.: 430.0 3rd Qu.: 216.0
## Max. :12.000 Max. :1940.0 Max. :1440.0
## parquea banios habitac tipo
## Min. : 0.000 Min. : 0.00 Min. : 0.000 Length:1922
## 1st Qu.: 0.000 1st Qu.: 2.00 1st Qu.: 3.000 Class :character
## Median : 1.000 Median : 2.00 Median : 3.000 Mode :character
## Mean : 1.104 Mean : 2.78 Mean : 3.502
## 3rd Qu.: 2.000 3rd Qu.: 3.00 3rd Qu.: 4.000
## Max. :10.000 Max. :10.00 Max. :10.000
## precimtc
## Min. :0.2569
## 1st Qu.:1.6928
## Median :2.2265
## Mean :2.4477
## 3rd Qu.:3.1246
## Max. :9.4681
sur_precio <- datosSINA[datosSINA$zona == "Zona Sur", ]
frec_preciosur<- fdt(sur_precio$preciom,breaks="Sturges", na.rm = TRUE)
frec_preciosur
## Class limits f rf rf(%) cf cf(%)
## [74.25,206) 995 0.21 21.05 995 21.05
## [206,337.8) 1546 0.33 32.71 2541 53.77
## [337.8,469.6) 812 0.17 17.18 3353 70.95
## [469.6,601.3) 472 0.10 9.99 3825 80.94
## [601.3,733.1) 261 0.06 5.52 4086 86.46
## [733.1,864.9) 203 0.04 4.30 4289 90.75
## [864.9,996.6) 138 0.03 2.92 4427 93.67
## [996.6,1128) 41 0.01 0.87 4468 94.54
## [1128,1260) 78 0.02 1.65 4546 96.19
## [1260,1392) 46 0.01 0.97 4592 97.16
## [1392,1524) 53 0.01 1.12 4645 98.29
## [1524,1655) 30 0.01 0.63 4675 98.92
## [1655,1787) 23 0.00 0.49 4698 99.41
## [1787,1919) 28 0.01 0.59 4726 100.00
centro_precio <- datosSINA[datosSINA$zona == "Zona Centro", ]
frec_preciocentro<- fdt(norte_precio$preciom,breaks="Sturges", na.rm = TRUE)
frec_preciocentro
## Class limits f rf rf(%) cf cf(%)
## [64.35,222.271) 683 0.36 35.54 683 35.54
## [222.271,380.192) 606 0.32 31.53 1289 67.07
## [380.192,538.113) 339 0.18 17.64 1628 84.70
## [538.113,696.033) 146 0.08 7.60 1774 92.30
## [696.033,853.954) 71 0.04 3.69 1845 95.99
## [853.954,1011.88) 37 0.02 1.93 1882 97.92
## [1011.88,1169.8) 11 0.01 0.57 1893 98.49
## [1169.8,1327.72) 14 0.01 0.73 1907 99.22
## [1327.72,1485.64) 5 0.00 0.26 1912 99.48
## [1485.64,1643.56) 7 0.00 0.36 1919 99.84
## [1643.56,1801.48) 2 0.00 0.10 1921 99.95
## [1801.48,1959.4) 1 0.00 0.05 1922 100.00
frecuencia_zona <- table(datosSINA$zona)
porcentajes <- prop.table(frecuencia_zona) * 100
pie(frecuencia_zona, labels = paste(names(frecuencia_zona), "(", round(porcentajes, 1), "%)"), col = rainbow(length(frecuencia_zona)))
title("Diagrama Zonas")
frecuencia_estrato <- table(datosSINA$estrato)
porcentajes <- prop.table(frecuencia_estrato) * 100
pie(frecuencia_estrato, labels = paste(names(frecuencia_estrato), "(", round(porcentajes, 1), "%)"), col = rainbow(length(frecuencia_estrato)))
title("Diagrama Estrato")
frecuencia_tipo <- table(datosSINA$tipo)
porcentajes <- prop.table(frecuencia_tipo) * 100
pie(frecuencia_tipo, labels = paste(names(frecuencia_tipo), "(", round(porcentajes, 1), "%)"), col = rainbow(length(frecuencia_tipo)))
title("Tipo de vivienda")
barplot(table(datosSINA$piso), col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Piso en el que se ubica la vivienda")
barplot(table(datosSINA$habitac), col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Número de habitaciones")
barplot(table(datosSINA$banios), col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Número de baños")
barplot(table(datosSINA$parquea), col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Número de parqueadero")
hist(datosSINA$preciom, col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Valor del inmueble en millones")
hist(datosSINA$precimtc, col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Valor por metro cuadrado en millones")
plot(density(datosSINA$areaconst), main = "Gráfico de Densidad de la variable área construida", xlab = "Valores", ylab = "Densidad")
plot(datosSINA$areaconst, datosSINA$preciom, xlab = "Tamaño", ylab = "Precio", main = "Gráfico de dispersión: Tamaño vs Precio")
## piso preciom areaconst parquea
## Min. : 1.000 Min. : 58.0 Min. : 30 Min. : 0.000
## 1st Qu.: 2.000 1st Qu.: 220.0 1st Qu.: 80 1st Qu.: 1.000
## Median : 2.000 Median : 330.0 Median : 123 Median : 1.000
## Mean : 3.211 Mean : 434.3 Mean : 175 Mean : 1.483
## 3rd Qu.: 4.000 3rd Qu.: 540.0 3rd Qu.: 229 3rd Qu.: 2.000
## Max. :12.000 Max. :1999.0 Max. :1745 Max. :10.000
## banios habitac precimtc
## Min. : 0.000 Min. : 0.000 Min. :0.1461
## 1st Qu.: 2.000 1st Qu.: 3.000 1st Qu.:1.9167
## Median : 3.000 Median : 3.000 Median :2.6431
## Mean : 3.112 Mean : 3.605 Mean :2.7230
## 3rd Qu.: 4.000 3rd Qu.: 4.000 3rd Qu.:3.3810
## Max. :10.000 Max. :10.000 Max. :9.4681
A continuación, se presentan los resultados obtenidos del análisis del conjunto de datos, detallando las variables utilizadas y los estadísticos calculados:
Variables del Conjunto de Datos:
Depuración y Limpieza de Datos: Se llevó a cabo una exhaustiva depuración y limpieza del conjunto de datos, identificando dos variables categóricas, una de tipo factor, y siete variables numéricas.
Resultados para Variables Numéricas:
Precio: El valor medio de las viviendas en Cali es de $434.300.000. La mitad de las viviendas tienen un precio inferior o igual a $330.000.000, mientras que solo el 25% de ellas tienen un precio por debajo de los $220.000.000. El rango de precios oscila entre $58.000.000 y $1.999.000.000. Área construida: La media del área construida para las viviendas en Cali es de 175 metros cuadrados. La mitad de las viviendas tienen un área entre 30 y 123 metros cuadrados. Solo el 25% tienen una superficie igual o superior a 229 metros cuadrados, con un máximo registrado de 1745 metros cuadrados. Habitaciones y Baños: En promedio, las viviendas cuentan con entre 3 y 4 habitaciones y tres baños. Solo el 25% tienen 4 o más baños y habitaciones. Precio por metro cuadrado: El precio promedio por metro cuadrado en Cali es de alrededor de $2.723.000, llegando en ocasiones a alcanzar un máximo de $9.468.100. Solo el 25% de las viviendas tienen un precio por metro cuadrado menor o igual a $1.916.700. Parqueaderos: Se observa un promedio de un parqueadero por vivienda. Solo el 25% de ellas cuenta con 2 o más parqueaderos. Resultados para Variables Cualitativas:
Tipo de vivienda: Predomina la oferta de apartamentos sobre las casas, con un 61.3% de apartamentos en comparación con un 38.7% de casas. Estrato: Los estratos presentes en el conjunto de datos son 3, 4, 5 y 6, siendo el estrato 5 el más común con un 33% de las viviendas, seguido por el estrato 6 (23.9%), el estrato 4 (25.6%) y el estrato 3 (17.4%). Zona: La mayoría de las viviendas se ubican en la Zona Sur (56.8%), seguida por la Zona Norte (23.1%) y la Zona Oeste (14.5%). La Zona Oriental y la Zona Centro, en conjunto, representan el 5.7% restante. Por otro lado, al graficar la relación entre el área construida y el precio de la vivienda, se evidencia una clara tendencia: a medida que el área construida aumenta, también lo hace el precio, concentrándose la mayoría de los puntos en un rango de tamaño entre 0 y 300 metros cuadrados, con un precio que oscila entre $58 y $500 millones aproximadamente.
Al analizar la relación entre el número de habitaciones y el precio, se observa que la mayoría de las viviendas con precios entre $56 millones y $187 millones tienen 3 habitaciones, tendencia que se mantiene en rangos de precios más altos, fluctuando luego entre 3 y 4 habitaciones.
En cuanto al precio por metro cuadrado, se destaca que en la zona sur es donde se concentra el mayor número de viviendas con valores entre 0.78 millones y 5.12 millones.
Basándonos en los resultados proporcionados, identificamos un posible nicho para una empresa inmobiliaria en Cali: la oferta de apartamentos en la Zona Sur, especialmente aquellos que se encuentran en el rango de precios más accesibles y con un área construida moderada. Esto se justifica por las siguientes razones:
Demanda de Apartamentos: Los datos muestran que la oferta de apartamentos supera a la de casas, con un 61.3% de apartamentos en comparación con un 38.7% de casas. Esto sugiere una demanda significativa de apartamentos en el mercado inmobiliario de Cali.
Zona Sur: La mayoría de las viviendas se encuentran en la Zona Sur, abarcando el 56.8% del total. Esta zona puede representar una oportunidad estratégica para enfocar los esfuerzos de comercialización y captar un segmento importante del mercado.
Rango de Precios y Área Construida: Al graficar la relación entre el área construida y el precio de la vivienda, se observa que la mayoría de los puntos se concentran en un rango de tamaño entre 0 y 300 metros cuadrados, con un precio que oscila entre $58 y $500 millones aproximadamente. Este rango de precios y área construida puede ser atractivo para un segmento de compradores interesados en adquirir apartamentos de tamaño moderado y precio accesible.
Con base en este nicho identificado, se propone la siguiente estrategia de marketing:
Estrategia de Marketing:
Segmentación del Mercado: Segmentar el mercado objetivo según criterios demográficos y socioeconómicos para identificar compradores potenciales interesados en apartamentos en la Zona Sur de Cali, con un rango de precios y área construida específicos.
Personalización de Mensajes: Desarrollar mensajes de marketing personalizados que resalten las características clave de los apartamentos en la Zona Sur, como su ubicación conveniente, comodidades, y precios competitivos.
Canales de Comunicación: Utilizar una combinación de canales de comunicación efectivos, como publicidad en línea dirigida, redes sociales, anuncios en portales inmobiliarios locales, y marketing directo a través de correo electrónico o correo físico.
Eventos y Ferias Inmobiliarias: Participar en eventos y ferias inmobiliarias locales en la Zona Sur para aumentar la visibilidad de la empresa y sus propiedades, y establecer relaciones con posibles compradores.
Colaboraciones Estratégicas: Establecer colaboraciones con agentes inmobiliarios locales y otros actores del mercado para ampliar la red de contactos y aumentar las oportunidades de venta.
En resumen, enfocar los esfuerzos de marketing en la oferta de apartamentos en la Zona Sur de Cali, con precios y áreas construidas específicas, puede ser una estrategia efectiva para captar la atención de compradores potenciales y satisfacer sus necesidades de vivienda.
En conclusión, el análisis realizado revela una diversidad significativa en el mercado inmobiliario de Cali, caracterizado por una amplia gama de precios, tamaños de viviendas y ubicaciones. Esta variabilidad indica una demanda heterogénea que abarca desde viviendas más asequibles hasta propiedades de lujo, lo que brinda oportunidades para satisfacer las necesidades de diversos segmentos de la población.
Además, se identificaron tendencias claras, como la relación entre el área construida y el precio, que ofrecen valiosa información sobre las preferencias de los compradores. Por ejemplo, la tendencia a que el precio aumente con el tamaño de la vivienda sugiere una demanda de propiedades más grandes.
La predominancia de apartamentos sobre casas y la concentración de viviendas en ciertas zonas, como la Zona Sur, proporcionan información sobre áreas de enfoque para la diferenciación y el desarrollo de estrategias de marketing específicas.
En cuanto a la estrategia de marketing, se recomienda la segmentación del mercado en función del tipo de vivienda, estrato y ubicación, para dirigir los esfuerzos de manera más efectiva hacia los segmentos más relevantes. La personalización de los mensajes y ofertas basados en las preferencias de los compradores, así como la selección adecuada de canales de marketing, como la publicidad en línea dirigida o el marketing directo en áreas específicas, son estrategias clave para llegar a la audiencia objetivo.
Finalmente, se destaca la importancia del branding y la diferenciación, resaltando la experiencia en el mercado local y la capacidad para satisfacer las necesidades únicas de los compradores en Cali, lo que permitirá a la empresa construir una marca sólida y destacarse frente a la competencia.
En resumen, una empresa inmobiliaria puede aprovechar las oportunidades en el mercado de Cali al utilizar datos y tendencias para informar sus estrategias de marketing, segmentar el mercado de manera efectiva y diferenciarse a través de mensajes personalizados y un branding sólido.
frecuencia_zona <- table(datosSINA$zona)
porcentajes <- prop.table(frecuencia_zona) * 100
pie(frecuencia_zona, labels = paste(names(frecuencia_zona), "(", round(porcentajes, 1), "%)"), col = rainbow(length(frecuencia_zona)))
title("Diagrama Zonas")
frecuencia_estrato <- table(datosSINA$estrato)
porcentajes <- prop.table(frecuencia_estrato) * 100
pie(frecuencia_estrato, labels = paste(names(frecuencia_estrato), "(", round(porcentajes, 1), "%)"), col = rainbow(length(frecuencia_estrato)))
title("Diagrama Estrato")
frecuencia_tipo <- table(datosSINA$tipo)
porcentajes <- prop.table(frecuencia_tipo) * 100
pie(frecuencia_tipo, labels = paste(names(frecuencia_tipo), "(", round(porcentajes, 1), "%)"), col = rainbow(length(frecuencia_tipo)))
title("Tipo de vivienda")
barplot(table(datosSINA$piso), col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Piso en el que se ubica la vivienda")
barplot(table(datosSINA$habitac), col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Número de habitaciones")
barplot(table(datosSINA$banios), col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Número de baños")
barplot(table(datosSINA$parquea), col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Número de parqueadero")
hist(datosSINA$preciom, col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Valor del inmueble en millones")
hist(datosSINA$precimtc, col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Valor por metro cuadrado en millones")
plot(density(datosSINA$areaconst), main = "Gráfico de Densidad de la variable área construida", xlab = "Valores", ylab = "Densidad")
plot(datosSINA$areaconst, datosSINA$preciom, xlab = "Tamaño", ylab = "Precio", main = "Gráfico de dispersión: Tamaño vs Precio")