1. Introducción

El mercado de finca raíz en Cali se ha vuelto un sector importante que genera rentabilidaes atractivas para los inversionistas. A continuación se hace un análisis exploratorio del sector, a partir del registro de ventas de viviendas, para conocer las tendencias en las ventas, precios y ubicación de la oferta inmobiliaria.

2. Objetivo

El objetivo del análisis es registrar los patrones de comportamiento del mercado de finca raíz en la ciudad de Cali asociados a precios, ubicación y características de las viviendas.

3. Método

Se trabajó con una base con 8.330 observaciones y 13 variable, que recogen información categórica sobre la zona de ubicación, el barrio y el tipo de vivienda, y otros atributos de las viviendas como área, habitaciones, baños, piso, garage. Adicional a lo anterior, la base de datos registra la variable continua del precio de la vivienda. El método empleado para se basa en una primera etapa de limpieza de datos que se describe en esta sección, y una siguiente etapa de análisis exploratorio para terminar en las conclusiones que brinden los datos.

La limpieza de datos aborda: análisis de faltantes, análisis de duplicados y categorización de variables.

Análisis de faltantes:

library("naniar")
gg_miss_var(vivienda_faltantes)

Dos variables que tienen que ver con las características de las viviendas tienen un número mayor a 1000 registros de datos faltantes, por lo que no es una opción eliminar estas observaciones, a continuación se registrará el comportamiento de estas dos variables para contemplar la solución a estos registros nulos.

Descripción variable piso:

summary(vivienda_faltantes$piso)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   2.000   3.000   3.772   5.000  12.000    2641
barplot(table(vivienda_faltantes$piso))

Aunque la mediana de la variable piso se concentra en los valores 2 y 3, también se registran valores altos de la variable hasta 12 por lo que no vale la pena hacer una imputación de valor a los faltantes, se resuelve hacer una categorización de esta variable y los faltantes análizarlos dentro de la categorían “No información”

Descripción variable parqueadero:

summary(vivienda_faltantes$parquea)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   1.000   2.000   1.836   2.000  10.000    1606
barplot(table(vivienda_faltantes$parquea))

Los valores de la variable número de parqueaderos se acumula en los valores 1 y 2 con datos extremos que llegan hasta 10, esta variables podría tomar el valor 0, aunque no lo registra por lo que imputarle un valor a estos faltantes podría inducir a un error en el análisis, para esta variable también se resuelve los datos faltantes con la clasificación de la variable, incluyendo la categoría “No información”

Duplicados

duplicados <- duplicated.data.frame(vivienda_faltantes)
viv_sin_duplicados <- subset(vivienda_faltantes, !duplicados)
viv_sinNA <- viv_sin_duplicados[-8320, ]
viv_sinNA2 <- viv_sinNA[-8320, ]

Del análisis de duplicados se eliminaron 9 observaciones duplicadas y 2 observaciones más con valor de “NA” (Ver anexos), como resultado la base de datos de trabajo quedó con 8.319 observaciones.

Categorización de variables de atributos de la vivienda

# transformation de variables
#piso

viv_sinNA2$piso2 <- viv_sinNA2$piso
viv_sinNA2$piso2[is.na(viv_sinNA2$piso2)] <- 99
interv_piso <- c(1, 2, 3, 4, 13, Inf)  
etiqpiso <- c("1 piso", "2 pisos", "3 pisos", "4 o mas", "No informacion")
viv_sinNA2$cate_piso <- cut(viv_sinNA2$piso2, breaks = interv_piso, labels = etiqpiso, right = FALSE)

La variable piso se categoriza y se incluye como categoría “No información” de acuerdo al análisis de faltantes.

#parqueadero

viv_sinNA2$parquea2 <- viv_sinNA2$parquea
viv_sinNA2$parquea2[is.na(viv_sinNA2$parquea2)] <- 99
interv_parquea <- c(1, 2, 3, 4, 13, Inf)  
etiqparquea <- c("1", "2", "3", "4 o mas", "No informacion")
viv_sinNA2$cate_parquea <- cut(viv_sinNA2$parquea2, breaks = interv_parquea, labels = etiqparquea, right = FALSE)

La variable número de parqueaderos se categoriza y se incluye como categoría “No información”

