En este trabajo se presenta una introducción al procesamiento y modelado de datos en R, haciendo uso principalmente del parquete tidyverse. Para ello se cuenta con datos provistos por Properati, que contiene informacón sobre publiciones de propiedades ofrecidas en su sitio web, en Argentina y Uruguay, tanto como para ventas como para alquileres. Inicialmente se realiza un análisis exploratorio sobre los datos, con el fin de encontrar posibles problemas y lograr un entendimiento de los mismos. Luego de este se realiza una introducción a la regresión lineal, a traves de la implementación de dos modelos de regresión simple.
A continuación se cargan la librerías requeridas para este trabajo a nuestro ambiente.
library(tidyverse)
library(dplyr)
library(tidyr)
library(ggplot2)
library(lubridate)
library(knitr)
library(rmarkdown)
library(readr)
library(kableExtra)
library(ggcorrplot)
library(ggthemes)
library(GGally)
library(ggExtra)
Los datos se encuentran contenidos en un archivo delimitado por comas.
properties <- read_csv("ar_properties.csv")
paged_table(properties[1:4,]) ##Imprimir primeras filas
Al validar la estructura de los datos se encuentra que es un archivo con 24 variables y 388.891 registros. Se puede evidenciar el tipo de dato que es cada columna. Hay 6 variables que resultan de gran interés para el estudio, todas ellas númericas; entre estas el precio de la transacción y las demás describen la propiedad, como número de habitaciones, superficie total, entre otras.
glimpse(properties)
## Observations: 388,891
## Variables: 24
## $ id <chr> "S0we3z3V2JpHUJreqQ2t/w==", "kMxcmAS8NvrynGBVb...
## $ ad_type <chr> "Propiedad", "Propiedad", "Propiedad", "Propie...
## $ start_date <date> 2019-04-14, 2019-04-14, 2019-04-14, 2019-04-1...
## $ end_date <date> 2019-06-14, 2019-04-16, 9999-12-31, 9999-12-3...
## $ created_on <date> 2019-04-14, 2019-04-14, 2019-04-14, 2019-04-1...
## $ lat <dbl> -34.94331, -34.63181, NA, -34.65471, -34.65495...
## $ lon <dbl> -54.92966, -58.42060, NA, -58.79089, -58.78712...
## $ l1 <chr> "Uruguay", "Argentina", "Argentina", "Argentin...
## $ l2 <chr> "Maldonado", "Capital Federal", "Bs.As. G.B.A....
## $ l3 <chr> "Punta del Este", "Boedo", NA, "Moreno", "More...
## $ l4 <chr> NA, NA, NA, "Moreno", "Moreno", NA, "Ituzaingó...
## $ l5 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ l6 <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ rooms <dbl> 2, NA, 2, 2, 2, 4, NA, 6, NA, NA, NA, NA, NA, ...
## $ bedrooms <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ bathrooms <dbl> 1, NA, 1, 2, 3, 1, 3, 3, NA, NA, NA, NA, NA, N...
## $ surface_total <dbl> 45, NA, 200, 460, 660, NA, 70, NA, 1300, 405, ...
## $ surface_covered <dbl> 40, NA, NA, 100, 148, 89, 122, NA, NA, NA, NA,...
## $ price <dbl> 13000, 0, NA, NA, NA, NA, NA, NA, 0, NA, 0, NA...
## $ currency <chr> "UYU", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,...
## $ price_period <chr> "Mensual", "Mensual", NA, "Mensual", "Mensual"...
## $ title <chr> "Departamento - Roosevelt", "PH - Boedo", "Itu...
## $ property_type <chr> "Departamento", "PH", "Casa", "Casa", "Casa", ...
## $ operation_type <chr> "Alquiler", "Venta", "Alquiler", "Venta", "Ven...
Sobre estas variables númericas se presenta una vista previa, con el fin de obtener una primera impresión de sus valores. Observando entre otras cosas, el número de faltantes de cada columna, los valores medios, mínimos y máximos, así como los valores de los cuantiles. Esto permite apreciar que hay columnas con una gran cantidad de valores faltantes en algunas columnas, así como valores máximos muy por encima del promedio e incluso del tercer cuartil.
summary(properties[,14:19])
## rooms bedrooms bathrooms surface_total
## Min. : 1.0 Min. : -2.00 Min. : 1.00 Min. : -3.0
## 1st Qu.: 2.0 1st Qu.: 1.00 1st Qu.: 1.00 1st Qu.: 50.0
## Median : 3.0 Median : 2.00 Median : 1.00 Median : 91.0
## Mean : 2.9 Mean : 2.16 Mean : 1.67 Mean : 458.3
## 3rd Qu.: 4.0 3rd Qu.: 3.00 3rd Qu.: 2.00 3rd Qu.: 266.0
## Max. :40.0 Max. :390.00 Max. :20.00 Max. :200000.0
## NA's :144668 NA's :230747 NA's :94136 NA's :74063
## surface_covered price
## Min. : -139 Min. :0.000e+00
## 1st Qu.: 43 1st Qu.:2.000e+04
## Median : 70 Median :9.400e+04
## Mean : 235 Mean :2.690e+05
## 3rd Qu.: 142 3rd Qu.:2.250e+05
## Max. :4000000 Max. :2.147e+09
## NA's :97854 NA's :21222
Como se comprobó mediante el anáisis de la estructura de los datos, el dataset cuenta con una gran cantidad de registros, pero este análisis se concentra en las siguientes condiciones:
Por otro lado, como se mencionó anteriormente uno de los objetivos de este trabajo es la implementación de un módelo de regresión simple, es por ello que se conservan columnas númericas, el identificador unico de cada propiedad, la ubicación y el tipo de propiedad.
properties_filtered <-
properties %>%
filter( ## Filtrar por condiciones
(l1 == 'Argentina' &
l2 == 'Capital Federal'&
currency == 'USD' &
property_type %in% c('Casa','Departamento','PH' ) &
operation_type == 'Venta')
) %>%
select( ## Seleccionar columnas
id, l3, rooms, bedrooms, bathrooms, surface_total, surface_covered, price , property_type)
paged_table(properties_filtered[1:4,])
Luego de esto se cuenta con un nuevo dataset que contiene 61.905 registros de 9 variables.
En esta sección se aborda un análisis sobre los datos, con el fin de validar la calidad de los datos, revisando entre otras cosas, cantidad de valores únicos, valores faltantes, estadísticas descriptivas, análisis de distribución de los datos y correlación.
Para la validación de la cantidad de valores únicos se omite la variable del identificador único, puesto que la cantidad de valores es igual a la cantidad de registros.
unique.values <- properties_filtered %>%
select(-c(id)) %>% ## Remover id
tidyr::gather(key = "Variables", value = "valores") %>% ## Transponer los datos variable-valor
group_by(Variables) %>% ## Agrupar por variable
summarise_all(n_distinct) ## Total de valores unicos
kable(unique.values) %>% ## Mostrar valores únicos x variable
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| Variables | valores |
|---|---|
| bathrooms | 15 |
| bedrooms | 25 |
| l3 | 58 |
| price | 4095 |
| property_type | 3 |
| rooms | 24 |
| surface_covered | 573 |
| surface_total | 671 |
Es llamativo la cantidad de valores únicos que tienen las variables bedrooms, rooms y bathrooms, puesto que son valores enteros y no continuos como en los otros casos.
levels <-
(unique.values %>%
arrange(desc(valores)))$Variables ##Ordenar por cant de valores
percentage.plot <- unique.values %>%
ggplot() +
geom_bar(fill = "steelblue", aes(x = reorder(Variables, desc(valores)), ## Gráfico de barras
y = valores),
stat = 'identity', alpha=0.8) +
coord_flip() + ## Barras horizontales
labs(title = "Valores únicos", x =
'Variable', y = "# valores") ## Nombres ejes
percentage.plot
Ahora se procede a validar la cantidad de valores faltantes presentes en cada variable
missing.values <- properties_filtered %>%
gather(key = "Variables", value = "valores") %>% ##Transponer los datos variable-valor
mutate(isna = is.na(valores)) %>% ##Añadir nueva columna, indica si el valor es na
group_by(Variables) %>% ##Agrupar por variable
mutate(total = n()) %>% ##Añadir total de registros
group_by(Variables, total, isna) %>% ##Agrupar por variable, nulos y no nulos
summarise(num.isna = n()) %>% ##Total de nulos y no nulos por variable
mutate( pct = round(num.isna / total * 100,1)) ##Calcular porcentaje de nulos y no nulos
kable(missing.values) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| Variables | total | isna | num.isna | pct |
|---|---|---|---|---|
| bathrooms | 61905 | FALSE | 58709 | 94.8 |
| bathrooms | 61905 | TRUE | 3196 | 5.2 |
| bedrooms | 61905 | FALSE | 36607 | 59.1 |
| bedrooms | 61905 | TRUE | 25298 | 40.9 |
| id | 61905 | FALSE | 61905 | 100.0 |
| l3 | 61905 | FALSE | 61550 | 99.4 |
| l3 | 61905 | TRUE | 355 | 0.6 |
| price | 61905 | FALSE | 61905 | 100.0 |
| property_type | 61905 | FALSE | 61905 | 100.0 |
| rooms | 61905 | FALSE | 56591 | 91.4 |
| rooms | 61905 | TRUE | 5314 | 8.6 |
| surface_covered | 61905 | FALSE | 58930 | 95.2 |
| surface_covered | 61905 | TRUE | 2975 | 4.8 |
| surface_total | 61905 | FALSE | 58234 | 94.1 |
| surface_total | 61905 | TRUE | 3671 | 5.9 |
levels <-
(missing.values %>%
filter(isna == T) %>% ##Conservar solo los % de nulos
arrange(desc(pct)))$Variables ##Ordenar por % nulos
percentage.plot <- missing.values %>%
ggplot() +
geom_bar(aes(x = reorder(Variables, desc(pct)), ##Gráfico de barras
y = pct, fill=isna), ##Sombreado con la cantidad de
stat = 'identity', alpha=0.8) + ##valores faltantes de cada variable
scale_x_discrete(limits = levels) +
scale_fill_manual(name = "",
values = c('steelblue', 'tomato3'), labels = c("Completos", "Nulos")) +
coord_flip() + ##Barras horizontales
labs(title = "Porción de valores nulos", x =
'Variable', y = "% nulos")
percentage.plot
Llega el momento de validar que tan correlacionadas se encuentran las variables númericas en el dataset.
corr = round(cor(properties_filtered[,3:8], use="complete.obs", method="pearson"),1) ## Omitir nulos
mcor = corr
mcor[upper.tri(mcor)]<-'' ## Borrar parte superior
mcor<-as.data.frame(mcor) ## Gurdar como df
kable(mcor) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| rooms | bedrooms | bathrooms | surface_total | surface_covered | price | |
|---|---|---|---|---|---|---|
| rooms | 1 | |||||
| bedrooms | 0.9 | 1 | ||||
| bathrooms | 0.6 | 0.6 | 1 | |||
| surface_total | 0.1 | 0.1 | 0.1 | 1 | ||
| surface_covered | 0.1 | 0.1 | 0.1 | 0.7 | 1 | |
| price | 0.5 | 0.4 | 0.6 | 0.1 | 0.1 | 1 |
ggcorrplot(corr,
hc.order = TRUE, ## Ordenar matriz de correlación
type = "lower", ## Conservar triangulo inferior de la matriz
lab = TRUE, ## Incluir valor de correlación
method = 'circle', ## Circulos
colors = c("tomato2", "white", "springgreen3"),
title="Correlación variables dataset",
ggtheme=theme_bw) ## Tema a usar de ggplot
Como se evidenció anteriormente hay dos variables fuertemente correlacionadas, por ende con tener una sola bastará, además una de estas variables tiene cerca del 40% de sus registros nulos.
Por otro lado, se toma la decisión de omitir todos aquellos registros que presentan algún valor faltante dentro de las diferentes columnas.
properties_filtered <-
properties_filtered %>%
select (-c(bedrooms)) %>% ## Omitir variable
drop_na() ## Omitir registros con nulos
glimpse(properties_filtered) ## Propiedades dataset filtrado
## Observations: 51,210
## Variables: 8
## $ id <chr> "HdjpKrqdwYfH9YU1DKjltg==", "AfdcsqUSelai1ofCA...
## $ l3 <chr> "Boedo", "Velez Sarsfield", "Nuñez", "Almagro"...
## $ rooms <dbl> 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
## $ bathrooms <dbl> 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
## $ surface_total <dbl> 178, 95, 44, 40, 49, 40, 40, 40, 49, 40, 23, 4...
## $ surface_covered <dbl> 240, 69, 38, 37, 44, 37, 37, 37, 44, 37, 23, 3...
## $ price <dbl> 500000, 199900, 147000, 92294, 115000, 77000, ...
## $ property_type <chr> "Casa", "Casa", "Departamento", "Departamento"...
El dataset resultante cuenta con un total de 51.210 registros y 8 variables.
A continuación se presentan medidas de posición sobre el precio de las propiedades, lo que permite resumir la posición de la distribución de datos.
summary_price = summarise(
properties_filtered,
mean =mean(price),
max = max(price),
min = min(price),
q1 = quantile(price,0.25),
q2 = quantile(price,0.5),
q3 = quantile(price,0.75))
kable(summary_price) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| mean | max | min | q1 | q2 | q3 |
|---|---|---|---|---|---|
| 251577.2 | 6e+06 | 6000 | 119000 | 170000 | 270000 |
Como se evidencia existe una gran diferencia entre el valor máximo y la media de los datos, e incluso del tercer cuartil. Esto genera una alerta sobre valores extremos en el dataset, puesto que hay valores muy lejanos del centro de la distribución, tanto para el extremo derecho como para el izquierdo.
Para observar con más detalle la distribución de los precios se procede a obtener un histográma. Donde se evidencia una asimetría positiva, lo que indica que la mayoría de precios son valores bajos y unos pocos valores son muy altos en comparación al resto, algo que ratifica lo evidenciado anteriormente.
ggplot(properties_filtered, aes(price)) + ## Hist. precio
geom_histogram(color="black", fill="tomato", bins = 40) + ## 40 bins
labs(y="Cant. propiedades",
x="Precio USD",
title="Distribución de precios")
Para generar una mayor claridad sobre el análisis de precio de las propiedades se repiten las medidas de posición por tipos de propiedad.
En todos los tipos de propiedad se evidencia una gran diferencia entre los valores extremos y la media, esto nos permite ratificar que lo observado anteriormente no recae en un tipo de propiedad específica, si no que es un comportamiento de todo el dataset.
summary_price_g = summarise(
group_by(properties_filtered, property_type),
mean =mean(price),
max = max(price),
min = min(price),
q1 = quantile(price,0.25),
q2 = quantile(price,0.5),
q3 = quantile(price,0.75))
kable(summary_price_g) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| property_type | mean | max | min | q1 | q2 | q3 |
|---|---|---|---|---|---|---|
| Casa | 434188.8 | 5000000 | 20000 | 235000 | 335000 | 490000 |
| Departamento | 246855.7 | 6000000 | 6000 | 115000 | 164000 | 260000 |
| PH | 218747.4 | 1500000 | 32000 | 137000 | 190000 | 270000 |
Por otro lado, se valida la distribución del precio por propiedad a través de un boxplot. Donde se corrobora la asimetría positiva en todos los tipos de propiedad. Evidenciando así unos puntos muy alejados de la distribución, con valores demasiado altos. Sin embargo, también se observan valores muy inferiores al centro.
ggplot(properties_filtered, aes(x = property_type, y = price)) +
geom_boxplot() + geom_boxplot(aes(color = property_type)) +
coord_flip() +
labs(x="Precio USD",
y="Tipo de propiedad",
title="Boxplot por tipo de propiedad ")
Ahora se procede a obtener correlagrama con el fin de observar distribución de cada variable, distribución de a pares de variables, correlación de a pares de variables, y un box plot de cada variable.
Resulta llamativo ver algunos puntos muy lejanos de la distribución en variables como rooms y surface para propiedades tipo PH.
properties_filtered %>%
select(-id,-l3) %>% ## Omitir variables
mutate(property_type = factor(property_type)) %>% ## Tipo de prpiedad como factor
ggpairs(., ## Correlalograma
title = "Matriz de correlaciones",
mapping = aes(colour= property_type)) ## Color por tipo
Es necesario indagar un poco más sobre la posible presencia de outliers en algunas variables. Por ello se ordenan los valores de las variables, con el fin de comprobar sus valores máximos y mínimos; para ello se grafican los valores superiores al tercer cuartil y valores inferiores al primer cuartil.
En esta veriable se sospechan valores atípicos, con la presencia de valores muy altos y muy bajos.
##Filtrar valores inferiores al primer cuartil
properties_outliers = properties_filtered %>%
filter(price >= 0 &
price <= summary_price$q1)
ggplot(properties_outliers, aes( x=1:length(price), y=sort(price))) + ## Plot valores ordenados
geom_point(stat='identity', aes(col=property_type)) + ## Gráficar por tipo de propiedad
labs(y="Precio USD ordenado",
x="Propiedades",
title="Precios inferiores al q1 ordenados")
Se opta por análizar los valores con una tasa inferior a 40.000 USD, ya que se presentan muy pocos valores en ese rango, adicionalmente se encuentra muy dispersos entre sí.
##Filtrar valores inferiores al primer cuartil
properties_outliers = properties_filtered %>%
filter(price >= 0 &
price <= 40000) %>%
arrange(desc(surface_total)) ##Ordenar por superficie
kable(properties_outliers) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| id | l3 | rooms | bathrooms | surface_total | surface_covered | price | property_type |
|---|---|---|---|---|---|---|---|
| sV8ao8iIhQosOBgT/61mDg== | Villa Soldati | 5 | 1 | 395 | 395 | 30000 | Departamento |
| o6Qf+lmGU97f1vzy5vRXBw== | Recoleta | 3 | 2 | 340 | 200 | 6000 | Departamento |
| uZe6sBzCpmenEZSplqFB0Q== | Palermo | 5 | 4 | 340 | 320 | 6000 | Departamento |
| MEQMMCb41FDh+T4LMkWTJQ== | Puerto Madero | 3 | 3 | 275 | 220 | 6000 | Departamento |
| TexDuWu7W8W4/ZX08NLgpQ== | Palermo | 1 | 1 | 160 | 110 | 38000 | Departamento |
| 6PVNKJ4zkfyhGaHcKyamRQ== | Villa Crespo | 4 | 1 | 100 | 100 | 20000 | Casa |
| E/fKmqFLQb7OXJlYKYu8fQ== | Coghlan | 4 | 1 | 75 | 75 | 22500 | Departamento |
| kcSLbs8UnzIJisNrCGADDQ== | Villa Soldati | 5 | 1 | 62 | 58 | 40000 | Departamento |
| AvNQryhf6zdj5HY4qQXo6Q== | Villa Soldati | 3 | 1 | 60 | 60 | 39000 | Departamento |
| 5kMiciAqmJBJpXFGooK2zg== | Pompeya | 2 | 1 | 60 | 47 | 32000 | PH |
| T1vj/FC3xUWw1FgyOLLmsQ== | Villa Lugano | 3 | 1 | 50 | 44 | 39500 | Departamento |
| VPtxxZatMYXagyQwRkMVaQ== | Villa Soldati | 3 | 1 | 50 | 45 | 35000 | Departamento |
| EvlN+Z79tMKXqPlKQdEZ8g== | Villa Soldati | 3 | 1 | 50 | 50 | 35000 | Departamento |
| 31n5DaPNIAePfF+rIaeMRQ== | Villa Lugano | 3 | 1 | 50 | 44 | 39500 | Departamento |
| rBn/HhFKjCeTCG46TkEIAw== | Villa Soldati | 3 | 1 | 50 | 50 | 25000 | Departamento |
| FkTkTG0YPynjCqZTcuwJOA== | Villa Soldati | 3 | 1 | 50 | 50 | 33500 | Departamento |
| 73lOkdwvOQA811uhoehkaA== | Villa Soldati | 3 | 1 | 49 | 43 | 37500 | Departamento |
| TQLilM+3xCv/0pWnX9aFng== | Villa Soldati | 3 | 1 | 49 | 43 | 37500 | Departamento |
| BE++tM0dr+MWghP/DfPmwQ== | Villa Soldati | 3 | 1 | 47 | 41 | 39500 | Departamento |
| g4UbwrG9fq69b6F8sIidZA== | Colegiales | 1 | 1 | 44 | 40 | 14000 | Departamento |
| ATZQiOtaR653U+nBeCe5dg== | Villa Lugano | 1 | 1 | 40 | 40 | 29000 | Departamento |
| IKhejazHaiFl+TZD1YsMow== | Flores | 1 | 1 | 38 | 38 | 28000 | Departamento |
| AoXLG50X9kGMGh/gHhefqw== | Flores | 1 | 1 | 38 | 38 | 38000 | Departamento |
| zmseEMX8uxbzqO1IH+a5Ug== | Palermo | 1 | 1 | 34 | 30 | 11803 | Departamento |
| F5rixJgFbElX5vcHjJhBbA== | Mataderos | 1 | 1 | 33 | 33 | 38000 | Departamento |
| +JnIqgAaF9+sKd4ZVJwglg== | Parque Chacabuco | 1 | 1 | 31 | 31 | 7500 | Departamento |
| MTOELtW/AjJ+WzKDtZU5fA== | Mataderos | 1 | 1 | 30 | 30 | 32000 | Departamento |
| eGQLSwMYgo41EA5DpN0xrQ== | Mataderos | 1 | 1 | 30 | 30 | 32000 | Departamento |
| 8BAJqHcGszfLp1pSYM/iSA== | Flores | 2 | 1 | 29 | 29 | 39000 | Departamento |
| 5a+n8tikj17kGVO+qntd4g== | Flores | 2 | 1 | 29 | 29 | 39000 | Departamento |
| nyKh6585TFCuf8VGqR5SOQ== | Flores | 2 | 1 | 27 | 27 | 37000 | Departamento |
| J8GqTZmAsWovIegwKhOnEw== | Flores | 2 | 1 | 27 | 27 | 30000 | Departamento |
| JEK2OjU7v5SAIeWW/BeLFQ== | Flores | 2 | 1 | 26 | 26 | 37000 | Departamento |
| fgJ0/UD2v30JiezGfBR7pA== | Flores | 2 | 1 | 26 | 26 | 37000 | Departamento |
| n1WrdWNiM6p+bYzoLSmw6g== | Constitución | 1 | 1 | 24 | 24 | 35000 | Departamento |
| ifdTiSlNNoYyXvbwT4qUfg== | Parque Chacabuco | 1 | 1 | 20 | 20 | 40000 | Departamento |
| C4flDvJilVPRumxrb8mLSQ== | Paternal | 1 | 1 | 20 | 20 | 34000 | Departamento |
| YAb6GK7+XFwh6pp/hlDCwg== | Once | 1 | 1 | 19 | 19 | 32000 | Departamento |
| 1zkWVvhFuGHKYaT18SNPlw== | Balvanera | 1 | 1 | 19 | 19 | 32000 | Departamento |
| xUSNFOOL9/zYDZMleEbhAA== | Once | 1 | 1 | 19 | 19 | 32000 | Departamento |
| khmS8u0mBDrcBskHQM60Zw== | Balvanera | 1 | 1 | 19 | 19 | 32000 | Departamento |
| Rf94hjASy+u7xFmT4OdsNQ== | Balvanera | 1 | 1 | 19 | 19 | 40000 | Departamento |
| +cu5QEjAumcSfj3ahHk+Rw== | Once | 1 | 1 | 19 | 19 | 35000 | Departamento |
| eOBzwYzKTyP4xLHK7aZweQ== | Balvanera | 1 | 1 | 19 | 19 | 35000 | Departamento |
| k7tclBop2PwnzKKXQ0rvcA== | Once | 1 | 1 | 19 | 19 | 35000 | Departamento |
| wN09V3dcHOp5UxzucD6nxw== | Balvanera | 1 | 1 | 19 | 19 | 35000 | Departamento |
| 7FlXCRWI2Zx8Wf/gCRDZYQ== | Once | 1 | 1 | 19 | 19 | 32000 | Departamento |
| Gz9kTgzqnwBTdZSrf6sQRQ== | Balvanera | 1 | 1 | 19 | 19 | 32000 | Departamento |
| E1oSuZKD1Gbk9gJC1nd/WQ== | Once | 1 | 1 | 19 | 19 | 32000 | Departamento |
| lbXz3R11g49xEWydKhgV5w== | Balvanera | 1 | 1 | 19 | 19 | 32000 | Departamento |
| uGHJdqon48uCZ6HEFDksqQ== | Once | 1 | 1 | 19 | 19 | 32000 | Departamento |
| D+iAPAsFea3AaWIrZVt3hA== | Balvanera | 1 | 1 | 19 | 19 | 32000 | Departamento |
| 5NfaWbhOl/gB1EYj0RBqBQ== | Once | 1 | 1 | 19 | 19 | 35000 | Departamento |
| gKoDGXzHrB4OI+AJQJ61wQ== | Balvanera | 1 | 1 | 19 | 19 | 35000 | Departamento |
| SFp5pER8hlTvCwMhVQlTGw== | Caballito | 1 | 1 | 18 | 18 | 12500 | Departamento |
| /QpBa+OKz4OEl5FaWPIA7Q== | Caballito | 1 | 1 | 18 | 18 | 12500 | Departamento |
| JaokBBjtNtCQ1GbbnXE9Ug== | Constitución | 1 | 1 | 17 | 17 | 37000 | Departamento |
| t10cu4fL1H2f+PW9eQjYcw== | Liniers | 1 | 1 | 17 | 17 | 34900 | Departamento |
| SRIxKfnNKamkrtZOXCYNGA== | Balvanera | 1 | 1 | 16 | 16 | 39000 | Departamento |
| Yuv0jhwkAnotWccYw/SaRQ== | Boedo | 1 | 1 | 16 | 14 | 31500 | Departamento |
| /zyg3LGYOtUo1fKj3NgrTw== | Pompeya | 1 | 1 | 16 | 14 | 31500 | Departamento |
| AVdHybHBOZADr/3t1g3kgQ== | Parque Patricios | 1 | 1 | 16 | 14 | 31500 | Departamento |
| lege1z88jplgUFfan8JoWA== | Pompeya | 1 | 1 | 16 | 15 | 31500 | Departamento |
| nnqz9lPkxxG51iohI14tCg== | Constitución | 1 | 1 | 15 | 15 | 35000 | Departamento |
| lpwl2J/6RDyVXptn4z7iIA== | Balvanera | 1 | 1 | 15 | 15 | 40000 | Departamento |
| H03+mOkbDogEMxpjA7oozg== | Constitución | 1 | 1 | 15 | 15 | 32000 | Departamento |
| 3K6i3NhnpZekKN5b+F4DJw== | Abasto | 1 | 1 | 15 | 15 | 40000 | Departamento |
| yHe4zl8+wi89wcwKSRj0/Q== | Pompeya | 1 | 1 | 14 | 14 | 27900 | Departamento |
| axJE3yltPPBZ4wPJRkoQKw== | Parque Patricios | 1 | 1 | 14 | 14 | 27900 | Departamento |
| 9eugytXBXx03jVfiT9Ke4w== | Pompeya | 1 | 1 | 14 | 14 | 27900 | Departamento |
| DdOGFE6FEVm4L5GxxmgpSw== | Liniers | 1 | 1 | 13 | 13 | 12000 | Departamento |
| bnckwRLq/VR1/2V4+KLMuA== | Liniers | 1 | 1 | 13 | 13 | 12000 | Departamento |
| vbdlMntYmRMeHZ83TbpFeA== | Liniers | 1 | 1 | 13 | 13 | 12000 | Departamento |
| gxcqfW0yap0ZAoLgguSkLw== | Liniers | 1 | 1 | 13 | 13 | 12000 | Departamento |
| d1y3hN3exTsn4lW/ZCdLyQ== | Liniers | 1 | 1 | 13 | 13 | 12000 | Departamento |
| ZlOoDDa3VpJXQEP3QksHPg== | Villa Luro | 4 | 2 | 12 | 12 | 24000 | Departamento |
Existen propiedades con precios muy bajos y con una gran superficie, estos casos probablemente son errores, por ende se omiten aquellas propiedades con un precio inferior a 40.000 y con una superficie mayor a 18m2
##Filtrar valores inferiores al primer cuartil
properties_filtered = properties_filtered %>%
filter(
!(surface_total >= 18 & price <= 40000)
) %>%
arrange(desc(surface_total)) ##Ordenar por superficie
##Filtrar valores superiores al tercer cuartil
properties_outliers = properties_filtered %>%
filter(price >= summary_price$q3 &
price <= summary_price$max)
ggplot(properties_outliers, aes( x=1:length(price), y=sort(price))) + ## Plot valores ordenados
geom_point(stat='identity', aes(col=property_type)) + ## Gráficar por tipo de propiedad
labs(y="Precio USD ordenado",
x="Propiedades",
title="Precios superiores al q3 ordenados")
Se opta por análizar los valores con una tasa superior a 2M USD, ya que se presentan muy pocos valores en ese rango, adicionalmente se encuentra muy dispersos entre sí; estos casos no se concentran en un solo tipo de propiedad, por el contrario se presentan en los tres tipos.
##Filtrar valores inferiores al primer cuartil
properties_outliers = properties_filtered %>%
filter(price >= 2000000 &
price <= 10000000) %>%
arrange(desc(surface_total)) ##Ordenar por superficie
kable(properties_outliers) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| id | l3 | rooms | bathrooms | surface_total | surface_covered | price | property_type |
|---|---|---|---|---|---|---|---|
| 2iFRv302I2Rrq0wBa8EiKA== | Villa del Parque | 10 | 4 | 2000 | 1400 | 5000000 | Casa |
| Tv3srPsBjS8eir91O+pSzg== | Villa del Parque | 10 | 6 | 1500 | 1400 | 2200000 | Casa |
| uNwBTY6ONd76me4LJCvrsw== | Recoleta | 8 | 3 | 1216 | 946 | 2490000 | Casa |
| JitBT9pTTCDKD+38nZOggg== | Belgrano | 9 | 5 | 1150 | 850 | 4000000 | Casa |
| z71POS0zfEzP6bkt9ytFLA== | Belgrano | 10 | 5 | 1015 | 1013 | 2200000 | Casa |
| VVkm+T3kUzvJoZ3oHDlQHw== | Recoleta | 10 | 3 | 978 | 489 | 5700000 | Departamento |
| YOaXpbbcZq2eVS4v1lDGYQ== | Belgrano | 5 | 4 | 880 | 880 | 4000000 | Casa |
| E/X+N3XDirDIv9EAGdtRbQ== | Retiro | 6 | 5 | 726 | 475 | 2975000 | Departamento |
| 4DnG62QSlcO0vtAshbqZNQ== | Palermo | 6 | 6 | 700 | 700 | 3000000 | Casa |
| wwvGc12ZMPuw2gm01B30tw== | Belgrano | 6 | 6 | 700 | 700 | 3000000 | Casa |
| vEo6MqddfEnD6cBLAKCIQA== | Belgrano | 6 | 5 | 700 | 700 | 3000000 | Casa |
| sP/JA/rCDDPxhKKgFXE/vA== | Recoleta | 8 | 5 | 677 | 568 | 5800000 | Departamento |
| lX+GhUexFsOLzbNZwGjRUg== | Belgrano | 6 | 3 | 656 | 656 | 2500000 | Departamento |
| y+gEASeIMxG9o5st5uSJJA== | Belgrano | 8 | 5 | 655 | 500 | 2499000 | Departamento |
| AWyXE0/TKHvzR6jo25+L8w== | Recoleta | 5 | 3 | 628 | 335 | 2200000 | Departamento |
| 2SmJFo2aNX5WOXBLlUirjw== | Villa Urquiza | 8 | 6 | 628 | 530 | 2299000 | Casa |
| xvp8cI+RFAMzQGUPmGXYRA== | Palermo | 6 | 5 | 602 | 424 | 4580000 | Departamento |
| Z0NEN8qMZRsj1pg5vXo4dA== | Recoleta | 6 | 3 | 600 | 600 | 6000000 | Departamento |
| gRZzCtXitwzDjUwXqizD/w== | Recoleta | 6 | 3 | 600 | 600 | 6000000 | Departamento |
| h6gp41erIMtIuEajDj9lgQ== | Recoleta | 6 | 3 | 600 | 600 | 6000000 | Departamento |
| zJGjm8BuauKvp2+p7sPQdQ== | Belgrano | 9 | 7 | 600 | 550 | 2950000 | Casa |
| X659cIOAbGTKxEDGVQ+Ugw== | Palermo | 7 | 5 | 600 | 600 | 2900000 | Casa |
| 23FKka2vVA15VcIeAVJ88A== | Belgrano | 7 | 5 | 600 | 600 | 2900000 | Departamento |
| ZxjGr9/R/FLZkBx3nxIHtw== | Belgrano | 7 | 5 | 600 | 600 | 2900000 | Casa |
| Rcjwz5fMmcvkIGkOrSo8LQ== | Belgrano | 7 | 6 | 590 | 490 | 2000000 | Departamento |
| PszLz6Hsw+D5S2xTDw4giQ== | Belgrano | 7 | 6 | 590 | 490 | 2000000 | Departamento |
| jXO6WwUMKKoDmmMnWi7dog== | Belgrano | 7 | 6 | 590 | 490 | 2000000 | Departamento |
| CTNCf8dsRs2jXq44nsAUkQ== | Palermo | 6 | 4 | 580 | 380 | 3089000 | Casa |
| G+xvMBeZF/bdJrBAVF5vow== | Palermo | 5 | 6 | 580 | 380 | 2800000 | Casa |
| RyI0tQRVg6KyolhuFRk/nw== | Puerto Madero | 5 | 6 | 568 | 438 | 3200000 | Departamento |
| UZl4l3IUYy02pv3Ru2TMeg== | Belgrano | 10 | 4 | 567 | 567 | 2000000 | Departamento |
| 0k7Fo4X9EaBvK7suAhaPyA== | Belgrano | 10 | 4 | 567 | 567 | 2000000 | Departamento |
| hsFk7KubFB96tjhPUTpd5w== | Belgrano | 10 | 4 | 567 | 567 | 2000000 | Departamento |
| YQNb4mXO9ytgobH9x7IYAQ== | Palermo | 5 | 6 | 562 | 310 | 3500000 | Casa |
| vUTB0sjNJ5y/2eYif/CT8A== | Belgrano | 5 | 6 | 562 | 310 | 3500000 | Casa |
| UIlAW0E3giFJsUcDRCNuQw== | Belgrano | 5 | 6 | 562 | 310 | 3500000 | Departamento |
| Q7RoFb8xXNFD+AlHB6rLjA== | Belgrano | 5 | 6 | 562 | 310 | 3500000 | Departamento |
| uctVPnFGrC0eh0U05lvQSw== | Palermo | 6 | 6 | 562 | 310 | 3500000 | Casa |
| Uh035Bjzh0SfExNTzQYvJg== | Belgrano | 6 | 6 | 562 | 310 | 3500000 | Casa |
| rmv51vpJ/QehdlvyjubJzg== | Palermo | 6 | 6 | 562 | 310 | 3500000 | Departamento |
| g5YKjiul+Dx6nsBXXEeQ1w== | Belgrano | 6 | 6 | 562 | 310 | 3500000 | Departamento |
| ZqwDZp99REZHXUHwtImaZg== | Belgrano | 6 | 6 | 562 | 310 | 3500000 | Casa |
| DnxQJlEgE1bPDfMmcYBTPw== | Belgrano | 6 | 6 | 562 | 310 | 3500000 | Departamento |
| tH2x957dFX+Gk2CQYqv+Iw== | Belgrano | 5 | 4 | 562 | 320 | 3500000 | Departamento |
| y13l/h442QwOYztTWCEgDg== | Palermo | 8 | 4 | 548 | 473 | 2380000 | Departamento |
| MLe/LkarQ43frrPC8jnKpg== | Recoleta | 6 | 5 | 545 | 440 | 2490000 | Departamento |
| kBbg25sYJtQQCgOjETWnFA== | Palermo | 5 | 4 | 545 | 470 | 3100000 | Departamento |
| Ku5hsD6qiTTlXEaCclVKSQ== | Puerto Madero | 5 | 3 | 540 | 540 | 3300000 | Departamento |
| /xwVo7oRfxiPZBHnzv/n1g== | Palermo | 5 | 3 | 535 | 220 | 3200000 | Departamento |
| tCGV5WlMWVmlvq6egfuCcg== | Palermo | 5 | 3 | 535 | 220 | 2800000 | Departamento |
| /jtfOxCXXsvXe1OfFbblwg== | Palermo | 5 | 3 | 535 | 220 | 2800000 | Departamento |
| GvFxC1vagXbNWs8cpBxR1w== | Belgrano | 4 | 4 | 530 | 424 | 2900000 | Casa |
| bQ2M4yClAppiuaWuiH5miw== | Recoleta | 5 | 4 | 508 | 492 | 2100000 | Departamento |
| u5Z+CphltmKhg9QGLbwm3w== | Belgrano | 6 | 4 | 500 | 400 | 2400000 | Casa |
| h/lnLVCCom1yyNcxhPdjlA== | Recoleta | 7 | 4 | 498 | 495 | 2300000 | Departamento |
| QPSs4zvMDS7b1CNHL9cIhQ== | Palermo | 8 | 3 | 486 | 450 | 2900000 | Departamento |
| r67PmRlrBFVqIoyDjtNr/g== | Palermo | 5 | 3 | 486 | 321 | 2700000 | Departamento |
| 9wPg0gPhBUUhuUYC6QKWFQ== | Recoleta | 6 | 2 | 483 | 483 | 2500000 | Departamento |
| RnAai6cyog5DZRf8vGuv8A== | Recoleta | 6 | 2 | 483 | 483 | 2500000 | Departamento |
| TqWTgGbiZbvOiA7P1Gx4Tg== | Recoleta | 6 | 2 | 483 | 483 | 2500000 | Departamento |
| jHUTFFyXQ05ZV4gRzFhlEg== | Palermo | 4 | 3 | 481 | 321 | 2700000 | Departamento |
| 5GfB/DywqngQzEjB0cREEw== | Palermo | 7 | 5 | 480 | 321 | 2300000 | Departamento |
| RtLw6JYZADQdW/h2vAVCzQ== | Recoleta | 6 | 2 | 478 | 478 | 2250000 | Departamento |
| eUWw3fC9wl6T2feQ02aAmA== | Puerto Madero | 4 | 4 | 475 | 414 | 2500000 | Departamento |
| WAW7NlUnVrcpI0+9o6FFXQ== | Recoleta | 16 | 5 | 459 | 353 | 2697389 | Casa |
| eGaTlxJBJnSxVKfzZu9Zug== | Palermo | 8 | 7 | 455 | 324 | 2500000 | Departamento |
| VfaGYHKSltCAygUe4EkrjQ== | Recoleta | 7 | 5 | 455 | 435 | 2300000 | Departamento |
| L3llqn4CzeA5FwXhjuHpqA== | Recoleta | 7 | 5 | 455 | 435 | 2300000 | Departamento |
| zOk4X5H/OKBodIm3j7ZMPA== | Barrio Norte | 7 | 5 | 455 | 435 | 2300000 | Departamento |
| TtJkrnEArj8u42R/YqlP9w== | Nuñez | 5 | 5 | 455 | 435 | 3200000 | Departamento |
| JPIdzSjfdQAxfjmzEep6BQ== | Recoleta | 5 | 4 | 453 | 414 | 2400000 | Departamento |
| /X1Ow/yN4Ck9LdK/cbTdSg== | Recoleta | 5 | 4 | 453 | 414 | 2400000 | Departamento |
| S0qjWYRATStUp6NUoIGi4Q== | Recoleta | 5 | 4 | 453 | 414 | 2500000 | Departamento |
| /oZ/XH2N+yY6h89bgPX5/Q== | Recoleta | 5 | 4 | 453 | 414 | 2400000 | Departamento |
| YmkIkUha/pOeKQopVEEiUQ== | Palermo | 8 | 4 | 450 | 450 | 2600000 | Departamento |
| iMB9l2asP/IWFZqWDei9Dg== | Palermo | 8 | 4 | 450 | 450 | 2600000 | Departamento |
| o34QRDPJl3axm5QgHsSp/g== | Palermo | 8 | 4 | 450 | 450 | 2600000 | Departamento |
| vN1Zdm13HaWh5TwbGlxAFw== | Palermo | 8 | 4 | 450 | 450 | 2600000 | Departamento |
| TPoyrsDALQbZGDEXFN9u8Q== | Nuñez | 6 | 6 | 450 | 420 | 3000000 | Departamento |
| AyUH9pVDFPYl49X/HgrZzA== | Nuñez | 4 | 6 | 450 | 420 | 3000000 | Departamento |
| Q8HiHHx4rfnJDJ0jP7S81w== | Belgrano | 6 | 6 | 450 | 420 | 3000000 | Departamento |
| zIsp0Ewzei/wWMWorszBrQ== | Belgrano | 5 | 6 | 450 | 420 | 3000000 | Departamento |
| mBoQ3BcA2tfgbLg+wz8Ysw== | Belgrano | 4 | 6 | 450 | 420 | 3000000 | Departamento |
| KJoYJzDiieYxaerz9LBznw== | Nuñez | 5 | 5 | 450 | 450 | 3000000 | Departamento |
| HBDvpVjKgwy5h+FzqNUPrg== | Puerto Madero | 7 | 4 | 448 | 448 | 3000000 | Departamento |
| K4QzqMJyRj8X9vC+0gR/5Q== | Puerto Madero | 7 | 4 | 448 | 448 | 2800000 | Departamento |
| YgIUDf/ctbSG3gu0yqENJA== | Palermo | 5 | 4 | 447 | 436 | 3250000 | Departamento |
| 8yq75YvXIlkiG+9LjuoKiQ== | Palermo | 6 | 4 | 444 | 404 | 2500000 | Departamento |
| En+IZeAAAzd5f9bMxYczSg== | Belgrano | 7 | 5 | 434 | 434 | 2400000 | Casa |
| 56uhB1O4Z8YCczKDkGPJ9A== | Nuñez | 5 | 3 | 431 | 291 | 2300000 | Departamento |
| FLtwdE1ouNs3TOZoPf6VrQ== | Nuñez | 5 | 3 | 431 | 291 | 2300000 | Departamento |
| wVCv4Yr7eII/TJ9IemBjQw== | Nuñez | 5 | 3 | 431 | 291 | 2300000 | Departamento |
| bJIzBl24AcU3shGTuherHg== | Nuñez | 5 | 3 | 431 | 291 | 2150000 | Departamento |
| W7acVNFeYnd5uKGWmRANUw== | Nuñez | 5 | 3 | 431 | 291 | 2300000 | Departamento |
| zqqNVonfn8qZnO4rGq9HIw== | Retiro | 6 | 5 | 430 | 420 | 2200000 | Departamento |
| Vcwpn4rwcvmR4Bd3Xewm6Q== | Puerto Madero | 4 | 4 | 427 | 427 | 2500000 | Departamento |
| MRkA8z9Co8yzNo90jzetFg== | Puerto Madero | 4 | 4 | 427 | 427 | 2500000 | Departamento |
| lDPPq5P+DhSM0WEG62atEw== | Puerto Madero | 6 | 5 | 426 | 426 | 2500000 | Departamento |
| /dq/eSyAl0iHfrbwjyMJTA== | Puerto Madero | 5 | 6 | 426 | 426 | 2700000 | Departamento |
| 9vLP+ZUB5lIXeMhMqqBazQ== | Puerto Madero | 6 | 5 | 426 | 426 | 2500000 | Departamento |
| WPw2L2vfcDwk3rap1bnfPw== | Puerto Madero | 5 | 6 | 426 | 426 | 2600000 | Departamento |
| jN+nx/18kJOTg0crzs7y1Q== | Puerto Madero | 6 | 5 | 426 | 426 | 2500000 | Departamento |
| bv2NgWQCh80HJbt7BIOwDQ== | Belgrano | 9 | 3 | 420 | 420 | 2500000 | Departamento |
| 8q7Cgblk+QNJnxtJWu6KfQ== | Belgrano | 6 | 4 | 413 | 413 | 2500000 | Departamento |
| 9eovPo8Kv6B7NNpmlW9DEQ== | Belgrano | 6 | 4 | 413 | 413 | 2300000 | Departamento |
| FSQ+9XqKN4tJnU6/d7A7WA== | Belgrano | 6 | 4 | 413 | 413 | 2500000 | Departamento |
| ooofCfHBaikkf1YaHznPLg== | Palermo | 5 | 4 | 410 | 394 | 4900000 | Departamento |
| f1BiaCZ0f9aAPWrUmuCZug== | Recoleta | 7 | 4 | 409 | 409 | 4500000 | Departamento |
| OzkE/DdCcWRh6wVUzfAukg== | Palermo | 4 | 4 | 404 | 404 | 5100000 | Departamento |
| e2Wfai8AWtv5dZaCxyPedA== | Palermo | 4 | 4 | 404 | 404 | 5100000 | Departamento |
| RM0PAlPpfDrFT1MXlFp/GA== | Palermo | 4 | 4 | 404 | 404 | 3100000 | Departamento |
| wdRYTf9hk+njKzncEvnI6A== | Puerto Madero | 6 | 4 | 402 | 302 | 2000000 | Departamento |
| 0ZeGyEi9jDd0+Jqxm/OmZA== | Palermo | 5 | 6 | 400 | 380 | 3400000 | Departamento |
| b+dhFeJywyjkF8gEKdQWKw== | Recoleta | 5 | 4 | 400 | 400 | 2200000 | Departamento |
| CmHHTWoUcucZR4Epn8gnoQ== | Puerto Madero | 6 | 6 | 400 | 390 | 3700000 | Departamento |
| WrY2lJzeBaTOhiRb+i+NOA== | Recoleta | 5 | 5 | 400 | 380 | 4000000 | Departamento |
| JDaQSeq634M/fKZ/1IcKrQ== | Recoleta | 5 | 5 | 400 | 380 | 4000000 | Departamento |
| 2ETcwSEfrqm9ohMTIzb9IA== | Palermo | 4 | 4 | 397 | 380 | 2800000 | Departamento |
| 7j4i7L+m0A0Lb0YM/t9aFg== | Palermo | 7 | 3 | 394 | 394 | 2550000 | Departamento |
| iU5Yk6f1ROKDKE5VazUk/A== | Recoleta | 1 | 1 | 394 | 390 | 2169696 | Departamento |
| KyCGhT+EabJrMeldWwyt8A== | Palermo | 6 | 4 | 390 | 390 | 3100000 | Departamento |
| H/wgh2GvONGnyP4oJx448w== | Palermo | 4 | 4 | 390 | 390 | 2500000 | Departamento |
| n2HRnbi1SWq9/CAINjLoYg== | Belgrano | 5 | 6 | 390 | 320 | 2700000 | Departamento |
| o3Sn3Q+eqscIlu2l7F1O7g== | Belgrano | 5 | 6 | 390 | 320 | 2600000 | Departamento |
| JmBc+oMJalCkWdfU0P5dvQ== | Belgrano | 5 | 6 | 390 | 320 | 2700000 | Departamento |
| zHegDPFr9rVHvZGnFpvkWQ== | Las Cañitas | 4 | 6 | 390 | 320 | 2700000 | Departamento |
| sTEFSGk64bm8PcAj63oCdg== | Las Cañitas | 5 | 6 | 390 | 320 | 2600000 | Departamento |
| yNsWtP4xBcrJQWsaLpOHMg== | Las Cañitas | 5 | 6 | 390 | 320 | 2700000 | Departamento |
| nmaI4U7HVAAfs3wg2xbyhw== | Palermo | 4 | 4 | 389 | 377 | 3250000 | Departamento |
| caeC8noIMC9C37ZTosmzpg== | Palermo | 5 | 4 | 389 | 377 | 3250000 | Departamento |
| QFxIeBSWXzFchTwTU9a2vA== | Palermo | 4 | 3 | 387 | 270 | 2690000 | Departamento |
| zPS7kMqJSbdE7D8IWonHUg== | Recoleta | 10 | 3 | 386 | 357 | 2000000 | Departamento |
| uk0PiAS6iZD7J4xWKHwt9w== | Palermo | 5 | 3 | 386 | 269 | 2700000 | Departamento |
| CWJtjaD9xYt8Wim1ZVho8w== | Recoleta | 6 | 3 | 380 | 360 | 2500000 | Departamento |
| P9V3n+aGjG60YC/bzI5hNA== | Palermo | 5 | 6 | 380 | 380 | 3000000 | Casa |
| is0u/Do98zDw5uHWpTXKmQ== | Palermo | 8 | 3 | 380 | 380 | 2850000 | Casa |
| LOHQDKuvTGpCTNbdifYrMA== | Belgrano | 7 | 6 | 377 | 338 | 2750000 | Departamento |
| y7SngfemDIIX4C9xWOtoOw== | Belgrano | 6 | 4 | 375 | 345 | 2490000 | Departamento |
| YYKPSb8zKAOBuMMq0yHqIw== | Las Cañitas | 5 | 6 | 374 | 330 | 3500000 | Departamento |
| 2G+0lodjl0wDhARWgGN7eg== | Palermo | 6 | 5 | 370 | 330 | 2300000 | Departamento |
| 9d69MKuUKxTOZo7Dlwf63A== | Belgrano | 5 | 4 | 370 | 250 | 4000000 | Departamento |
| aqid5E8CW9PZvpPR1Ro9eg== | Belgrano | 5 | 4 | 370 | 250 | 4000000 | Departamento |
| L4DTp6Tp+qUIHuGXe1U84w== | Puerto Madero | 5 | 3 | 361 | 308 | 2650000 | Departamento |
| xqCDtYfnu30NIQK73120Gw== | Palermo | 8 | 3 | 360 | 322 | 2550000 | Departamento |
| w9sDR17XF8CwiDvRu6tBUw== | Palermo | 4 | 4 | 360 | 360 | 2400000 | Departamento |
| +9NOPldiqhJZGnfJR68L9A== | Palermo | 5 | 5 | 360 | 300 | 3000000 | Departamento |
| KXroYHfaGITOpTfr2LJGOQ== | Palermo | 5 | 5 | 360 | 300 | 3000000 | Departamento |
| Tv6YEBZjsY47kib98xfhsA== | Belgrano | 5 | 4 | 357 | 328 | 3500000 | Departamento |
| LiNNm5ySMHWuhOQDxVCaZw== | Palermo | 4 | 3 | 354 | 322 | 2550000 | Departamento |
| CEKekNjhAJ1Z7JCJ1VCbVA== | Barrio Norte | 5 | 4 | 350 | 260 | 2300000 | Departamento |
| uuoWgDFhfTK+1A0lUd1A6w== | Palermo | 6 | 4 | 350 | 260 | 2300000 | Departamento |
| FELJrZlNtrKKrguYTLNRZg== | Nuñez | 6 | 4 | 350 | 350 | 3500000 | Departamento |
| Is24vixQLM9EGPPrYRarCg== | Puerto Madero | 4 | 4 | 345 | 345 | 3000000 | Departamento |
| C7p5HBCr1G6tya9blj00XA== | Nuñez | 5 | 4 | 340 | 340 | 2340000 | Departamento |
| 7vHAACH1v9747TFFLVLPew== | Nuñez | 5 | 4 | 340 | 340 | 2340000 | Departamento |
| iPttThWRWa1AmimiPpmdRQ== | Nuñez | 5 | 4 | 340 | 340 | 2340000 | Departamento |
| xBshEQf3xWHnDFfGVGxjQQ== | Puerto Madero | 5 | 6 | 335 | 335 | 3000000 | Departamento |
| c6vFIjojPbXFEma+S8dX+Q== | Recoleta | 5 | 3 | 335 | 335 | 2200000 | Departamento |
| SybqkjR4dxRDNLSbOpkCrw== | Belgrano | 8 | 4 | 335 | 335 | 2950000 | Departamento |
| A0Aj+vBZ9QjWP4NILSk9jg== | Puerto Madero | 5 | 4 | 334 | 334 | 2500000 | Departamento |
| Tk97zD/E0jSLEx8iw9VnLw== | Puerto Madero | 4 | 5 | 334 | 334 | 2500000 | Departamento |
| JXrdeHSd5qYXQzOI47a0+w== | Puerto Madero | 4 | 5 | 334 | 334 | 2500000 | Departamento |
| oPgSrCqJ4vngJvE2ntUkxA== | Puerto Madero | 4 | 6 | 334 | 334 | 2900000 | Departamento |
| ZOr+ZTm0LD/vnBnK1LyySQ== | Puerto Madero | 5 | 6 | 332 | 332 | 3000000 | Departamento |
| pRbuOopRMgvCrwPEB2z4LA== | Puerto Madero | 4 | 3 | 331 | 331 | 2900000 | Departamento |
| CX8X6DdNYzV6anDKj/Hi/w== | Puerto Madero | 4 | 3 | 331 | 331 | 2900000 | Departamento |
| vHhWopbJeL6K3LEmjq1a2w== | Recoleta | 5 | 5 | 331 | 306 | 2200000 | Departamento |
| QSh5e+c9ZXPrCHZfkSHBTA== | Palermo | 5 | 4 | 330 | 309 | 2400000 | Departamento |
| BbljTeu5ZOmAL85D+grVAw== | Belgrano | 6 | 6 | 330 | 300 | 2700000 | Departamento |
| khXA3QwrW4HuY/lgAiw3nw== | Puerto Madero | 5 | 5 | 326 | 282 | 2727110 | Departamento |
| +pg5SZnYUIWPmoC/QdSAsw== | Palermo | 5 | 4 | 326 | 326 | 4500000 | Departamento |
| xy23FrLnOdNvy1tPPNwQyA== | Palermo | 6 | 6 | 326 | 326 | 2740000 | Departamento |
| qWYrj2vKYHRI7vibYhdsww== | Palermo | 6 | 3 | 325 | 325 | 2200000 | Departamento |
| z1ele3nPbRxXz8cdWCbVcA== | Palermo | 6 | 3 | 325 | 325 | 2200000 | Departamento |
| 6AWCQ0aKwll+grHeXWQHzg== | Belgrano | 4 | 4 | 325 | 300 | 2600000 | Departamento |
| MQsLbAOruz81ibPZAWScUg== | Palermo | 5 | 2 | 325 | 317 | 2150000 | Departamento |
| hzHeR3SxUslaHfeqc+vtxw== | Palermo | 6 | 3 | 325 | 325 | 2200000 | Departamento |
| kHlM4e7Dsy418SvO9FCzjA== | Palermo | 6 | 3 | 325 | 325 | 2200000 | Departamento |
| +bZ6GjpVQ3o6+vX8HuwTEA== | Palermo | 6 | 3 | 320 | 311 | 3100000 | Departamento |
| AZfl3YlwlrqvtyEWsKaD3Q== | Palermo | 4 | 3 | 320 | 320 | 2400000 | Departamento |
| isMQY5djHFbsbVPYmNTb9w== | Palermo | 8 | 3 | 315 | 315 | 2400000 | Departamento |
| pGj+5z6BeePx+kdbP4KivA== | Palermo | 4 | 2 | 314 | 296 | 4300000 | Departamento |
| Y1N7SELsGmc2ysGhB0Bacg== | Palermo | 4 | 3 | 311 | 290 | 4000000 | Departamento |
| hHIupRAlRsFybLR8wB5Pig== | Palermo | 5 | 3 | 311 | 290 | 4000000 | Departamento |
| E9qZ+Cc94vJgWj5nM5gDew== | Palermo | 5 | 5 | 311 | 311 | 4600000 | Departamento |
| Kl/10vMEzcQoyrziSL/bQQ== | Puerto Madero | 5 | 6 | 310 | 310 | 2800000 | Departamento |
| rgL1QTrojLZ7UP4Dk44yAA== | Palermo | 4 | 3 | 310 | 295 | 2800000 | Departamento |
| ZpHgGDfArDre0e6oONvmog== | Palermo | 5 | 3 | 310 | 290 | 4900000 | Departamento |
| wmX+BxLmS3MsEYHIC3RFvg== | Belgrano | 5 | 4 | 309 | 290 | 2400000 | Departamento |
| Pu9zP57REbSDY9ki7IRprw== | Puerto Madero | 5 | 3 | 308 | 220 | 2550000 | Departamento |
| FzPAAOoJgiNNcdiinCGCAw== | Palermo | 5 | 3 | 307 | 307 | 2300000 | Departamento |
| Sf03yCHcGDI9RuyjMVOJqg== | Palermo | 5 | 5 | 306 | 306 | 2300000 | Departamento |
| Q4F8ggWPHIy70A/WULI//w== | Palermo | 5 | 3 | 306 | 300 | 2395000 | Departamento |
| vFwcAEVQ9EcjfrhvcQgfwg== | Palermo | 5 | 3 | 306 | 300 | 2150000 | Departamento |
| HAKKkcIiuyxt2/LP/F5u9A== | Belgrano | 5 | 3 | 306 | 300 | 2150000 | Departamento |
| snxoHzfomlpUv2cJKF7clg== | Belgrano | 5 | 3 | 306 | 300 | 2150000 | Departamento |
| RDci3qae1Qm8dC0Lx4IwSg== | Belgrano | 5 | 3 | 306 | 300 | 2150000 | Departamento |
| ydSm3CfhkaGECaacc3EL3g== | Belgrano | 5 | 3 | 306 | 300 | 2150000 | Departamento |
| pZUdZNIGaztumEYVLLKZiw== | Palermo | 5 | 5 | 306 | 306 | 2300000 | Departamento |
| DnpSGXYFNvKPFdGmumBE2A== | Puerto Madero | 5 | 6 | 303 | 303 | 2750000 | Departamento |
| EBd2NWmWo/ROquYuG/EdZA== | Puerto Madero | 5 | 6 | 303 | 303 | 2600000 | Departamento |
| mKCc9VBC+Ddy+ed1AipNlw== | Palermo | 7 | 3 | 300 | 300 | 2900000 | Departamento |
| PembNVfBK2vcnox0xPz1xA== | Palermo | 6 | 5 | 300 | 300 | 2250000 | Departamento |
| bAptb+5qONbjdknJf57Byg== | Palermo | 6 | 5 | 300 | 300 | 2250000 | Departamento |
| 7jOZdJbTGAnFJH5Yonjxmw== | Nuñez | 6 | 3 | 300 | 300 | 3100000 | Departamento |
| 2fO9fNRYDBgbO8VT41xj1g== | Puerto Madero | 5 | 5 | 296 | 258 | 2502468 | Departamento |
| vbCWdL7mglsb636vMPf3+Q== | Palermo | 6 | 3 | 292 | 292 | 2850000 | Departamento |
| AdAKGfhPBZu3yhK4jYrKuQ== | Puerto Madero | 4 | 4 | 292 | 292 | 2500000 | Departamento |
| /HZyeR4d+kglSIvpUIJrDw== | Puerto Madero | 4 | 4 | 292 | 292 | 2500000 | Departamento |
| Q2XHHqFd0xdYHbtJ7oJfFg== | Nuñez | 5 | 4 | 286 | 286 | 2300000 | Departamento |
| T2sefgaFLQH3WbnqjCDmjg== | Palermo | 4 | 5 | 280 | 280 | 3500000 | Departamento |
| VDuDccLoxPlWfYPgOfRIlg== | Palermo | 4 | 5 | 280 | 280 | 3500000 | Departamento |
| /dCExDJiH2gmg9DXUWsuEw== | Palermo | 4 | 3 | 276 | 255 | 4000000 | Departamento |
| UYnJvuJpRjzNWYziUNAWXg== | Palermo | 4 | 4 | 275 | 275 | 3450000 | Departamento |
| 5k4s9pU+td15F/UibpWqYg== | Palermo | 5 | 4 | 271 | 271 | 3500000 | Departamento |
| AQ4iK3ko2EgWHILyxVykzg== | Palermo | 6 | 3 | 270 | 270 | 3700000 | Departamento |
| xONCQezUwqCKNroRFVnfpw== | Palermo | 6 | 3 | 270 | 270 | 3450000 | Departamento |
| 1vhP8pYXcJrbzgnCEDu1xQ== | Palermo | 4 | 3 | 270 | 250 | 3800000 | Departamento |
| nmT+GS4/l4t8ujR29SnYgQ== | Palermo | 4 | 3 | 270 | 250 | 4200000 | Departamento |
| isEUD5B95sbsSsmvmQHNiA== | Palermo | 4 | 3 | 270 | 250 | 3800000 | Departamento |
| rIEm/9nh0CjhM3LrIxYOqw== | Palermo | 5 | 3 | 267 | 254 | 2950000 | Departamento |
| Ir7xhlqbzE0E+TEQIuTQ1Q== | Palermo | 7 | 4 | 266 | 266 | 2500000 | Departamento |
| OSRuaG19M8uyIo2n4m1E3Q== | Belgrano | 4 | 3 | 261 | 230 | 2350000 | Departamento |
| KzBVxeygGhwpsPIEyOqOYg== | Belgrano | 5 | 3 | 261 | 227 | 2300000 | Departamento |
| i9yF0CcX1AR+CwjTa2fKag== | Palermo | 4 | 3 | 260 | 250 | 3500000 | Departamento |
| 2RMDppz17083+kPi3wT9ww== | Belgrano | 4 | 3 | 257 | 230 | 2550000 | Departamento |
| OrhIWJq+hHQGRgMuApOLVg== | Puerto Madero | 4 | 5 | 255 | 188 | 2200000 | Departamento |
| uoWhDuriTliC5xYmd0UBag== | Puerto Madero | 4 | 5 | 253 | 188 | 2200000 | Departamento |
| vpePOdVI6PWjEFaoulbJJQ== | Puerto Madero | 4 | 5 | 253 | 188 | 2200000 | Departamento |
| 6R5cg4ItdIvvCQtUh7WvkA== | Puerto Madero | 4 | 5 | 253 | 188 | 2200000 | Departamento |
| GNwxU5/yZNWsliehpwUO9w== | Puerto Madero | 5 | 3 | 253 | 187 | 2000000 | Departamento |
| 6sIaEKyzK1WsQZe0P8HBNg== | Puerto Madero | 4 | 5 | 253 | 188 | 2000000 | Departamento |
| Hs1sls3W8GgaRHlBm2p0nA== | Palermo | 4 | 3 | 250 | 250 | 3450000 | Departamento |
| kYyhHgh/PVrGxmrxqJd2YQ== | Palermo | 4 | 3 | 250 | 250 | 3450000 | Departamento |
| Ti029oZ5PpU4n7KZHE/CTg== | Palermo | 4 | 3 | 250 | 250 | 3500000 | Departamento |
| na50yrnfgczFsEVOMWo1/w== | Palermo | 4 | 3 | 250 | 250 | 3450000 | Departamento |
| vf7rjiK7176YlMFn8Ym7Zg== | Palermo | 4 | 3 | 250 | 250 | 3500000 | Departamento |
| afvbmSyC6NipsR98XENWfw== | Palermo | 5 | 2 | 250 | 250 | 2400000 | Casa |
| AopP3HAKzSGkyUZE2XFIWA== | Puerto Madero | 3 | 3 | 248 | 182 | 2000000 | Departamento |
| Xy5tJbNnUqrQbCcHBU3rGw== | Puerto Madero | 4 | 3 | 248 | 182 | 2000000 | Departamento |
| Idt6M7xgmsLKqOKquNCu7A== | Puerto Madero | 4 | 5 | 248 | 182 | 2000000 | Departamento |
| nRlKf2n6NLsTlp6C4X5RsQ== | Almagro | 3 | 5 | 234 | 1223 | 3333332 | Casa |
| SqxVgMk2/yXZSgpJF4ue9Q== | Puerto Madero | 4 | 5 | 222 | 222 | 2300000 | Departamento |
| olVixjKilboR9q+BcxSDcQ== | Palermo | 6 | 4 | 222 | 210 | 2100000 | Departamento |
| 6NsJeg4NfL+SGAgldSap0w== | Puerto Madero | 4 | 4 | 214 | 205 | 2500000 | Departamento |
| HWNtBJXSh4Wj42hAco8T2w== | San Nicolás | 3 | 1 | 60 | 56 | 5000345 | Departamento |
| e+pXYxhvxd0snbhYvdXQXQ== | Puerto Madero | 2 | 1 | 54 | 54 | 3150000 | Departamento |
| Jz4acv7Dz6pRjsnqQUXrOQ== | Caballito | 1 | 1 | 41 | 37 | 5112000 | Departamento |
| 1R9Q7qVR1u9hrcCqoZQEsg== | Caballito | 1 | 1 | 41 | 37 | 5112000 | Departamento |
| 6DhCrrgGNPdb+OS/4D3aEA== | Caballito | 1 | 1 | 41 | 37 | 5112000 | Departamento |
Existen propiedades con precios muy altos y con una superficie baja, estos casos probablemente son errores, por ende se omiten aquellas propiedades con un precio superior a 2M y con una superficie menor o igual a 60m2.
##Filtrar valores inferiores al primer cuartil
properties_filtered = properties_filtered %>%
filter(
!(surface_total <= 60 & price >= 2000000)
) %>%
arrange(desc(surface_total)) ##Ordenar por superficie
En este caso se observaron valores muy altos, a continuación se indagan mas a detalle.
##Filtrar valores superiores al tercer cuartil
properties_outliers = properties_filtered %>%
filter(surface_total >= quantile(surface_total, 0.75) &
surface_total <= max(surface_total))
ggplot(properties_outliers, aes( x=1:length(surface_total), y=sort(surface_total))) + ## Plot valores ordenados
geom_point(stat='identity', aes(col=property_type)) + ## Gráficar por tipo de propiedad
labs(y="Superficie total m2 ordenado",
x="Propiedades",
title="Superficie total m2 superiores al q3 ordenados")
Se opta por análizar los valores con una superficie superior a 1000 m2.
##Filtrar valores inferiores al primer cuartil
properties_outliers = properties_filtered %>%
filter(surface_total >= 1000 &
surface_total <= max(surface_total)) %>%
arrange((price)) ##Ordenar por % nulos
kable(properties_outliers) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| id | l3 | rooms | bathrooms | surface_total | surface_covered | price | property_type |
|---|---|---|---|---|---|---|---|
| Smvr2mnWqN5lF54Jg1hyiQ== | Balvanera | 1 | 1 | 2171 | 2171 | 45000 | Departamento |
| VYXOpOmpaJnJAff2n6jpvw== | Floresta | 1 | 1 | 2075 | 2075 | 49900 | Departamento |
| FoYur2oBYZBJldoOCJo0rA== | Villa Crespo | 2 | 1 | 3530 | 3530 | 60000 | Departamento |
| 48KETQKP0tIXWS6AKIGS8Q== | Balvanera | 1 | 1 | 3350 | 2982 | 69000 | Departamento |
| /WIre6hVI+Jx7RclLk5z7Q== | Balvanera | 2 | 1 | 3950 | 3950 | 69500 | Departamento |
| Y7n81JrVMjTot31EqwN8Tw== | Balvanera | 1 | 1 | 3244 | 2949 | 70000 | Departamento |
| 935m+LkMGWXvHEImEPrUeA== | Flores | 1 | 1 | 2773 | 2773 | 75000 | Departamento |
| UvBAlp5XM85WREEhUd55qg== | Congreso | 1 | 1 | 2948 | 2948 | 80000 | Departamento |
| PC1kecAw4btHhQsrvOalKw== | Villa Lugano | 3 | 1 | 9324 | 60 | 85000 | Departamento |
| BcuAyyVFFW9s0M9kVSjh4g== | Monserrat | 2 | 1 | 3935 | 3935 | 87000 | Departamento |
| gEVfFJ02J/dOB1sI/IjrcA== | Monserrat | 2 | 1 | 3935 | 3935 | 87000 | Departamento |
| CeK16CXUUr5maVxbX+jtwg== | Monserrat | 2 | 1 | 3935 | 3935 | 87000 | Departamento |
| qutf0DmbLz8SbSy3pube+Q== | Villa Ortuzar | 2 | 1 | 3840 | 37 | 88000 | PH |
| rQ/CmKaZK7HwXhyWHF/Z3Q== | Boedo | 3 | 1 | 4421 | 44 | 89000 | PH |
| 6xfxPcVGo+3k///EJNchDA== | Villa Urquiza | 1 | 1 | 3851 | 3711 | 95000 | Departamento |
| rSpPrh1PRcoRfgtJiM1vxA== | Liniers | 3 | 1 | 4780 | 44 | 97500 | Departamento |
| g7xoMc8yZVfcLPzMYlSEZQ== | Centro / Microcentro | 2 | 1 | 4415 | 38 | 105000 | Departamento |
| U4u1yusCfDtNeJFDsdc/Xw== | Belgrano | 2 | 1 | 3608 | 34 | 110000 | Departamento |
| iVon8X7T1m1If/uuVX4UKQ== | Villa Luro | 3 | 1 | 6085 | 58 | 117000 | Departamento |
| 0owg+zQr0qS5FFC/XvP2DQ== | Parque Chacabuco | 1 | 1 | 5821 | 5821 | 119260 | Departamento |
| 1HT86/PEFzsao+r9BUNHTQ== | Floresta | 5 | 2 | 6600 | 200 | 120000 | Casa |
| FCGLm8FQyPu1vHkUn3gWWg== | Villa Luro | 3 | 2 | 6085 | 58 | 120000 | Departamento |
| rsPfbHLtdUkClhOs/g4ZhA== | Paternal | 3 | 1 | 5821 | 53 | 120000 | PH |
| qGN99EaGKqI/Il7NzL9GrA== | Almagro | 2 | 1 | 4150 | 37 | 120000 | Departamento |
| x+zxnDaPURXh+Wi78XUsTA== | Boca | 3 | 1 | 5737 | 5737 | 131000 | Departamento |
| nlFlo8JdFybD4qGBpkYHjg== | Belgrano | 1 | 1 | 4500 | 42 | 134000 | Departamento |
| okIcPtWitqzdEg9x6ZMfrw== | Coghlan | 1 | 1 | 3910 | 3612 | 135000 | Departamento |
| ZyxERj0cszayeN3xxKUPNw== | Parque Chas | 2 | 1 | 9530 | 47 | 139000 | Departamento |
| XCPrUEikH8KkuL6qENiz1Q== | Flores | 2 | 1 | 6905 | 62 | 139900 | Departamento |
| B87EinonWGl5r1F3SRTGdw== | Flores | 2 | 1 | 5343 | 5343 | 142000 | Departamento |
| qD91qqmGEKDIdW66qHdyqg== | Palermo | 3 | 1 | 4534 | 42 | 145000 | Departamento |
| U5YKxoJoiWwsxuJQojS7Cg== | Nuñez | 1 | 1 | 5647 | 49 | 158116 | Departamento |
| WB+3pcFRe9zYpw8zLhgtbA== | Caballito | 2 | 1 | 5616 | 5616 | 160000 | Departamento |
| UyBBT4AmCu2J5i211P/sqQ== | Paternal | 3 | 1 | 9053 | 8050 | 165000 | Departamento |
| 5sUR9WCvTvF4BE+U/Pc97A== | Nuñez | 2 | 2 | 5116 | 5116 | 165000 | Departamento |
| kr2RCFqA7SYdNk1qxNtZ3A== | Caballito | 2 | 1 | 5616 | 5616 | 180000 | Departamento |
| 1ZFSp3wo8hD0xxCiW+emsA== | San Cristobal | 3 | 1 | 10145 | 10145 | 189900 | PH |
| V3pVDoPfhoUe+ULhhyPG9A== | San Telmo | 2 | 1 | 4268 | 40 | 195000 | Departamento |
| bNcHCG3vIv3vDMiSWfC7XQ== | Palermo | 4 | 1 | 6845 | 5930 | 210000 | Departamento |
| 6FE6HdydwPh+iYwV5yvkvQ== | Caballito | 5 | 3 | 126062 | 126062 | 215000 | PH |
| cIGewazzkncAlQaE92/gIw== | Nuñez | 3 | 1 | 5592 | 49 | 225000 | Departamento |
| Uu5AyztfMvxuqd0sTZiK0w== | Parque Centenario | 4 | 1 | 11250 | 8830 | 229000 | Departamento |
| Zg4ZSJ8153FqtFFd0affcA== | Once | 3 | 2 | 10228 | 98 | 230000 | Departamento |
| +jo2/C3cpEQSW0ZWXuHKOQ== | Caballito | 5 | 3 | 126062 | 126 | 240000 | PH |
| 7IS1CGC1Cb/MyzTE8p5zzQ== | Retiro | 4 | 3 | 1024 | 200 | 240000 | Casa |
| XP/us//1gMZYL76CsAbItQ== | Saavedra | 2 | 1 | 3200 | 3200 | 250000 | Departamento |
| rDo1POn/F1aTMMbwOOSG7A== | Caballito | 4 | 1 | 1077 | 1077 | 250000 | PH |
| 69CbpswzYeazLKqHpLNQgA== | Caballito | 4 | 1 | 1077 | 1077 | 250000 | PH |
| ANxpFuZUFwqntJniDv5uMQ== | Caballito | 4 | 1 | 1077 | 1077 | 250000 | PH |
| UP+OsOBam+O7Zwyb+2j1XQ== | Villa General Mitre | 3 | 2 | 10370 | 86 | 255000 | Departamento |
| ku2e/pqYgFR7DX5iw1rwIw== | Villa Urquiza | 4 | 2 | 16725 | 88 | 300000 | Casa |
| 8mmwJjyPqLZpWlDEQLiEbw== | Liniers | 3 | 3 | 11100 | 110 | 360000 | Departamento |
| EiEdO6wsR9l0A1vUnosKwA== | Villa Luro | 5 | 2 | 1054 | 248 | 598000 | Casa |
| +yOu+3+nSqbcMM1LxDaumQ== | Villa Lugano | 6 | 3 | 1087 | 398 | 610000 | Casa |
| +MYffTHRRyIXvtf4fh1CIQ== | Villa Devoto | 7 | 5 | 2000 | 400 | 750000 | Casa |
| s2ruXF7fVG8g4/eE/1MGAg== | Villa Devoto | 7 | 5 | 2000 | 400 | 750000 | Departamento |
| 7x/zGaza+j1AqRpu0xVXGg== | Villa Devoto | 7 | 5 | 2000 | 400 | 750000 | Casa |
| wB7s2asw3VOhGhJbnNlpDA== | Parque Chacabuco | 6 | 7 | 1400 | 750 | 750000 | Casa |
| eXQFFFVsn5wH9EMnJiexXA== | Parque Chacabuco | 6 | 7 | 1400 | 750 | 800000 | Casa |
| OdC1XxxSPHxjHXA9ZVvgvA== | Caballito | 12 | 6 | 1300 | 1100 | 1000000 | Casa |
| VFEkYMIbaLYjYCKe82rjQw== | Parque Chacabuco | 7 | 7 | 1529 | 1276 | 1200000 | Casa |
| HoevWJvdA7Z5SHXoXSwKkA== | San Cristobal | 8 | 5 | 1000 | 700 | 1490000 | Casa |
| hUAzcvBcszvDe/NWd7zBBA== | Palermo | 12 | 2 | 1000 | 500 | 1500000 | PH |
| Tv3srPsBjS8eir91O+pSzg== | Villa del Parque | 10 | 6 | 1500 | 1400 | 2200000 | Casa |
| z71POS0zfEzP6bkt9ytFLA== | Belgrano | 10 | 5 | 1015 | 1013 | 2200000 | Casa |
| uNwBTY6ONd76me4LJCvrsw== | Recoleta | 8 | 3 | 1216 | 946 | 2490000 | Casa |
| JitBT9pTTCDKD+38nZOggg== | Belgrano | 9 | 5 | 1150 | 850 | 4000000 | Casa |
| 2iFRv302I2Rrq0wBa8EiKA== | Villa del Parque | 10 | 4 | 2000 | 1400 | 5000000 | Casa |
Se evidencian propiedas con superficies muy lejanas de la distribución, adicionalmente no presentan un precio muy elevado o una gran cantidad de habitaciones, por ende se toma la decisión de omitir estos casos.
##Filtrar valores inferiores al primer cuartil
properties_filtered = properties_filtered %>%
filter(
!(surface_total >=1000 & price <=1000000)
)
A continuación se repite el análisis sobre el nuevo dataset.
Si bien aun se siguen observando valores muy altos, no existe suficiente evidencia para asumir que son errores, ya que estos valores muy altos corresponden a propiedades de gran tamaño. Como se mencionó anteriormente se omitieron aquellas propiedades donde el precio de la transacción no era proporcional al tamaño de la propiedad, tanto para valores superiores como inferiores.
La asimetría positiva se mantiene, lo que indica que aun la mayoría de precios son valores bajos y unos pocos valores son muy altos en comparación al resto.
Por otro lado en la variable superficie también se omitieron aquellas propiedades donde el tamaño de la propiedad no era coherente con el precio.
El precio presenta un coeficiente de correlación de 0.68 con la superficie total de la propiedad, mientras que con las habitaciones es de 0.50, esto genera una primera impresión de la relación lineal de esta variable con sus pares. ### Medidas de posición del precio
summary_price = summarise(
properties_filtered,
mean =mean(price),
max = max(price),
min = min(price),
q1 = quantile(price,0.25),
q2 = quantile(price,0.5),
q3 = quantile(price,0.75))
kable(summary_price) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| mean | max | min | q1 | q2 | q3 |
|---|---|---|---|---|---|
| 251408.6 | 6e+06 | 12000 | 119000 | 170000 | 271800 |
ggplot(properties_filtered, aes(price)) + ## Hist. precio
geom_histogram(color="black", fill="tomato", bins = 40) + ## 40 bins
labs(x="Precio USD ordenado",
y="Cant. Propiedades",
title="Distribución del precio")
summary_price_g = summarise(
group_by(properties_filtered, property_type),
mean =mean(price),
max = max(price),
min = min(price),
q1 = quantile(price,0.25),
q2 = quantile(price,0.5),
q3 = quantile(price,0.75))
kable(summary_price_g) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| property_type | mean | max | min | q1 | q2 | q3 |
|---|---|---|---|---|---|---|
| Casa | 433612.7 | 5000000 | 55000 | 235000 | 335000 | 490000 |
| Departamento | 246703.8 | 6000000 | 12000 | 115000 | 164000 | 260000 |
| PH | 218842.0 | 1500000 | 42000 | 137000 | 190000 | 272000 |
ggplot(properties_filtered, aes(x = property_type, y = price)) +
geom_boxplot() + geom_boxplot(aes(color = property_type)) +
coord_flip() +
labs(x="Precio USD",
x="Tipo de Propiedades",
title="Boxplot precio por tipo de propiedades")
properties_filtered %>%
select(-id,-l3) %>% ## Omitir variables
mutate(property_type = factor(property_type)) %>% ## Tipo de prpiedad como factor
ggpairs(., ## Correlalograma
title = "Matriz de correlaciones",
mapping = aes(colour= property_type)) ## Color por tipo
dim(properties_filtered)
## [1] 51089 8
g <- ggplot(properties_filtered, aes(x=rooms, y=price)) + ## Plot rooms vs price
geom_point(aes(col=property_type)) + ## scatter color por tipo de propiedad
geom_smooth(method="lm") + ## Añadir linea de suvizado líneal
labs(y="Precio USD",
x="Cant. Habitaciones",
title="# Habitaciones VS Precio por tipo de propiedad")
ggMarginal(g, type = "histogram", fill="transparent") ## Añadir hist. en cada eje, sin color
Se procede a la implementación del modelo de regresión líneal simple.
#Armamos el modelo
rl_model<-lm(price ~ rooms, data = properties_filtered)
# Imprimimos los coeficientes del modelo
print(rl_model$coefficients)
## (Intercept) rooms
## -43115.42 105127.02
summary(rl_model)
##
## Call:
## lm(formula = price ~ rooms, data = properties_filtered)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2720949 -97393 -32266 37861 5412353
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -43115.4 2485.5 -17.35 <2e-16 ***
## rooms 105127.0 794.6 132.31 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 249900 on 51087 degrees of freedom
## Multiple R-squared: 0.2552, Adjusted R-squared: 0.2552
## F-statistic: 1.75e+04 on 1 and 51087 DF, p-value: < 2.2e-16
Nuestro modelo queda construído de la siguinete manera para la estimación del precion con base al número de habitaciones de la propiedad.
\[ price = -43.016 + 105.080(rooms)\] * Los residuos, la diferencia entre el valor real y el valor pronósticado por el modelo, deberían tener una distribución normal, cuyo promedio sea cero (0), en este caso el promedio de los residuos es de -32.266.
El intercepto, es decir el valor de origen de la recta donde se cruza con el eje vertical es de -43.016, este es el monto de partida de la recta modelada, el valor promedio de las propiedaes cuando tienen 0 habitaciones; este valor no resulta muy útil puesto que las propiedades no pueden tener 0 habitaciones.
Por otro lado el coeficiente de habitaciones índica que el para módelo que por cada habitación que tenga la propiedad el precio estimado por el mismo, aumentará 105.080 USD.
El desvio estándar de ambos coeficientes es relativamente bajo, lo cuál índica que si el mismo módelo se ejecuta varias veces la variación de los coeficientes no será muy amplía.
El nivel se significancia de ambos coeficientes es bastante bueno, lo que muestra que los hallazgos no fueron cuestión del azar, por lo cual el módelo es estadísticamente significativo.
El error estándar residual mide la calidad del ajuste del módelo, la cantidad promedio en el que la respuesta estimada del precio se desviará de la línea de regresión verdadera de los datos. En el modelo, el precio estimado puede desviarse de la línea de regresión verdadera en promedio 250.100 USD. Por otro lado este eror se calculó con 51.087 grados de libertad, para ello se tienen en cuenta los puntos que se usaron para estimar y los parámetros del modelo. En este caso se contaba con 51.089 puntos y dos parámetros (intercepto y pendiente).
El valor R2 índica que el modelo actual, usando como predictor rooms, es capaz de explicar un 25% de la variabilidad observada en el precio de las propiedades.
g <- ggplot(properties_filtered, aes(x=surface_total, y=price)) + ## Plot rooms vs price
geom_point(aes(col=property_type)) + ## scatter color por tipo de propiedad
geom_smooth(method="lm") + ## Añadir linea de suvizado líneal
labs(y="Precio USD",
x="Superficie total m2",
title="Superficie total VS Precio por tipo de propiedad")
ggMarginal(g, type = "histogram", fill="transparent") ## Añadir hist. en cada eje, sin color
Se procede a la implementación del modelo de regresión líneal simple.
#Armamos el modelo
rl_model<-lm(price ~ surface_total, data = properties_filtered)
# Imprimimos los coeficientes del modelo
print(rl_model$coefficients)
## (Intercept) surface_total
## 23333.980 2494.821
summary(rl_model)
##
## Call:
## lm(formula = price ~ surface_total, data = properties_filtered)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2637916 -45487 -15054 19865 4479773
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 23333.98 1420.32 16.43 <2e-16 ***
## surface_total 2494.82 11.72 212.90 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 210800 on 51087 degrees of freedom
## Multiple R-squared: 0.4701, Adjusted R-squared: 0.4701
## F-statistic: 4.533e+04 on 1 and 51087 DF, p-value: < 2.2e-16
Nuestro modelo queda construído de la siguinete manera para la estimación del precion con base al número de habitaciones de la propiedad.
\[ price = 23.334 + 2495(surfacetotal)\] * Los residuos, la diferencia entre el valor real y el valor pronósticado por el modelo, deberían tener una distribución normal, cuyo promedio sea cero (0), en este caso el promedio de los residuos es de -15.054
El intercepto, es decir el valor de origen de la recta donde se cruza con el eje vertical es de 23.334, este es el monto de partida de la recta modelada, el valor promedio de las propiedaes cuando tienen 0 m2; este valor no resulta muy útil puesto que las propiedades no pueden tener 0 m2.
Por otro lado el coeficiente de superficies índica que para el módelo que cada m2 que tenga la propiedad el precio estimado por el mismo, aumentará 105.080 USD.
El desvio estándar de ambos coeficientes es relativamente bajo, lo cuál índica que si el mismo módelo se ejecuta varias veces la variación de los coeficientes no será muy amplía.
El nivel se significancia de ambos coeficientes es bastante bueno, lo que muestra que los hallazgos no fueron cuestión del azar, por lo cual el módelo es estadísticamente significativo.
El error estándar residual mide la calidad del ajuste del módelo, la cantidad promedio en el que la respuesta estimada del precio se desviará de la línea de regresión verdadera de los datos. En el modelo, el precio estimado puede desviarse de la línea de regresión verdadera en promedio 210.800 USD. Por otro lado este eror se calculó con 51.087 grados de libertad, para ello se tienen en cuenta los puntos que se usaron para estimar y los parámetros del modelo. En este caso se contaba con 51.089 puntos y dos parámetros (intercepto y pendiente).
El valor R2 índica que el modelo actual, usando como predictor la superficie total, es capaz de explicar un 47% de la variabilidad observada en el precio de las propiedades.
Como se comprobó durante el documento, existen datos que probablemente correspondan a errores al momento de ingresar los datos, por lo cual fue necesario removerlos. Si bien se implementaron dos modelos, ninguno de ellos logra captar ni el 50% de la variabilidad del precio, quizá al añadir mas variables los resultados mejoren. De cualquier modo la superficie total fue la varible que más logró captar la variabilidad el precio, adicionalmente el error promedio por predicción de este módelo fue menor en comparación al número de habitaciones.