El presente informe hace referecia al comportamiento El mercado de bienes raíces en Cali a partir de la información recolectada por la empresa B&C sobre viviendas de la ciudad en una base de datos la cual incluye información sobre el precio, la ubicación, estrato, entre otros; la misma nos pemitirá realizar un informe estadístico que permita a la empresa tener un mayor conocimento del mercado y asi se realice toma de deciciones que favorezcan a la empresa.
Realizar un analisis descriptivo de las variables
Evaluar el precio de las viviendas con respecto a las diferentes zonas de ciudad Cali.
Identificar el tipo de viviendas más vendidas en Cali. Características más buscadas en las viviendas en Cali
A apartir de la recolección de información proporcionada por la empresa B&C, se realizará un analisis exploratorio y descriptivo donde se pretende organizar, resumir y presentar datos de manera informativa, mediante medidas de tendencia.
Limpeza de datos: Importación de los datos, revisión de datos faltantes, estandarización de varibles.
Analisisis individual: Resumen de cada variable de la base de datos de forma individual.
C. Analisis cruzados: cruce de informarción entre variables que permitan establecer su relación.
Se evalua la base de datos con el fin de determinar si existe datos faltantes.
faltantes <- colSums(is.na(viviendas))
faltantes
## id zona piso estrato preciom areaconst parquea banios
## 3 3 2641 3 2 3 1606 3
## habitac tipo barrio longitud latitud
## 3 3 3 3 3
grafico <-md.pattern(viviendas, rotate.names = TRUE)
Se elimiman las filas que no contienen informacion en ninguna de las variables, lo que puede generarse por errores en la digitación.
which (is.na(viviendas$id))
## [1] 8320 8321 8322
viviendas1 <- viviendas[-c (8320, 8321, 8322), ]
grafico <-md.pattern(viviendas1, rotate.names = TRUE)
Para la variable de Parqueadero se trabaja bajo el supuesto que las
personas que no respondieron a la pregunta de parqueaderos es porque su
vivienda no cuenta con uno, sin embargo, se recomienda que para futura
recoleción de información validar con el area encargada que para se
especifique que en caso de no poseer parqueadero la vivienda se deba
diligenciar el numero cero (0).
viviendas1$parquea[is.na(viviendas1$parquea)] <- 0
grafico <-md.pattern(viviendas1, rotate.names = TRUE)
Para la variable piso se estable que se trabajará sobre el 70% de la
población estudiada dado, adicional a ellos tambien se recomiendo que
para futuras recolección de información sea una pregunta de obligatoria
respuesta.
Validación de la variables cualitativas para unificar criterios en las variables
table(viviendas1$zona)
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## 124 1922 1204 351 4726
La variable Zona no presenta errores
table(viviendas1$tipo)
##
## Apartamento APARTAMENTO apto casa Casa CASA
## 5032 61 13 14 3195 12
La variable Tipo se debe estandarizar para su tratamiento.
viviendas1 <- viviendas1 %>%
mutate(tipo = dplyr::recode(tipo, "APARTAMENTO" = "Apartamento", "apto" = "Apartamento", "casa" = "Casa", "CASA" = "Casa"))
table(viviendas1$tipo)
##
## Apartamento Casa
## 5106 3221
head(viviendas1$barrio)
## [1] "arboleda" "normandía" "miraflores" "el guabal"
## [5] "bella suiza alta" "bella suiza alta"
La variable barrio presenta diferencias por lo cual se debe estandarizar la variable
barrio_1<- viviendas1$barrio
barrio_1<-trimws(barrio_1) # eliminacion de espacios en blanco
barrio_1<-iconv(barrio_1, to="ASCII//TRANSLIT") #eliminacion acento
barrio_1<-toupper(barrio_1) # poner todo en mayuscula
viviendas1$barrio<-barrio_1 # actualizacion de datos de la base original
head(viviendas1$barrio)
## [1] "ARBOLEDA" "NORMANDIA" "MIRAFLORES" "EL GUABAL"
## [5] "BELLA SUIZA ALTA" "BELLA SUIZA ALTA"
table(viviendas1$banios)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 45 497 2946 1994 1460 891 315 107 48 15 9
Existes 45 registros de viviendas que no tienen baño, sin embargo, se presume que es un error en la digitación dado que toda vivienda debe contar por lo menos con un baño.
table(viviendas1$habitac)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 66 59 927 4101 1731 680 318 173 138 83 51
Para la variable habitancion existen 66 registros que indican que la viivenda no cuenta con habitaciones por lo que para el informe se asusme que son viviendas de un solo ambiente.
summarytools::freq(viviendas1$zona, cumul = T)
## Frequencies
## viviendas1$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
T1= table(viviendas1$zona) %>%
prop.table()*100
barplot(T1, col=c("#f95738","#ee964b", "royalblue", "seagreen", "purple"),
xlab = "Zona", ylab = "porcentaje",
main = "porcentaje segun Zona vivienda",
las=1 )
Se puede evidenciar que la Zona Sur, es la zona donde se presenta mayor
de inmuebles seguido de la zona norte siendo casi el 80 % de
mercado.
summarytools::freq(viviendas1$estrato, cumul = T)
## Frequencies
## viviendas1$estrato
## Type: Numeric
##
## 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
T2= table(viviendas1$estrato) %>%
prop.table()*100
pie(T2,main = "porcentaje segun Estrato de la vivienda")
La mayor oferta de vivienda se encuentra en el estrato socioeconomico
cinco (5)con el 33.04%, sin embargo, para los otros tres estatos 3, 4, y
6 se cuenta con 17.45%, 25,6% y 23.9% respectivamente, lo que represneta
la variedad en el mercado.
x = viviendas$preciom
summarytools::descr(x)
## Descriptive Statistics
## x
## N: 8330
##
## x
## ----------------- ---------
## Mean 434.24
## Std.Dev 329.02
## Min 58.00
## Q1 220.00
## Median 330.00
## Q3 540.00
## Max 1999.00
## MAD 209.05
## IQR 320.00
## CV 0.76
## Skewness 1.85
## SE.Skewness 0.03
## Kurtosis 3.66
## N.Valid 8328.00
## Pct.Valid 99.98
boxplot(viviendas1$preciom, main="precio de vivienda en millones", col="pink")
En promedio la oferta de vivienda en Cali tiene un costo de 430 millones de pesos, sin embargo para tener información completa es importante revisar esta variable con respecto a otras variables que pueda permitir un analisis completo y significativo.
x = viviendas$areaconst
summarytools::descr(x)
## Descriptive Statistics
## x
## N: 8330
##
## x
## ----------------- ---------
## Mean 174.99
## Std.Dev 142.95
## Min 30.00
## Q1 80.00
## Median 123.00
## Q3 229.00
## Max 1745.00
## MAD 84.51
## IQR 149.00
## CV 0.82
## Skewness 2.69
## SE.Skewness 0.03
## Kurtosis 12.90
## N.Valid 8327.00
## Pct.Valid 99.96
hist(x = viviendas$areaconst, main = "Histograma de area construida",
xlab = "Area construida", ylab = "Frecuencia",
col = "purple")
En la oferta de metros cuadrados de cali va desde 30m2 hasta los 1740
m2, sin embargo como se evidencia en la grafica la mayor concentracion
se encuentra hasta los 500 metros cuadrados.
summarytools::freq(viviendas1$tipo, cumul = T)
## Frequencies
## viviendas1$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
T3= table(viviendas1$tipo) %>%
prop.table()*100
barplot(prop.table(T3), main="Tipo de vivienda", xlab="Tipo", col=c("seagreen","royalblue"),legend.text=c("Apartamentos","Casas"), ylim=c(0,0.6), ylab ="Frecuencia",las=1)
Existe una mayor oferta de apartamentos en el mercado inmobiliario representado el 60% del mercado, con respecto a las casas.
summarytools::freq(viviendas1$parquea, cumul = T)
## Frequencies
## viviendas1$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
T4= table(viviendas1$parquea) %>%
prop.table()*100
barplot(prop.table(T4), main="Parqueaderos por vivienda", xlab="Parqueadederos", col=c("seagreen","#f95738","royalblue","#ee964b","pink", "purple","purple","purple","purple","purple"),legend.text=c("No tiene información","1 parqueadero","2 parqueaderos","3 parqueaderos","4 parqueaderos"), ylim=c(0,0.6), ylab ="Frecuencia",las=1)
con respecto a las viviendas ofertadas por lo menos el 80% de las viviendas cuentan con 1 o mas parqueaderos, cabe resaltar que para el 20% de las viviendas no se cuenta con dicha información, por lo cual se asume que las viviendas no cuentan con parqueadero, sin embargo para futuros analisis es importante contar con todos los campos en caso de no contrar con parqueadero especificarlo de forma clara.
summarytools::freq(viviendas1$banios, cumul = T)
## Frequencies
## viviendas1$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
T11= table(viviendas1$banios) %>%
prop.table()*100
barplot(prop.table(T11), main="No. Baños por vivienda", xlab="No. Baños por vivienda", col=c("seagreen","#f95738","royalblue","#ee964b","pink", "brown","purple","yellow","purple","purple"),legend.text=c("0 Baños","1 Baños","2 Baños","3 Baños","4 Baños", "5 Baños"), ylim=c(0,0.6), ylab ="Frecuencia",las=1)
summarytools::freq(viviendas1$habitac, cumul = T)
## Frequencies
## viviendas1$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
T5= table(viviendas1$habitac) %>%
prop.table()*100
barplot(prop.table(T5), main="Habitaciones por vivienda", xlab="No. habitaciones por vivienda", col=c("seagreen","#f95738","royalblue","#ee964b","pink", "purple","purple","purple","purple","purple"),legend.text=c("No tiene habitaciones","1 habitacion","2 habitanciones","3 habitaciones","4 habitaciones"), ylim=c(0,0.6), ylab ="Frecuencia",las=1)
De las viviendas ofertadas en el mercado inmobiliario en cali el 49.2%
tiene tres habitaciones, el 80% de de las viviendas del mercado cuentan
con entre 2 a 4 habitaciones.
T6 <- table(viviendas1$tipo, viviendas1$piso)
barplot(T6, main="No.de piso por tipo de vivienda",
xlab="Piso ",
col=c("#ee964b","#f4d35e"),
legend = rownames(T6),
las=1, ylim = c(0,2000))
Tipocasa=subset(viviendas1, viviendas1$tipo=="Casa")
T7=table(Tipocasa$piso, Tipocasa$tipo)%>%
prop.table()
T7
##
## Casa
## 1 0.218718210
## 2 0.477110885
## 3 0.266531027
## 4 0.031536114
## 5 0.002034588
## 6 0.001017294
## 7 0.002034588
## 10 0.001017294
Tipoapto=subset(viviendas1, viviendas1$tipo=="Apartamento")
T8=table(Tipoapto$piso, Tipoapto$tipo)%>%
prop.table()
T8
##
## Apartamento
## 1 0.11576685
## 2 0.13752350
## 3 0.15390814
## 4 0.14638732
## 5 0.15149073
## 6 0.06526994
## 7 0.05452592
## 8 0.05667472
## 9 0.03921569
## 10 0.03438088
## 11 0.02256245
## 12 0.02229385
En cuanto al tipo de vivienda con respecto al piso encontramos que para las Casas la mayor oferta se encuentra para las casas que cuentan con dos pisos siendo el 47% de la oferta. en cuanto a los apartamentos encontramos que al rededor del 70% de la oferta se encuentra entres los pisos 1 al 5.
T9 <- table(viviendas1$zona, viviendas1$tipo)
barplot(T9, main="Tipo de vivienda por zona",
xlab="Tipo de vivienda ",
col=c("seagreen","royalblue","#ee964b","pink","brown"),
legend = rownames(T9),
las=1, ylim = c(0,6000))
Con respecto al tipo de vivienda apartamento se evidencia que existe una
mayor oferta en la Zona Sur con respecto a las demas zonas, con recperto
a las Casas las zona con maor oferta son las Zona sur y norte.
boxplot(viviendas1$preciom~viviendas1$zona,
main = "Distribución del precio por Zona en Cali",
ylab="Precio",
xlab = "Zona", las=1,
col=c("seagreen","#f95738","royalblue","#ee964b","pink"))
Se evidencia que la zona que alverga los inmuebles con mayor valor es la Zona Oeste seguido de la Zona sur, por el contrario la Zona de inmuebles de menor valor es la zona Oriente
boxplot(viviendas1$preciom~viviendas1$estrato,
main = "Distribución del precio por Estrato",
ylab="Precio",
xlab = "Estrato", las=1,
col=c("seagreen","royalblue","#ee964b","pink"))
Se evidencia que los inmuebles con mayor valor se encuentran en el estrato socioeconomico 6 por lo que la venta de los inmubles en ese estrato pueden generar mayores ingresos para la empresa.
boxplot(viviendas1$preciom~viviendas1$tipo,
main = "Distribución del precio por tipo de vivienda",
ylab="Precio",
xlab = "Tipo de vivienda", las=1,
col=c("#ee964b","pink"))
boxplot(Tipoapto$preciom~Tipoapto$piso,
main = "Distribución del precio por piso en los apartamentos",
ylab="Precio",
xlab = "Piso", las=1,
col=c("#ee964b","pink","gray","purple","brown"))
Se puede evidenciar que los inmuebles de tipo casa presentan un mayor costo con respecto al tipo apartamento.
A partir de los diferentes analisis realizados a las principales variables del mercado inmobiliario de la ciudad Cali se puede concluir que existe una concentración de la oferta dado que la Zona sur la cual tiene mas del 50 % de la oferta.
Asimismo en la actualidad existe una mayor oferta de apartamentos, y los pisos mas ofertados estan entre 1 al 5 lo que podria incidir en el precio mas bajo debido su mayor oferta, sin embargo es importante tener encuenta otras variable como metros cuadrados, estrato, entre otras.
En cuanto a las caracteristicas de las viviendas vemos como la mayor parte de las oferta de viviendas tiene entre 1 a 3 parqueaderos lo que genera un plus en las ventas dado que en la actualidad es una caracteristica esencial en la busqueda de vivienda.