#area
intervalos <- c(0, 100, 200, 300, 400, 500, Inf)  
etiquetas <- c("Menores de 99", "100-199", "200-299", "300-399", "400-499", "Mayores de 500")
viv_sinNA2$categoria_area <- cut(viv_sinNA2$areaconst, breaks = intervalos, labels = etiquetas, right = FALSE)


#baños

interv_banio <- c(0, 1, 2, 3, 4, Inf)  
etiqbanio <- c("Sin banio","1", "2", "3", "4 o mas")
viv_sinNA2$cate_banio <- cut(viv_sinNA2$banios, breaks = interv_banio, labels = etiqbanio, right = FALSE)


#habitacion

interv_habitac <- c(0, 1, 2, 3, 4, Inf)  
etiqhabitac <- c("Sin habitac","1", "2", "3", "4 o mas")
viv_sinNA2$cate_habitac <- cut(viv_sinNA2$habitac, breaks = interv_habitac, labels = etiqhabitac, right = FALSE)


#tipo

viv_sinNA2$tipo[viv_sinNA2$tipo == "APARTAMENTO"] <- "Apartamento"
viv_sinNA2$tipo[viv_sinNA2$tipo == "apto"] <- "Apartamento"
viv_sinNA2$tipo[viv_sinNA2$tipo == "casa"] <- "Casa"
viv_sinNA2$tipo[viv_sinNA2$tipo == "CASA"] <- "Casa"

Las variables área, número de baños y número de habitaciones se concentran en los menores valores de la variable aunque se registran valores altos de baja frecuencia por lo que se categorizan de acuerdo al análisis de frecuencias. La variable tipo de vivienda se ajusta por errores de digitación.

4. Resultados

##Nueva Base

viv_ajustes <- subset(viv_sinNA2, select = -c(piso, parquea, banios, habitac, barrio, longitud, latitud))

Después de los ajustes descritos la base de datos resultante quedó con 8319 observaciones y 13 variables transformadas como se señaló en la sección de métodos.

##Zona

t1=table(viv_ajustes$zona)
summarytools::freq(viv_ajustes$zona)
## Frequencies  
## viv_ajustes$zona  
## Type: Character  
## 
##                      Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ------------------ ------ --------- -------------- --------- --------------
##        Zona Centro    124      1.49           1.49      1.49           1.49
##         Zona Norte   1920     23.08          24.57     23.08          24.57
##         Zona Oeste   1198     14.40          38.97     14.40          38.97
##       Zona Oriente    351      4.22          43.19      4.22          43.19
##           Zona Sur   4726     56.81         100.00     56.81         100.00
##               <NA>      0                               0.00         100.00
##              Total   8319    100.00         100.00    100.00         100.00
pie(t1)

El 56% de las viviendas fueron vendidas en la zona sur de la ciudad, la zona norte y oeste llegan casi al 40% del mercado y las zonas oriente y centro son las zonas de menores ventas, la última con solo 1.5% de las ventas, es decir 124 inmuebles.

Tipo de vivienda

t2=table(viv_ajustes$tipo)
summarytools::freq(viv_ajustes$tipo)
## Frequencies  
## viv_ajustes$tipo  
## Type: Character  
## 
##                     Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------- ------ --------- -------------- --------- --------------
##       Apartamento   5099     61.29          61.29     61.29          61.29
##              Casa   3220     38.71         100.00     38.71         100.00
##              <NA>      0                               0.00         100.00
##             Total   8319    100.00         100.00    100.00         100.00
pie(t2)

table(viv_ajustes$tipo, viv_ajustes$zona)
##              
##               Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
##   Apartamento          24       1198       1029           62     2786
##   Casa                100        722        169          289     1940

El 61% (5.099) de las ventas fueron tipo apartamento

Área

t5=table(viv_ajustes$categoria_area)
summarytools::freq(viv_ajustes$categoria_area)
## Frequencies  
## viv_ajustes$categoria_area  
## Type: Factor  
## 
##                        Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## -------------------- ------ --------- -------------- --------- --------------
##        Menores de 99   3164     38.03          38.03     38.03          38.03
##              100-199   2634     31.66          69.70     31.66          69.70
##              200-299   1206     14.50          84.19     14.50          84.19
##              300-399    694      8.34          92.54      8.34          92.54
##              400-499    332      3.99          96.53      3.99          96.53
##       Mayores de 500    289      3.47         100.00      3.47         100.00
##                 <NA>      0                               0.00         100.00
##                Total   8319    100.00         100.00    100.00         100.00
barplot(t5)

