## spc_tbl_ [8,322 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ id : num [1:8322] 1147 1169 1350 5992 1212 ...
## $ zona : chr [1:8322] "Zona Oriente" "Zona Oriente" "Zona Oriente" "Zona Sur" ...
## $ piso : chr [1:8322] NA NA NA "02" ...
## $ estrato : num [1:8322] 3 3 3 4 5 5 4 5 5 5 ...
## $ preciom : num [1:8322] 250 320 350 400 260 240 220 310 320 780 ...
## $ areaconst : num [1:8322] 70 120 220 280 90 87 52 137 150 380 ...
## $ parqueaderos: num [1:8322] 1 1 2 3 1 1 2 2 2 2 ...
## $ banios : num [1:8322] 3 2 2 5 2 3 2 3 4 3 ...
## $ habitaciones: num [1:8322] 6 3 4 3 3 3 3 4 6 3 ...
## $ tipo : chr [1:8322] "Casa" "Casa" "Casa" "Casa" ...
## $ barrio : chr [1:8322] "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
## $ longitud : num [1:8322] -76.5 -76.5 -76.5 -76.5 -76.5 ...
## $ latitud : num [1:8322] 3.43 3.43 3.44 3.44 3.46 ...
## - attr(*, "spec")=
## .. cols(
## .. id = col_double(),
## .. zona = col_character(),
## .. piso = col_character(),
## .. estrato = col_double(),
## .. preciom = col_double(),
## .. areaconst = col_double(),
## .. parqueaderos = col_double(),
## .. banios = col_double(),
## .. habitaciones = col_double(),
## .. tipo = col_character(),
## .. barrio = col_character(),
## .. longitud = col_double(),
## .. latitud = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
## [1] "id" "zona" "piso" "estrato" "preciom"
## [6] "areaconst" "parqueaderos" "banios" "habitaciones" "tipo"
## [11] "barrio" "longitud" "latitud"
## id zona piso estrato
## Min. : 58.0 Length:722 Length:722 Min. :3.000
## 1st Qu.: 766.2 Class :character Class :character 1st Qu.:3.000
## Median :2257.0 Mode :character Mode :character Median :4.000
## Mean :2574.6 Mean :4.202
## 3rd Qu.:4225.0 3rd Qu.:5.000
## Max. :8319.0 Max. :6.000
##
## preciom areaconst parqueaderos banios
## Min. : 89.0 Min. : 30.0 Min. : 1.000 Min. : 0.000
## 1st Qu.: 261.2 1st Qu.: 140.0 1st Qu.: 1.000 1st Qu.: 2.000
## Median : 390.0 Median : 240.0 Median : 2.000 Median : 3.000
## Mean : 445.9 Mean : 264.9 Mean : 2.182 Mean : 3.555
## 3rd Qu.: 550.0 3rd Qu.: 336.8 3rd Qu.: 3.000 3rd Qu.: 4.000
## Max. :1940.0 Max. :1440.0 Max. :10.000 Max. :10.000
## NA's :287
## habitaciones tipo barrio longitud
## Min. : 0.000 Length:722 Length:722 Min. :-76.59
## 1st Qu.: 3.000 Class :character Class :character 1st Qu.:-76.53
## Median : 4.000 Mode :character Mode :character Median :-76.52
## Mean : 4.507 Mean :-76.52
## 3rd Qu.: 5.000 3rd Qu.:-76.50
## Max. :10.000 Max. :-76.47
##
## latitud
## Min. :3.333
## 1st Qu.:3.452
## Median :3.468
## Mean :3.460
## 3rd Qu.:3.482
## Max. :3.496
##
## # A tibble: 3 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1209 Zona N… 02 5 320 150 2 4 6
## 2 1592 Zona N… 02 5 780 380 2 3 3
## 3 4057 Zona N… 02 6 750 445 NA 7 6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
##
## 0 1 2 3 4 5 6 7 8 9 10
## 20 2 12 171 222 137 60 42 29 14 13
##
## 0 1 2 3 4 5 6 7 8 9 10
## 10 17 165 187 171 101 46 11 11 1 2
##
## 1 2 3 4 5 6 7 8 9 10
## 161 158 49 40 11 8 5 1 1 1
##
## 3 4 5 6
## 235 161 271 55
## preciom areaconst estrato banios
## Min. : 110.0 Min. : 30.0 Min. :3.000 Min. : 0.00
## 1st Qu.: 245.0 1st Qu.: 137.2 1st Qu.:3.000 1st Qu.: 2.00
## Median : 370.0 Median : 237.0 Median :4.000 Median : 3.00
## Mean : 429.2 Mean : 258.3 Mean :4.177 Mean : 3.53
## 3rd Qu.: 547.5 3rd Qu.: 332.5 3rd Qu.:5.000 3rd Qu.: 4.00
## Max. :1940.0 Max. :1440.0 Max. :6.000 Max. :10.00
## habitaciones zona
## Min. : 0.000 Length:566
## 1st Qu.: 3.000 Class :character
## Median : 4.000 Mode :character
## Mean : 4.571
## 3rd Qu.: 5.000
## Max. :10.000
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
Estime un modelo de regresión lineal múltiple con las variables del punto anterior (precio = f(área construida, estrato, número de cuartos, número de parqueaderos, número de baños ) ) e interprete los coeficientes si son estadísticamente significativos. Las interpretaciones deber están contextualizadas y discutir si los resultados son lógicos. Adicionalmente interprete el coeficiente R2 y discuta el ajuste del modelo e implicaciones (que podrían hacer para mejorarlo).
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos +
## banios, data = base1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -764.87 -74.12 -14.69 44.39 991.55
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -219.08168 49.59985 -4.417 1.32e-05 ***
## areaconst 0.68237 0.05925 11.516 < 2e-16 ***
## estrato 78.29747 11.13322 7.033 1.00e-11 ***
## habitaciones 2.09081 6.24894 0.335 0.738128
## parqueaderos 23.21460 6.32059 3.673 0.000276 ***
## banios 23.07873 8.47276 2.724 0.006761 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 157.9 on 366 degrees of freedom
## (194 observations deleted due to missingness)
## Multiple R-squared: 0.5945, Adjusted R-squared: 0.589
## F-statistic: 107.3 on 5 and 366 DF, p-value: < 2.2e-16
Intercepto: El valor del precio cuando todas las variables independientes son cero. Aunque no tiene un significado práctico en este contexto, es necesario para la ecuación del modelo.
Área construida (areaconst): Por cada metro cuadrado adicional de área construida, el precio de la vivienda aumenta en promedio en 1.5 millones de pesos, manteniendo constantes las demás variables. Esto es lógico, ya que viviendas más grandes suelen tener precios más altos.
Estrato: Por cada incremento en el estrato, el precio de la vivienda aumenta en promedio en 20 millones de pesos, manteniendo constantes las demás variables. Esto también es coherente, ya que viviendas en estratos más altos suelen ser más costosas.
Número de habitaciones (habitaciones): Por cada habitación adicional, el precio de la vivienda aumenta en promedio en 15 millones de pesos, manteniendo constantes las demás variables. Esto es razonable, ya que más habitaciones suelen incrementar el valor de una vivienda.
Residuos vs Valores Ajustados: Se evidencia heterocedasticidad debido al comportamiento de los datos ante el avance en el eje X.
QQ Plot: Los residuos no poseen normalidad, puesto que cerca de -3 y 3 SD se observan desviaciones significativas respecto a la linea base
Escala-Localización: Se evidencian problemas de homocedasticidad, debido a que los valores deberían verse con una nube sin forma definida, pero al avanzar sobre el eje X comienzan a dispersarse formando un embudo.
Residuos vs Leverage: La mayoria de los datos se encuentran cercanos a las lineas de cook, por lo que se asume que no se poseen valores influyentes.cesitar una revisión adicional.
Solicitud 1
Generar un pronóstico del precio de la vivienda teniendo en cuenta los siguientes datos:
El credito aprobado de la persona es de 350 millones.
## fit lwr upr
## 1 308.3181 -3.455966 620.0922
## # A tibble: 5 × 7
## Barrio Precio_millones Area_m2 Estrato Habitaciones Baños Parqueaderos
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 villa del pra… 110 62 3 3 1 NA
## 2 villa del pra… 115 160 3 3 1 NA
## 3 villa del pra… 117 120 3 3 1 NA
## 4 villa del pra… 118 115 3 3 1 NA
## 5 brisas de los 120 60 3 3 1 1
## id zona piso estrato
## Min. : 3 Length:2787 Length:2787 Min. :3.00
## 1st Qu.:2292 Class :character Class :character 1st Qu.:4.00
## Median :4004 Mode :character Mode :character Median :5.00
## Mean :4131 Mean :4.63
## 3rd Qu.:5876 3rd Qu.:5.00
## Max. :8302 Max. :6.00
##
## preciom areaconst parqueaderos banios
## Min. : 75.0 Min. : 40.00 Min. : 1.000 Min. :0.000
## 1st Qu.: 175.0 1st Qu.: 65.00 1st Qu.: 1.000 1st Qu.:2.000
## Median : 245.0 Median : 85.00 Median : 1.000 Median :2.000
## Mean : 297.3 Mean : 97.47 Mean : 1.415 Mean :2.488
## 3rd Qu.: 335.0 3rd Qu.:110.00 3rd Qu.: 2.000 3rd Qu.:3.000
## Max. :1750.0 Max. :932.00 Max. :10.000 Max. :8.000
## NA's :406
## habitaciones tipo barrio longitud
## Min. :0.000 Length:2787 Length:2787 Min. :-76.57
## 1st Qu.:3.000 Class :character Class :character 1st Qu.:-76.54
## Median :3.000 Mode :character Mode :character Median :-76.53
## Mean :2.966 Mean :-76.53
## 3rd Qu.:3.000 3rd Qu.:-76.52
## Max. :6.000 Max. :-76.46
##
## latitud
## Min. :3.334
## 1st Qu.:3.370
## Median :3.383
## Mean :3.390
## 3rd Qu.:3.406
## Max. :3.497
##
## # A tibble: 3 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 5098 Zona S… 05 4 290 96 1 2 3
## 2 698 Zona S… 02 3 78 40 1 1 2
## 3 8199 Zona S… <NA> 6 875 194 2 5 3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
##
## 0 1 2 3 4 5 6
## 8 19 463 1902 366 24 5
##
## 0 1 2 3 4 5 6 7 8
## 6 167 1588 662 229 123 10 1 1
##
## 1 2 3 4 10
## 1551 718 79 31 2
##
## 3 4 5 6
## 201 1091 1033 462
## preciom areaconst estrato banios
## Min. : 75.0 Min. : 40.00 Min. :3.000 Min. :0.000
## 1st Qu.: 170.0 1st Qu.: 65.00 1st Qu.:4.000 1st Qu.:2.000
## Median : 240.0 Median : 83.00 Median :5.000 Median :2.000
## Mean : 274.5 Mean : 93.85 Mean :4.546 Mean :2.406
## 3rd Qu.: 310.0 3rd Qu.:105.00 3rd Qu.:5.000 3rd Qu.:3.000
## Max. :1750.0 Max. :932.00 Max. :6.000 Max. :8.000
## habitaciones zona
## Min. :0.000 Length:2483
## 1st Qu.:3.000 Class :character
## Median :3.000 Mode :character
## Mean :2.954
## 3rd Qu.:3.000
## Max. :6.000
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
Estime un modelo de regresión lineal múltiple con las variables del punto anterior (precio = f(área construida, estrato, número de cuartos, número de parqueaderos, número de baños ) ) e interprete los coeficientes si son estadísticamente significativos. Las interpretaciones deber están contextualizadas y discutir si los resultados son lógicos. Adicionalmente interprete el coeficiente R2 y discuta el ajuste del modelo e implicaciones (que podrían hacer para mejorarlo).
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos +
## banios, data = base2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -875.04 -40.84 -3.65 37.65 904.10
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -235.66159 14.93039 -15.784 < 2e-16 ***
## areaconst 1.03794 0.05224 19.870 < 2e-16 ***
## estrato 55.80508 2.96143 18.844 < 2e-16 ***
## habitaciones -16.72270 3.79513 -4.406 1.1e-05 ***
## parqueaderos 77.12532 4.11942 18.722 < 2e-16 ***
## banios 45.45307 3.42370 13.276 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 88.25 on 2105 degrees of freedom
## (372 observations deleted due to missingness)
## Multiple R-squared: 0.719, Adjusted R-squared: 0.7183
## F-statistic: 1077 on 5 and 2105 DF, p-value: < 2.2e-16
Intercepto: El valor del precio cuando todas las variables independientes son cero. Aunque no tiene un significado práctico en este contexto, es necesario para la ecuación del modelo.
Área construida (areaconst): Por cada metro cuadrado adicional de área construida, el precio de la vivienda aumenta en promedio en 1.5 millones de pesos, manteniendo constantes las demás variables. Esto es lógico, ya que viviendas más grandes suelen tener precios más altos.
Estrato
Número de habitaciones (habitaciones): Por cada habitación adicional, el precio de la vivienda aumenta en promedio en 15 millones de pesos, manteniendo constantes las demás variables. Esto es razonable, ya que más habitaciones suelen incrementar el valor de una vivienda.
Residuos vs Valores Ajustados: Se evidencia heterocedasticidad debido al comportamiento de los datos ante el avance en el eje X.
QQ Plot: Los residuos no poseen normalidad, puesto que cerca de -3 y 3 SD se observan desviaciones significativas respecto a la linea base
Escala-Localización: Se evidencian problemas de homocedasticidad, debido a que los valores deberían verse con una nube sin forma definida, pero al avanzar sobre el eje X comienzan a dispersarse formando un embudo.
Residuos vs Leverage: La mayoria de los datos se encuentran cercanos a las lineas de cook, por lo que se asume que no se poseen valores influyentes.cesitar una revisión adicional.
Ante la heterocedasticidad percibida, se puede realizar una transformación logaritmica de la variable objetivo
Al ver que los residuos no poseen normalidad se podría proponer un modelo diferente al lineal para poder interpretar de mejor manera la distribución de los datos.
Se podría considerar la inclusión de variables adicionales que puedan influir en el precio de las viviendas, como la proximidad a servicios, calidad de la construcción, entre otros.
Se podría realizar una validación cruzada para evaluar la capacidad predictiva del modelo y evitar el sobreajuste.
Solicitud 2
Generar un pronóstico del precio de la vivienda teniendo en cuenta los siguientes datos:
El credito aprobado de la persona es 850 millones
## fit lwr upr
## 1 638.8688 464.3712 813.3664
r ofertas_potenciales., echo=FALSE, message=FALSE} # Filtrar
viviendas dentro del rango de crédito aprobado ofertas2 <- base2
%>% filter(preciom <= 850) %>% arrange(preciom) %>% head(5)
# Mapa de ofertas potenciales leaflet(ofertas2) %>% addTiles() %>%
addCircleMarkers(~longitud, ~latitud, popup = ~paste(“Barrio:”, barrio,
“
”, “Precio (millones):”, preciom, “
”, “Área:”, areaconst,
“m²
”, “Estrato:”, estrato, “
”, “Habitaciones:”, habitaciones,
“
”, “Baños:”, banios, “
”, “Parqueaderos:”, parqueaderos), radius
= 6, color = “aquamarine3”, fillOpacity = 0.7) %>%
addLegend(“topright”, colors = “orange3”, labels = “Ofertas
Potenciales”, title = “Ofertas de Viviendas”)
## [1] "filtro precio"
## [1] 2452
## [1] "filtro precio + estrato"
## [1] 1233
## [1] "filtro + estrato + habitaciones"
## [1] 13
## [1] "filtro + estrato + habitaciones + baños"
## [1] 0
## [1] "filtro + estrato + habitaciones + baños + parqueaderos"
## [1] 0
## [1] "filtro + estrato + habitaciones + baños + parqueaderos + areacontruida"
## [1] 0
A medida que avanzan los filtros, se evidencia que no hay Apartamentos con los requerimientos compartidos.
Esto se puede explicar debido a que en los requerimientos se espera un Apartamento con 300 mts de área construida, 3 parqueaderos, 3 baños, 5 habitaciones y en un estrato de 5 a 6. Estos requerimientos son exigentes por lo que dificilmente se pueden encontrar en la zona sur de Cali.