1. Introducción

La empresa **B&C** (Bines y Casas) es una agencia de bienes raíces que opera en la ciudad de Cali, Colombia. La empresa fue fundada por Sandra Milena hace 10 años y actualmente cuenta con ocho agentes de bienes raíces.

El mercado de bienes raíces en Cali ha crecido significativamente en los últimos años, impulsado por el crecimiento de la población, la inversión extranjera directa y el desarrollo de nuevos proyectos inmobiliarios. En 2022, las ventas del sector en Cali llegaron a \$6700 millones y en 2023 a \$6100 mil millones. Se espera que este sector continue creciendo durante los próximos años, permitiendo un desarrollo dinámico en la economía regional.

La empresa **B&C** ha recogido información sobre viviendas que incluye información sobre el precio, la ubicación, las características y la venta de viviendas en Cali. Esta base de datos puede ser utilizada para realizar un informe estadístico que sería de gran interés para la empresa.

  1. Objetivo.

Realizar un análisis descriptivo de los datos para la empresa B&C con el fin de identificar las tendencias y patrones en los datos y poder tomar decisiones sobre su negocio.

  1. Métodos

Resumen de la base de datos

borrar <- c("longitud","latitud")
vivienda_faltantes2 <- vivienda_faltantes[ , !(names(vivienda_faltantes) %in% borrar)]
names (vivienda_faltantes2) = c("ID","ZONA", "PISO", "ESTR", "PREC", "AREA", "PARQ", "WC","HABI","TIPO","BARRI")
head(vivienda_faltantes2, n=10)
## # A tibble: 10 × 11
##       ID ZONA        PISO  ESTR  PREC  AREA  PARQ    WC  HABI TIPO        BARRI 
##    <dbl> <chr>      <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>       <chr> 
##  1  8312 Zona Oeste     4     6  1300   318     2     4     2 Apartamento arbol…
##  2  8311 Zona Oeste     1     6   480   300     1     4     4 Casa        norma…
##  3  8307 Zona Oeste    NA     5  1200   800     4     7     5 Casa        miraf…
##  4  8296 Zona Sur       2     3   220   150     1     2     4 Casa        el gu…
##  5  8297 Zona Oeste    NA     5   330   112     2     4     3 Casa        bella…
##  6  8298 Zona Sur      NA     5  1350   390     8    10    10 Casa        bella…
##  7  8299 Zona Sur       2     6   305   125     2     3     3 Apartamento bella…
##  8  8300 Zona Oeste    NA     5   480   280     4     4     4 Apartamento bella…
##  9  8286 Zona Sur      NA     5   275    74     1     2     3 Apartamento valle…
## 10  8287 Zona Sur       2     5   285   120     2     4     3 Apartamento bella…
summary(vivienda_faltantes2)
##        ID           ZONA                PISO             ESTR      
##  Min.   :   1   Length:8330        Min.   : 1.000   Min.   :3.000  
##  1st Qu.:2082   Class :character   1st Qu.: 2.000   1st Qu.:4.000  
##  Median :4164   Mode  :character   Median : 3.000   Median :5.000  
##  Mean   :4164                      Mean   : 3.772   Mean   :4.634  
##  3rd Qu.:6246                      3rd Qu.: 5.000   3rd Qu.:5.000  
##  Max.   :8319                      Max.   :12.000   Max.   :6.000  
##  NA's   :3                         NA's   :2641     NA's   :3      
##       PREC             AREA           PARQ              WC        
##  Min.   :  58.0   Min.   :  30   Min.   : 1.000   Min.   : 0.000  
##  1st Qu.: 220.0   1st Qu.:  80   1st Qu.: 1.000   1st Qu.: 2.000  
##  Median : 330.0   Median : 123   Median : 2.000   Median : 3.000  
##  Mean   : 434.2   Mean   : 175   Mean   : 1.836   Mean   : 3.112  
##  3rd Qu.: 540.0   3rd Qu.: 229   3rd Qu.: 2.000   3rd Qu.: 4.000  
##  Max.   :1999.0   Max.   :1745   Max.   :10.000   Max.   :10.000  
##  NA's   :2        NA's   :3      NA's   :1606     NA's   :3       
##       HABI            TIPO              BARRI          
##  Min.   : 0.000   Length:8330        Length:8330       
##  1st Qu.: 3.000   Class :character   Class :character  
##  Median : 3.000   Mode  :character   Mode  :character  
##  Mean   : 3.605                                        
##  3rd Qu.: 4.000                                        
##  Max.   :10.000                                        
##  NA's   :3