El 84% de las viviendas son de menos de 300 metros. La mayor frecuencia se encuentra en las viviendas de menos de 100 metros seguido por las vivienas entre 100 y 200 metros.

Piso

t6=table(viv_ajustes$cate_piso)
summarytools::freq(viv_ajustes$cate_piso)
## Frequencies  
## viv_ajustes$cate_piso  
## Type: Factor  
## 
##                        Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## -------------------- ------ --------- -------------- --------- --------------
##               1 piso    860     10.34          10.34     10.34          10.34
##              2 pisos   1450     17.43          27.77     17.43          27.77
##              3 pisos   1097     13.19          40.95     13.19          40.95
##              4 o mas   2277     27.37          68.33     27.37          68.33
##       No informacion   2635     31.67         100.00     31.67         100.00
##                 <NA>      0                               0.00         100.00
##                Total   8319    100.00         100.00    100.00         100.00
barplot(t6)

La variable número de piso es una que tiene alta proporción de faltantes, sin embargo es interesante ver cómo de las viviendas que si se obtuvo la información la mayor proporción está en los pisos 4 o más, sugiere que la preferencia de las viviendas estaría en los pisos altos.

Número de parqueaderos

t7=table(viv_ajustes$cate_parquea)
summarytools::freq(viv_ajustes$cate_parquea)
## Frequencies  
## viv_ajustes$cate_parquea  
## Type: Factor  
## 
##                        Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## -------------------- ------ --------- -------------- --------- --------------
##                    1   3155     37.93          37.93     37.93          37.93
##                    2   2475     29.75          67.68     29.75          67.68
##                    3    520      6.25          73.93      6.25          73.93
##              4 o mas    567      6.82          80.74      6.82          80.74
##       No informacion   1602     19.26         100.00     19.26         100.00
##                 <NA>      0                               0.00         100.00
##                Total   8319    100.00         100.00    100.00         100.00
barplot(t7)

El 67% de las viviendas tienen 1 o 2 parqueaderos

Número de baños

t8=table(viv_ajustes$cate_banio)
summarytools::freq(viv_ajustes$cate_banio)
## Frequencies  
## viv_ajustes$cate_banio  
## Type: Factor  
## 
##                   Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## --------------- ------ --------- -------------- --------- --------------
##       Sin banio     45      0.54           0.54      0.54           0.54
##               1    496      5.96           6.50      5.96           6.50
##               2   2946     35.41          41.92     35.41          41.92
##               3   1993     23.96          65.87     23.96          65.87
##         4 o mas   2839     34.13         100.00     34.13         100.00
##            <NA>      0                               0.00         100.00
##           Total   8319    100.00         100.00    100.00         100.00
barplot(t8)

El 59.4% de las viviendas tienen 2 o 3 baños, pero no es menor el número de viviendas que se registró con 4 baños o más que fue un 34% muy cercano al número de viviendas con 2 baños.

Número de habitaciones

t9=table(viv_ajustes$cate_habitac)
summarytools::freq(viv_ajustes$cate_habitac)
## Frequencies  
## viv_ajustes$cate_habitac  
## Type: Factor  
## 
##                     Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------- ------ --------- -------------- --------- --------------
##       Sin habitac     66      0.79           0.79      0.79           0.79
##                 1     59      0.71           1.50      0.71           1.50
##                 2    926     11.13          12.63     11.13          12.63
##                 3   4097     49.25          61.88     49.25          61.88
##           4 o mas   3171     38.12         100.00     38.12         100.00
##              <NA>      0                               0.00         100.00
##             Total   8319    100.00         100.00    100.00         100.00
barplot(t9)

table (viv_ajustes$categoria_area, viv_ajustes$cate_habitac)
##                 
##                  Sin habitac    1    2    3 4 o mas
##   Menores de 99           12   48  761 2159     184
##   100-199                 12    6  138 1434    1044
##   200-299                 18    3   16  351     818
##   300-399                 10    1    7  106     570
##   400-499                  5    1    1   30     295
##   Mayores de 500           9    0    3   17     260

El 87% de las viviendas tienen 3 habitaciones o más, las viviendas con 2 o 1 habitaciones solo representaron el 12,6% de las ventas, siendo claro la preferencia por tener espacios con mayores divisiones, aunque no necesariamente más grande al ver la preferencia en metros cuadrados.

Precio de la vivienda

