1.Introducción

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.

2.Objetivos

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

3.Métodos

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.

  1. Limpeza de datos: Importación de los datos, revisión de datos faltantes, estandarización de varibles.

  2. 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.

Limpieza de los datos

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.

4. Resultados

Analisis de variables

Zona

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.

Estrato

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.

Precio de la vivienda

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.

caracteristicas de las viviendas

Area Construida

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.

Tipo de vivienda

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.

Parqueadero

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.

Numero de Baños

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)

Numero de habitaciones

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.

Analisis cruzado

Tipo de vivienda

Tipo por piso

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.

Tipo de vivienda por zona

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.

Precio

Precio de las viviendas en diferentes zonas de Cali

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

Precio de las viviendas por estratos

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.

Precio de las viviendas por tipo de vivienda

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"))

Precio de las viviendas por piso para apartamentos

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.

5. Conclusiones

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.