Del resumen de la tabla se puede concluir que:

Informacion de numero de casas y de apartamentos: En total 8327 inmuebles de 8330.

vivienda_faltantes2$TIPO<-factor(x=vivienda_faltantes2$TIPO,levels = c("Apartamento","APARTAMENTO","apto","casa","Casa","CASA"),labels=c("Apartamento","Apartamento","Apartamento","Casa","Casa","Casa")) 
table(vivienda_faltantes2$TIPO)
## 
## Apartamento        Casa 
##        5106        3221

Resumen de datos faltantes

md.pattern(vivienda_faltantes2)

##      PREC ID ZONA ESTR AREA WC HABI TIPO BARRI PARQ PISO     
## 4812    1  1    1    1    1  1    1    1     1    1    1    0
## 1912    1  1    1    1    1  1    1    1     1    1    0    1
## 877     1  1    1    1    1  1    1    1     1    0    1    1
## 726     1  1    1    1    1  1    1    1     1    0    0    2
## 1       1  0    0    0    0  0    0    0     0    0    0   10
## 2       0  0    0    0    0  0    0    0     0    0    0   11
##         2  3    3    3    3  3    3    3     3 1606 2641 4273

El gráfico anterior muestra que 1912 registros no tienen el dato correspondiente al número de pisos de la vivienda (22.95%), 877 no tienen dato correspondiente al número de parqueaderos (10.53%), 726 no tienen ni número de pisos ni de numero de parqueaderos (8.71%), 1 registro solamente contiene información referente al precio de la vivienda (0.01%) y que hay 2 registros con ausencia total de información (0.024%). Por otra parte, hay un total de 4812 registros completos (57.75%)

colSums(is.na(vivienda_faltantes2))
##    ID  ZONA  PISO  ESTR  PREC  AREA  PARQ    WC  HABI  TIPO BARRI 
##     3     3  2641     3     2     3  1606     3     3     3     3
#install.packages("naniar")
require(naniar)
## Loading required package: naniar
vis_miss(vivienda_faltantes2)

El número de valores ausentes por cada variable es;

Comportamiento de datos perdidos

missing_piso<-is.na(vivienda_faltantes2$PISO)
missing_parq<-is.na(vivienda_faltantes2$PARQ)
tapply(X=vivienda_faltantes2$PISO,INDEX=missing_parq,FUN=mean,na.rm=T)
##    FALSE     TRUE 
## 3.886949 3.143672

En el resultado anterior hay una pequeña diferencia entre promedio del número de pisos con respecto a los inmuebles cuyo promedio de número de parqueaderos es faltante.

tapply(X=vivienda_faltantes2$PARQ,INDEX=missing_piso,FUN=mean,na.rm=T)
##    FALSE     TRUE 
## 1.815669 1.887029

De la misma manera, la diferencia entre el promedio del número de parqueaderos para aquellos inmuebles que tienen faltante el número de pisos es levemente superior.

Pruebas de significancia estadística

Intervalo de confianza

El intervalo de confianza describe la variabilidad entre la medida obtenida en un estudio y la medida real de la población (el valor real).

Corresponde a un rango de valores, cuya distribución es normal y en el cual se encuentra, con alta probabilidad, el valor real de una determinada variable. Esta “alta probabilidad” se ha establecido por consenso en 95%. Así, un intervalo de confianza de 95% nos indica que dentro del rango dado se encuentra el valor real de un parámetro con 95% de certeza.