summarytools::descr(viv_ajustes$preciom)
## Descriptive Statistics  
## viv_ajustes$preciom  
## N: 8319  
## 
##                     preciom
## ----------------- ---------
##              Mean    433.90
##           Std.Dev    328.67
##               Min     58.00
##                Q1    220.00
##            Median    330.00
##                Q3    540.00
##               Max   1999.00
##               MAD    207.56
##               IQR    320.00
##                CV      0.76
##          Skewness      1.85
##       SE.Skewness      0.03
##          Kurtosis      3.67
##           N.Valid   8319.00
##         Pct.Valid    100.00
hist(viv_ajustes$preciom)

boxplot(viv_ajustes$preciom, las=1,
        main=" ",
        ylab=" ",
        xlab = " ",
        col="#ee964b")
grid()

En promedio el precio de la vivienda fue de $433,9 millones, con un mínimo de $58 millones y un máximo de $1.999 millones. Una mediana de $330 lo que describe una alta frecuencia de valores por debajo del promedio y unos pocas viviendas de alto valor.

El diagrama de cajas deja ver que el 75% de las viviendas costaron hasta $540 millones y el 25% más costos estuvo por encima de ese valor, los valores más altos de vivienda y menos frecuentes se encontraron por encima de los $1000 millones de pesos.

Precio y zona

boxplot(viv_ajustes$preciom~viv_ajustes$zona,
main = "Distribución de precio por zona",
ylab="millones",
xlab = "zona", las=1,
)

precio_promedio_por_zona <- aggregate(viv_ajustes$preciom ~ viv_ajustes$zona, data = viv_ajustes, FUN = function (preciom) c(media = mean(preciom), mediana = median(preciom), suma = sum(preciom)))
print(precio_promedio_por_zona)
##   viv_ajustes$zona viv_ajustes$preciom.media viv_ajustes$preciom.mediana
## 1      Zona Centro                  309.6935                    297.0000
## 2       Zona Norte                  345.6083                    300.0000
## 3       Zona Oeste                  677.5801                    580.0000
## 4     Zona Oriente                  228.5299                    210.0000
## 5         Zona Sur                  426.5184                    320.0000
##   viv_ajustes$preciom.suma
## 1               38402.0000
## 2              663568.0000
## 3              811741.0000
## 4               80214.0000
## 5             2015726.0000

La zona más costosa fue la zona oeste con $677 millones en promedio, en contraste el valor de las viviendas de la zona oriente fue la menor. La zona de mayor venta que fue el sur tuvo un costo promedio de $426 millones, cercano al promedio de la ciudad.

table(viv_ajustes$zona, viv_ajustes$tipo)
##               
##                Apartamento Casa
##   Zona Centro           24  100
##   Zona Norte          1198  722
##   Zona Oeste          1029  169
##   Zona Oriente          62  289
##   Zona Sur            2786 1940

Precio y área

precio_promedio_por_area <- aggregate(viv_ajustes$preciom ~ viv_ajustes$categoria_area, data = viv_ajustes, FUN = function (preciom) c(media = mean(preciom), mediana = median(preciom), suma = sum(preciom)))
print(precio_promedio_por_area)
##   viv_ajustes$categoria_area viv_ajustes$preciom.media
## 1              Menores de 99                  208.8040
## 2                    100-199                  413.6815
## 3                    200-299                  616.0887
## 4                    300-399                  738.7017
## 5                    400-499                  886.6867
## 6             Mayores de 500                 1070.2976
##   viv_ajustes$preciom.mediana viv_ajustes$preciom.suma
## 1                    198.5000              660656.0000
## 2                    380.0000             1089637.0000
## 3                    500.0000              743003.0000
## 4                    644.0000              512659.0000
## 5                    750.0000              294380.0000
## 6                   1100.0000              309316.0000
boxplot(viv_ajustes$preciom~viv_ajustes$categoria_area,
        main = "Distribución de precio por área",
        ylab="millones",
        xlab = "categoria área", las=1,
)

Cómo es esperado a mayor metros cuadrados, mayor valor del inmueble.

Precio y piso

precio_promedio_por_piso <- aggregate(viv_ajustes$preciom ~ viv_ajustes$cate_piso, data = viv_ajustes, FUN = function (preciom) c(media = mean(preciom), mediana = median(preciom), suma = sum(preciom)))
print(precio_promedio_por_piso)
##   viv_ajustes$cate_piso viv_ajustes$preciom.media viv_ajustes$preciom.mediana
## 1                1 piso                  424.5686                    300.0000
## 2               2 pisos                  494.1297                    400.0000
## 3               3 pisos                  410.2680                    330.0000
## 4               4 o mas                  384.9060                    290.0000
## 5        No informacion                  455.9920                    350.0000
##   viv_ajustes$preciom.suma
## 1              365129.0000
## 2              716488.0000
## 3              450064.0000
## 4              876431.0000
## 5             1201539.0000
boxplot(viv_ajustes$preciom~viv_ajustes$cate_piso,
        main = "Distribución de precio por piso",
        ylab="millones",
        xlab = "categoria piso", las=1,
)

No hay diferencia notable en los precios con los pisos, por lo que se puede determinar que esta caracteristica no incide en el precio o en las preferencias de forma significativa.

Precio y parqueaderos

precio_promedio_por_parque <- aggregate(viv_ajustes$preciom ~ viv_ajustes$cate_parquea, data = viv_ajustes, FUN = function (preciom) c(media = mean(preciom), mediana = median(preciom), suma = sum(preciom)))
print(precio_promedio_por_parque)
##   viv_ajustes$cate_parquea viv_ajustes$preciom.media
## 1                        1                  269.1141
## 2                        2                  514.7014
## 3                        3                  852.5904
## 4                  4 o mas                 1028.5414
## 5           No informacion                  287.2534
##   viv_ajustes$preciom.mediana viv_ajustes$preciom.suma
## 1                    250.0000              849055.0000
## 2                    450.0000             1273886.0000
## 3                    800.0000              443347.0000
## 4                    950.0000              583183.0000
## 5                    179.0000              460180.0000
boxplot(viv_ajustes$preciom~viv_ajustes$cate_parquea,
        main = "Distribución de precio por # parqueaderos",
        ylab="millones",
        xlab = "categoria piso", las=1,
)

El número de parqueaderos y el precio de la vivienda si tienen relación, entre más parqueaderos mayor valor de la vivienda.

Precio y habitaciones

precio_promedio_por_hab <- aggregate(viv_ajustes$preciom ~ viv_ajustes$cate_habitac, data = viv_ajustes, FUN = function (preciom) c(media = mean(preciom), mediana = median(preciom), suma = sum(preciom)))
print(precio_promedio_por_hab)
##   viv_ajustes$cate_habitac viv_ajustes$preciom.media
## 1              Sin habitac                  493.2121
## 2                        1                  316.7458
## 3                        2                  248.2905
## 4                        3                  365.4674
## 5                  4 o mas                  577.4752
##   viv_ajustes$preciom.mediana viv_ajustes$preciom.suma
## 1                    410.0000               32552.0000
## 2                    260.0000               18688.0000
## 3                    208.0000              229917.0000
## 4                    280.0000             1497320.0000
## 5                    470.0000             1831174.0000
boxplot(viv_ajustes$preciom~viv_ajustes$cate_habitac,
        main = "Distribución de precio por # habitaciones",
        ylab="millones",
        xlab = "categoria piso", las=1,
)

Si el número de habitaciones es de 1, 2 o 3 no hay una diferencia aparente con el precio de la vivienda, a partir de 4 habitaciones es cuando el precio de la vivienda se diferencia.

Precio y baños

precio_promedio_por_banio <- aggregate(viv_ajustes$preciom ~ viv_ajustes$cate_banio, data = viv_ajustes, FUN = function (preciom) c(media = mean(preciom), mediana = median(preciom), suma = sum(preciom)))
print(precio_promedio_por_banio)
##   viv_ajustes$cate_banio viv_ajustes$preciom.media viv_ajustes$preciom.mediana
## 1              Sin banio                  548.4667                    399.0000
## 2                      1                  141.5827                    120.0000
## 3                      2                  237.1303                    220.0000
## 4                      3                  395.0983                    350.0000
## 5                4 o mas                  714.5925                    620.0000
##   viv_ajustes$preciom.suma
## 1               24681.0000
## 2               70225.0000
## 3              698586.0000
## 4              787431.0000
## 5             2028728.0000
boxplot(viv_ajustes$preciom~viv_ajustes$cate_banio,
        main = "Distribución de precio por # baños",
        ylab="millones",
        xlab = "categoria piso", las=1,
)

El diferenciador esta en las viviendas con más de 4 baños, muy parecido a lo que se ve en relación con el número de habitaciones.