t.test(vivienda_faltantes2$PISO~missing_parq)
## 
##  Welch Two Sample t-test
## 
## data:  vivienda_faltantes2$PISO by missing_parq
## t = 9.004, df = 1412.5, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group FALSE and group TRUE is not equal to 0
## 95 percent confidence interval:
##  0.5813445 0.9052108
## sample estimates:
## mean in group FALSE  mean in group TRUE 
##            3.886949            3.143672

Según lo expresado anteriormente se puede afirmar que los resultados no fueron estadísticamente significativos.

t.test(vivienda_faltantes2$PARQ~missing_piso)
## 
##  Welch Two Sample t-test
## 
## data:  vivienda_faltantes2$PARQ by missing_piso
## t = -2.2717, df = 3286.9, p-value = 0.02317
## alternative hypothesis: true difference in means between group FALSE and group TRUE is not equal to 0
## 95 percent confidence interval:
##  -0.132950632 -0.009769625
## sample estimates:
## mean in group FALSE  mean in group TRUE 
##            1.815669            1.887029

Los resultados no fueron estadísticamente significativos.

Imputacion de datos: Dado que no se observa una diferencia significativa se utilizará el promedio para reemplazar los datos perdidos.

columns <- c("PISO", "PARQ")
imputed_data <- mice(vivienda_faltantes2[,names(vivienda_faltantes2) %in% columns],m = 1,
maxit = 1, method = "mean",seed = 2018,print=F)
complete.data <- mice::complete(imputed_data)
xyplot(imputed_data,PARQ ~PISO)

#Construccion de una tabla que permita el análisis de la variable tipo de vivienda por numero de pisos 
table(vivienda_faltantes2$TIPO, vivienda_faltantes2$PISO)
##              
##                 1   2   3   4   5   6   7   8   9  10  11  12
##   Apartamento 431 512 573 545 564 243 203 211 146 128  84  83
##   Casa        430 938 524  62   4   2   4   0   0   2   0   0

Para la variable correspondiente a número de pisos, la cual es la que contiene mas datos faltantes, se observa que está relacionada únicamente con los inmuebles que son de tipo casa.

##Construccion de una tabla que permita el análisis de la variable tipo de vivienda por numero de parqueaderos 
table(vivienda_faltantes2$TIPO, vivienda_faltantes2$PARQ)
##              
##                  1    2    3    4    5    6    7    8    9   10
##   Apartamento 2299 1586  253   90    4    2    1    0    0    2
##   Casa         857  892  268  296   64   66   17   17    4    6

La segunda variable que mas ausencia de datos presenta es la que hace referencia al número de parqueaderos, de ésta variable se puede decir que está relacionada unicamente con los inmuebles de tipo apartamento.

  1. Resultados
boxplot(vivienda_faltantes2$PISO ~ vivienda_faltantes2$TIPO,horizontal = TRUE, main="Distribucion de inmuebles segun el numero de pisos", col="green", xlab="Numero de pisos", ylab = "Tipo de inmueble")

El diagrama de cajas indica un número mayor de casas las cuales estan compuestas entre 2 y 3 pisos. Para el caso de los apartamentos, aquellos que tienen entre 2 y 6 pisos son los estan en mayor numero.Distribucion sesgada a la derecha

boxplot(vivienda_faltantes2$PARQ ~ vivienda_faltantes2$TIPO,horizontal = TRUE, main="Distribucion de inmuebles segun el numero de parqueaderos", col="orange", xlab = "Numero de parqueaderos", ylab = "Tipo de inmueble")

El diagrama de cajas indica un número mayor de casas las cuales estan compuestas entre 0 y 3 parqueaderos. Para el caso de los apartamentos, aquellos que tienen entre 0 y 2 parqueaderos son los estan en mayor numero. Distribucion sesgada a la derecha

#CONCENTRACION DE INMUBLES POR ZONA
table_iz <- table(vivienda_faltantes2$TIPO, vivienda_faltantes2$ZONA)
table_iz
##              
##               Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
##   Apartamento          24       1199       1035           62     2786
##   Casa                100        723        169          289     1940
barplot(table_iz, main="Inmuebles por zona", xlab = "Zonas", ylab = "Catidad de inmuebles", col = c("royalblue","grey"))
legend(x = "topleft", legend = c("Apartamento", "Casa"), fill = c("royalblue", "grey"), 
       title = "Tipo de Inmueble")