5. Discusión

La zona sur se configura como la preferida de los compradores, sin embargo la zona norte y oeste le siguen en participación, para profundizar en las preferencias sobre zona es necesario ampliar este estudio para entender la oferta de transporte, centros educativos y culturales que ofrece cada una de las zonas y análizar los potenciales de las zonas norte y oeste, en particular la zona oeste al presentar los precios más elevados de las viviendas se configura como una zona para los nichos de mayores ingresos.

El tipo de vivienda predominante fueron apartamentos con 3 o más habitaciones, 1 o 2 parqueaderos y menos de 200 metros cuadrados, solo el 38% de las ventas fueron casas y la mayoría de estas ubicadas en la zona sur.

El precio de la vivienda estuvo fuertemente relacionado con la zona, jalonando el promedio por los valores de ventas de la zona sur. Las variables que se pudieron relacionar con mayor precio fue que estuviera ubicada en el oeste, con más de 200 metros, con más de 3 parqueaderos, con más de 4 baños y 4 habitaciones, lo anterior son características de las viviendas con mayor precio y menor frecuencia de ventas relacionados con los compradores de mayor ingreso.

Para la mayoria de las ventas, estar en las zonas sur o norte, 3 habitaciones, 1 o 2 baños y 1 o 2 parquederos representan las preferencias promedio de los compradores.

6. Conclusiones

El objetivo del trabajo fue registrar los patrones de comportamiento del mercado de finca raíz en la ciudad de Cali asociados a precios, ubicación y características de las viviendas, lo que se logró reconociendo que en la ciudad de Cali las zonas de mayores ventas fue la zona sur, aunque las más costosas fue el oeste y en contraste la de menos movimiento tanto en volumen de venta como en precio de la vivienda es la zona del centro.

La preferencia general fue por el tipo de vivienda apartamentos aunque en la zona sur que tiene amplia participación en ventas la proporción de casa y apartamentos es similar.

Los compradores están buscando más número de habitaciones pero esto no está correlacionado con el área, lo que indica que la preferencia se da en la división de los espacios.

Las características de la vivienda que se destacaron fueron viviendas con menos de 200 metros, con 1 o 2 parqueaderos y 3 o más habitaciones.

Anexos

Base de datos original

head(vivienda_faltantes)

Duplicados y registros faltantes

vivienda_faltantes[duplicados, ]

Base de datos ajustada

head(viv_ajustes)

Resumen de variables

summary.data.frame(viv_ajustes)
##        id           zona              estrato         preciom      
##  Min.   :   1   Length:8319        Min.   :3.000   Min.   :  58.0  
##  1st Qu.:2080   Class :character   1st Qu.:4.000   1st Qu.: 220.0  
##  Median :4160   Mode  :character   Median :5.000   Median : 330.0  
##  Mean   :4160                      Mean   :4.634   Mean   : 433.9  
##  3rd Qu.:6240                      3rd Qu.:5.000   3rd Qu.: 540.0  
##  Max.   :8319                      Max.   :6.000   Max.   :1999.0  
##    areaconst          tipo               piso2                cate_piso   
##  Min.   :  30.0   Length:8319        Min.   : 1.00   1 piso        : 860  
##  1st Qu.:  80.0   Class :character   1st Qu.: 2.00   2 pisos       :1450  
##  Median : 123.0   Mode  :character   Median : 5.00   3 pisos       :1097  
##  Mean   : 174.9                      Mean   :33.93   4 o mas       :2277  
##  3rd Qu.: 229.0                      3rd Qu.:99.00   No informacion:2635  
##  Max.   :1745.0                      Max.   :99.00                        
##     parquea2             cate_parquea         categoria_area     cate_banio  
##  Min.   : 1.00   1             :3155   Menores de 99 :3164   Sin banio:  45  
##  1st Qu.: 1.00   2             :2475   100-199       :2634   1        : 496  
##  Median : 2.00   3             : 520   200-299       :1206   2        :2946  
##  Mean   :20.55   4 o mas       : 567   300-399       : 694   3        :1993  
##  3rd Qu.: 4.00   No informacion:1602   400-499       : 332   4 o mas  :2839  
##  Max.   :99.00                         Mayores de 500: 289                   
##       cate_habitac 
##  Sin habitac:  66  
##  1          :  59  
##  2          : 926  
##  3          :4097  
##  4 o mas    :3171  
##