Del gráfico anterior se puede establecer que la zona sur es aquella en donde hay una mayor concentración de inmuebles con 2786 apartamentos y 1940 casas, seguido de la zona norte en donde hay total de 1922 propiedades de las cuales 1199 son apartamentos y 723 casas. El tercer lugar lo ocupa la zona oeste con 1035 apartamentos y 169 casas.

Ahora bien, se observa que en las zonas mencionadas anteriormente predomina el número de apartamentos sobre el número de casas.

Caso contrario ocurre en las zonas centro y oriente, el número de casas es mayor. Es posible que haya una oportunidad de negocio enfocado al tipo de vivienda que son apartamentos.

table_ie <- table(vivienda_faltantes2$TIPO, vivienda_faltantes2$ESTR)
table_ie
##              
##                  3    4    5    6
##   Apartamento  639 1404 1767 1296
##   Casa         814  727  984  696
barplot(table_ie, main="Inmuebles por estrato", xlab = "Estrato", ylab = "Catidad de inmuebles", col = c("royalblue","grey"))
legend(x = "topleft", legend = c("Apartamento", "Casa"), fill = c("royalblue", "grey"), 
       title = "Tipo de Inmueble")

Con respecto a la variable estrato, inicialmente no hay información para estratos 1 y 2, puede ser un posible nicho de mercado. De nuevo la cantidad de apartamentos es mayor que la cantidad de casas.

Generación de rangos y tabla de frecuencias segmentada por la variable precio

orden_prec <- sort(vivienda_faltantes2$PREC)
nointervalos <- nclass.Sturges(orden_prec) 
tabla.intervalos <- transform(table(cut(orden_prec, breaks = nointervalos))) 
inmueble.precio=cut(vivienda_faltantes2$PREC, tabla.intervalos$Freq)
table_ip <- table(vivienda_faltantes2$TIPO, inmueble.precio, useNA ='always')
table_ip2 <- table(inmueble.precio, vivienda_faltantes2$TIPO, useNA ='always')
table_ip2
##                      
## inmueble.precio       Apartamento Casa <NA>
##   (16,33]                       0    0    0
##   (33,41]                       0    0    0
##   (41,72]                      12    0    0
##   (72,75]                      11    0    0
##   (75,105]                    156   16    0
##   (105,121]                   204   18    0
##   (121,174]                   869  172    0
##   (174,286]                  1400  514    0
##   (286,313]                   331  143    0
##   (313,654]                  1500 1533    1
##   (654,885]                   278  368    0
##   (885,1.65e+03]              318  403    0
##   (1.65e+03,1.66e+03]           0    0    0
##   (1.66e+03,2.24e+03]          27   54    0
##   <NA>                          0    0    2
barplot(table_ip, main = "Distribucion de inmuebles por rango de precios", col =c("red","grey"), xlab = "Rango de precios en millones", ylab = "Numero de Inmuebles")
legend(x = "topleft", legend = c("Apartamento", "Casa"), fill = c("red", "grey"), 
       title = "Tipo de Inmueble")

Los precios de los inmuebles con mayor número de concentración oscilan entre los 105 millones y los 885 millones.

Hay muy pocos inmuebles que superan los 900 millones de pesos.

  1. Discusión

Según el análisis de los datos, se podría decir que no se tuvo en cuenta los estratos 1 y 2. Hoy en día con los proyectos gubernamentales pertinentes a la vivienda de interés social, se hace importante empezar a conocer las características de este sector ya que puede llegar a ser un posible caso de negocio.

Hay zonas de la cuidad, como la zona centro y la zona oriente donde se puede incentivar la construcción de unidades residenciales compuestas por apartamentos, esto teniendo en cuenta que, en su mayoría, las zonas céntricas de las capitales colombianas tienden a proteger la arquitectura original de las viviendas, sin embargo, son zonas que hay que tener en cuenta

  1. Conclusiones

Resumen

  1. Anexos

Actividad_U1_William_Contreras.Rmd