Analisis del mercado inmobiliario en la ciudad de Cali

Data

vivienda
# A tibble: 8,322 × 13
      id zona   piso  estrato preciom areaconst parqueaderos banios habitaciones
   <dbl> <chr>  <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
 1  1147 Zona … <NA>        3     250        70            1      3            6
 2  1169 Zona … <NA>        3     320       120            1      2            3
 3  1350 Zona … <NA>        3     350       220            2      2            4
 4  5992 Zona … 02          4     400       280            3      5            3
 5  1212 Zona … 01          5     260        90            1      2            3
 6  1724 Zona … 01          5     240        87            1      3            3
 7  2326 Zona … 01          4     220        52            2      2            3
 8  4386 Zona … 01          5     310       137            2      3            4
 9  1209 Zona … 02          5     320       150            2      4            6
10  1592 Zona … 02          5     780       380            2      3            3
# ℹ 8,312 more rows
# ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

Caso 1: Viviendas Zona Norte de la Ciudad

Realice un filtro a la base de datos e incluya solo las ofertas de : base1: casas, de la zona norte de la ciudad.

data_casa <- subset(vivienda, tipo == 'Casa'& zona == "Zona Norte")
tabla <- (head(data_casa))

Tabla de casas en la zona norte

tabla %>%
  kbl() %>%
  kable_paper("hover", 
              full_width = F)
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
1209 Zona Norte 02 5 320 150 2 4 6 Casa acopi -76.51341 3.47968
1592 Zona Norte 02 5 780 380 2 3 3 Casa acopi -76.51674 3.48721
4057 Zona Norte 02 6 750 445 NA 7 6 Casa acopi -76.52950 3.38527
4460 Zona Norte 02 4 625 355 3 5 5 Casa acopi -76.53179 3.40590
6081 Zona Norte 02 5 750 237 2 6 6 Casa acopi -76.54044 3.36862
7824 Zona Norte 02 4 600 160 1 4 5 Casa acopi -76.55210 3.42125

Mapa de casas de la Zona Norte de Ciudad de Cali

mapa <- leaflet(data = data_casa) %>%
  addTiles() %>%
  addMarkers(lng = ~longitud, lat = ~latitud, popup = ~zona)

mapa

Existe algunos puntos que se alejan de la zona norte la ciudad de cali, por lo que se infiere que este fenomeno se presenta porque los puntos de latitud y longitud no fueron bien capturados en el momento de digitación o extración de la información, para una futura ocación se recomienda incluir la variable dirección dado que con la misma se podria tener una mayor aproximación a las variables longitud y laltitud.

Analisis exploratorio de variables

Precio por estrato

boxplot(data_casa$preciom~data_casa$estrato,
main = "Distribución del precio por Estrato",
ylab="Precio",
xlab = "Estrato", las=1,
col=c("seagreen","royalblue","#ee964b","pink"))

Considerando que el estrato socioeconómico se define como la clasificación de la población en grupos o estratos según su situación económica y social, donde se consideran factores como el nivel de ingresos, se puede observar que las viviendas con mayor valor tienden a encontrarse en los estratos 5 y 6.

Precio por area construida

plot(data_casa$preciom~data_casa$areaconst, 
     xlab = "Área Construida", 
     ylab = "Precio de la Vivienda", 
     main = "Relación entre Área Construida y Precio",
     col=c("seagreen"))

Se observa una relación directa entre el precio y el área construida. En la mayoría de los casos, a medida que el precio aumenta, también lo hace el área construida.

Q1 <- quantile(data_casa$preciom, 0.25)
Q3 <- quantile(data_casa$preciom, 0.75)
IQR <- Q3 - Q1
lower_limit <- Q1 - 1.5 * IQR
upper_limit <- Q3 + 1.5 * IQR


outliers <- which(data_casa$preciom < lower_limit | data_casa$preciom > upper_limit)


plot(data_casa$preciom~data_casa$areaconst, 
     xlab = "Área Construida", ylab = "Precio de la Vivienda", 
     main = "Relación entre Área Construida y Precio de Vivienda",
     col=c("seagreen"))


points(data_casa$areaconst[outliers], data_casa$preciom[outliers], col = "red", pch = 16)

La presencia de casos atípicos marcados en rojo podría deberse a la influencia de otras variables como el estrato socioeconómico, el número de habitaciones o el número de baños. Estos casos atípicos podrían ser el resultado de características únicas o inusuales en estas variables que están influyendo en el precio de la vivienda. Es importante considerar estas variables adicionales al interpretar los casos atípicos y comprender mejor su impacto en el precio de la vivienda

Precio por No. de baños de la vivienda

boxplot(data_casa$preciom~data_casa$banios,
main = "Distribución del precio y cantidad de baños",
ylab="Precio",
xlab = "No. Baños", las=1,
col=c("seagreen","royalblue","#ee964b","pink"))

Es evidente que a medida que aumenta el precio de una vivienda, también se observa un incremento en la cantidad de baños que posee. Esta relación podría estar directamente relacionada con el área construida de la vivienda. Es posible que a medida que el tamaño de la vivienda aumenta, también lo haga el número de baños, ya que las propiedades más grandes pueden acomodar más instalaciones y comodidades, incluyendo un mayor número de baños.

Precio por No. de habitaciones de la vivienda

boxplot(data_casa$preciom~data_casa$habitaciones,
main = "Distribución del precio y cantidad de habitaciones",
ylab="Precio",
xlab = "No. Habitaciones", las=1,
col=c("seagreen","royalblue","#ee964b","pink"))

Se observa que un incremento en el precio puede correlacionarse con un aumento en el número de habitaciones. No obstante, se aprecia que, después de alcanzar cuatro habitaciones, la media del número de habitaciones tiende a estabilizarse hasta llegar a diez habitaciones. Esto sugiere que, más allá de cuatro habitaciones, el número de estas no presenta una relación tan significativa con el incremento del precio.

Precio por Zona de la ciudad

boxplot(data_casa$preciom~data_casa$zona,
main = "Distribución del precio por zona",
ylab="Precio",
xlab = "Zona norte ", las=1,
col=c("seagreen","royalblue","#ee964b","pink"))

Se puede observar que en la zona norte de la ciudad de Cali se encuentran viviendas de diversos rangos de precios. Esto se refleja en la gráfica del estrato, donde se muestra que esta zona alberga viviendas de los estratos 3, 4, 5 y 6. Esto sugiere una amplia variedad de opciones de vivienda en términos de precio y estrato socioeconómico en la zona norte de la ciudad

Matriz de Correlación

#df_numericas <- data_casa[, sapply(data_casa, is.numeric)]
df_numericas <- data_casa[, c("preciom","areaconst","estrato", "banios", "habitaciones")]
matrix_c <- cor(df_numericas, use = "complete.obs")
corrplot(matrix_c, method = "circle", type = "lower", order = "hclust", tl.col = "black", tl.srt = 45)

corrplot(matrix_c, method = "color", addCoef.col = "orange")

Se puede observar que la mayor correlación que presenta el precio es con el área construida, alcanzando un valor de 0.73, seguido por el estrato socioeconómico con una correlación de 0.61. Por otro lado, se evidencia que no existe una correlación fuerte entre el precio y el número de habitaciones.

Modelo de regresión lineal múltiple

precio = f(área construida, estrato, número de cuartos, número de parqueaderos, número de baños )

Modelo

modelo <- lm(preciom ~  areaconst + estrato + habitaciones + parqueaderos + banios, data = data_casa)
residuos <- resid(modelo)
summary(modelo)

Call:
lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + 
    banios, data = data_casa)

Residuals:
    Min      1Q  Median      3Q     Max 
-784.29  -77.56  -16.03   47.67  978.61 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -238.17090   44.40551  -5.364 1.34e-07 ***
areaconst       0.67673    0.05281  12.814  < 2e-16 ***
estrato        80.63495    9.82632   8.206 2.70e-15 ***
habitaciones    7.64511    5.65873   1.351    0.177    
parqueaderos   24.00598    5.86889   4.090 5.14e-05 ***
banios         18.89938    7.48800   2.524    0.012 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 155.1 on 429 degrees of freedom
  (287 observations deleted due to missingness)
Multiple R-squared:  0.6041,    Adjusted R-squared:  0.5995 
F-statistic: 130.9 on 5 and 429 DF,  p-value: < 2.2e-16

Los coeficientes indican cómo cambia el precio de la vivienda en relación con cada una de las variables predictoras, manteniendo las demás variables constantes.

  • Para el intercepto, el coeficiente es -238.17090 con un error estándar de 44.40551 y un valor t de -5.364, lo que indica que es estadísticamente significativo.
  • Para la variable areaconst (área construida), el coeficiente es 0.67673 con un error estándar de 0.05281 y un valor t de 12.814, lo que indica una asociación significativa y positiva entre el área construida y el precio.
  • Para la variable estrato (estrato socioeconómico), el coeficiente es 80.63495 con un error estándar de 9.82632 y un valor t de 8.206, lo que indica una asociación significativa y positiva entre el estrato y el precio.
  • Para la variable habitaciones (número de habitaciones), el coeficiente es 7.64511 con un error estándar de 5.65873 y un valor t de 1.351, lo que indica que no es estadísticamente significativo a un nivel de significancia del 0.05.
  • Para la variable parqueaderos (número de parqueaderos), el coeficiente es 24.00598 con un error estándar de 5.86889 y un valor t de 4.090, lo que indica una asociación significativa y positiva entre el número de parqueaderos y el precio.
  • Para la variable banios (número de baños), el coeficiente es 18.89938 con un error estándar de 7.48800 y un valor t de 2.524, lo que indica una asociación significativa y positiva entre el número de baños y el precio.

R cuadrado

summary(modelo)$r.squared
[1] 0.6040956

el valor de R-cuadrado múltiple es 0.6040956, lo que significa que aproximadamente el 60.41% de la variabilidad en el precio de la vivienda puede ser explicada por las variables predictoras incluidas en el modelo.Sin embargo, aún queda un porcentaje considerable de la variabilidad del precio que no está explicada por las variables en el modelo.

Una forma que se podria considerar para mejorar el modelo es explorar la posibilidad de transformar las variables existentes para capturar mejor su relación con el precio de la vivienda, como tomar logaritmos o realizar otras transformaciones no lineales.

Supuestos del Modelo

Normalidad

shapiro.test(modelo$residuals) 

    Shapiro-Wilk normality test

data:  modelo$residuals
W = 0.85246, p-value < 2.2e-16

Teniendo cuenta que el P-value es menor a 0.05 se rechaza la hipotesis nula, por tanto indica que los errores NO están distribuidos normalmente.

los resultados de la prueba de Shapiro-Wilk sugieren que los residuos del modelo no siguen una distribución normal. Esto puede indicar que el modelo no captura completamente la estructura de los datos, y podría sugerir la necesidad de revisar el modelo y considerar ajustes adicionales.

Homoscedadticidad

lmtest::bptest(modelo)

    studentized Breusch-Pagan test

data:  modelo
BP = 80.281, df = 5, p-value = 7.33e-16

El supuesto de homocedasticidad da un p-value es menor a 0.05, lo que nos indica que se rechaza la hipotesis nula equivalente a varianza constante

los resultados de la prueba de Breusch-Pagan sugieren que hay heterocedasticidad en los residuos del modelo de regresión. La presencia de heterocedasticidad puede afectar la precisión de las estimaciones y los intervalos de confianza del modelo, y puede requerir ajustes adicionales.

No autorrelación

lmtest::dwtest(modelo) # No autocorrelación 

    Durbin-Watson test

data:  modelo
DW = 1.7615, p-value = 0.005472
alternative hypothesis: true autocorrelation is greater than 0

Como el valor de DW es 1.7615, lo que indica una posible autocorrelación positiva en los residuos del modelo.

El valor p es 0.005472, lo que sugiere que hay evidencia significativa de autocorrelación en los residuos del modelo.

Predicción con las caracteristicas solicitadas

Estrato 4

req1 <- data.frame(
  areaconst = 200,
  parqueaderos = 1,
  banios = 2,
  habitaciones = 4,
  estrato = 4)

predic <- predict(modelo, newdata = req1)
predic
      1 
312.101 

Dado que el precio promedio estimado de una casa con las características solicitadas por el cliente, ubicada en estrato 4, oscila alrededor de los 312 millones de pesos, y el crédito preaprobado del comprador es de 350 millones de pesos, en este escenario, buscar una vivienda en estrato 4 parece ser una buena opción para el comprador, ya que tiene la capacidad financiera para adquirirla y el precio estimado de la vivienda está dentro de su límite de crédito preaprobado.

Estrato 5

req2 <- data.frame(
  areaconst = 200,
  parqueaderos = 1,
  banios = 2,
  habitaciones = 4,
  estrato = 5)

predic2 <- predict(modelo, newdata = req2)
predic2
       1 
392.7359 

Dado que el precio promedio estimado de una casa con las características requeridas en la solicitud No. 1, ubicada en estrato 5, es en promedio de 392 millones de pesos, y el crédito preaprobado del comprador es de 350 millones de pesos, podemos evaluar si buscar una vivienda en estrato 5 sería una buena opción.

En este caso, el precio promedio estimado de la vivienda en estrato 5 supera el crédito preaprobado del comprador. Esto indica que la búsqueda de una vivienda en estrato 5 sería un poco más complicada si se desea que cumpla con todas las características solicitadas, ya que el precio estimado supera el límite de crédito disponible.

Ofertas potenciales

Cinco mejores ofertas

pre-aprobado de máximo 350 millones de pesos.

Tabla de las Cinco mejores ofertas
casa <- filter(data_casa, areaconst >= 200, parqueaderos >= 1, banios >= 2, habitaciones >= 4, estrato >= 4, preciom <= 350)

casa_ord <- arrange(casa, desc(areaconst))
casa_ord <-(head(casa_ord,5))

tabla2 <- (head(casa_ord,5))

tabla2 %>%
  kbl() %>%
  kable_paper("hover", 
              full_width = F)
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
3101 Zona Norte 02 5 340 355 2 5 8 Casa san vicente -76.52377 3.46384
5031 Zona Norte 03 4 350 350 1 4 5 Casa salomia -76.53464 3.44987
1943 Zona Norte NA 5 350 346 1 2 4 Casa vipasa -76.51847 3.47503
4209 Zona Norte 02 5 350 300 3 5 6 Casa el bosque -76.53010 3.48577
3352 Zona Norte NA 4 335 300 3 4 4 Casa el bosque -76.52600 3.43400

Dado que el cliente tiene un crédito pre-aprobado de 350 millones de pesos, y se prioriza la mayor área construida dentro de la zona norte de la ciudad y dentro de los estratos 4 y 5, asimismo como se observa en algunas ofertas mejora las condiciones de la vivienda como; parqueadero con mas de 1, habitaciones con mas de 4 y baños con mas de 2.

Con este enfoque se maximizará el valor de la inversión del cliente mejoran las condiciones de la vivienda con el mismo presupuesto.

Mapa de ofertas

mapa1 <- leaflet(data = casa_ord) %>%
  addTiles() %>%
  addMarkers(lng = ~longitud, lat = ~latitud, popup = ~zona)

mapa1

Caso 2: Viviendas Zona Sur de la Ciudad

Realice un filtro a la base de datos e incluya solo las ofertas de : base2: apartamentos de la zona sur de la ciudad.

data_apto <- subset(vivienda, tipo == 'Apartamento'& zona == "Zona Sur")

tabla3 <- (head(data_apto))

Tabla de apartamentos en la zona sur

tabla3 %>%
  kbl() %>%
  kable_paper("hover", 
              full_width = F)
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
5098 Zona Sur 05 4 290 96 1 2 3 Apartamento acopi -76.53464 3.44987
698 Zona Sur 02 3 78 40 1 1 2 Apartamento aguablanca -76.50100 3.40000
8199 Zona Sur NA 6 875 194 2 5 3 Apartamento aguacatal -76.55700 3.45900
1241 Zona Sur NA 3 135 117 NA 2 3 Apartamento alameda -76.51400 3.44100
5370 Zona Sur NA 3 135 78 NA 1 3 Apartamento alameda -76.53600 3.43600
6975 Zona Sur 06 4 220 75 1 2 3 Apartamento alférez real -76.54627 3.39109

Mapa de casas de la Zona sur de Ciudad de Cali

mapa2 <- leaflet(data = data_apto) %>%
  addTiles() %>%
  addMarkers(lng = ~longitud, lat = ~latitud, popup = ~zona)

mapa2

Existe algunos puntos que se alejan de la zona sur la ciudad de cali, por lo que se infiere que este fenomeno se presenta porque los puntos de latitud y longitud no fueron bien capturados en el momento de digitación o extración de la información, para una futura ocación se recomienda incluir la variable dirección dado que con la misma se podria tener una mayor aproximación a las variables longitud y laltitud.

Analisis exploratorio de variables

Precio por estrato

boxplot(data_apto$preciom~data_apto$estrato,
main = "Distribución del precio por Estrato",
ylab="Precio",
xlab = "Estrato", las=1,
col=c("seagreen","royalblue","#ee964b","pink"))

Considerando que el estrato socioeconómico se define como la clasificación de la población en grupos o estratos según su situación económica y social, donde se consideran factores como el nivel de ingresos, se puede observar que las viviendas con mayor valor tienden a encontrarse en los estratos 6, asimismo este estrato es el que contiene la mayor variedad de precio en la oferta de vivienda

Precio por area construida

plot(data_apto$preciom~data_apto$areaconst, 
     xlab = "Área Construida", 
     ylab = "Precio de la Vivienda", 
     main = "Relación entre Área Construida y Precio",
     col=c("seagreen"))

Se observa una relación directa entre el precio y el área construida. En la mayoría de los casos, a medida que el precio aumenta, también lo hace el área construida.

Q1_1 <- quantile(data_apto$preciom, 0.25)
Q3_1 <- quantile(data_apto$preciom, 0.75)
IQR <- Q3_1 - Q1_1
lower_limit1 <- Q1_1 - 1.5 * IQR
upper_limit1 <- Q3_1 + 1.5 * IQR


outliers1 <- which(data_apto$preciom < lower_limit1 | data_apto$preciom > upper_limit1)


plot(data_apto$preciom~data_apto$areaconst, 
     xlab = "Área Construida", ylab = "Precio de la Vivienda", 
     main = "Relación entre Área Construida y Precio de Vivienda",
     col=c("seagreen"))


points(data_apto$areaconst[outliers1], data_apto$preciom[outliers1], col = "red", pch = 16)

La presencia de casos atípicos marcados en rojo podría deberse a la influencia de otras variables como el estrato socioeconómico, el número de habitaciones o el número de baños. Estos casos atípicos podrían ser el resultado de características únicas o inusuales en estas variables que están influyendo en el precio de la vivienda. Es importante considerar estas variables adicionales al interpretar los casos atípicos y comprender mejor su impacto en el precio de la vivienda

Precio por No. de baños de la vivienda

boxplot(data_apto$preciom~data_apto$banios,
main = "Distribución del precio y cantidad de baños",
ylab="Precio",
xlab = "No. Baños", las=1,
col=c("seagreen","royalblue","#ee964b","pink"))

Es evidente que a medida que aumenta el precio de una vivienda, también se observa un incremento en la cantidad de baños que posee. Esta relación podría estar directamente relacionada con el área construida de la vivienda. Es posible que a medida que el tamaño de la vivienda aumenta, también lo haga el número de baños, ya que las propiedades más grandes pueden acomodar más instalaciones y comodidades, incluyendo un mayor número de baños.

Precio por No. de habitaciones de la vivienda

boxplot(data_apto$preciom~data_apto$habitaciones,
main = "Distribución del precio y cantidad de habitaciones",
ylab="Precio",
xlab = "No. habitaciones", las=1,
col=c("seagreen","royalblue","#ee964b","pink"))

Se observa que existe una correlación entre el precio y el número de habitaciones en las viviendas. Sin embargo, se puede notar que, hasta alcanzar tres habitaciones, el promedio de precios se mantiene constante. A partir de cuatro habitaciones y hasta seis habitaciones, se observa una variación en los precios.

Asimimos cabe resaltar que los apartamentos generalmente se construyen con tres habitaciones, lo que evidencia que los apartamentos con tres habitaciones son los que presentan una mayor variación en los precios, desde los más económicos hasta los más costosos.

Precio por Zona de la ciudad

boxplot(data_apto$preciom~data_apto$zona,
main = "Distribución del precio por zona",
ylab="Precio",
xlab = "Zona sur ", las=1,
col=c("royalblue","#ee964b","pink"))

Se puede observar que en la zona sur de la ciudad de Cali se encuentran viviendas de diversos rangos de precios. Esto sugiere una amplia variedad de opciones de vivienda en términos de precio y estrato socioeconómico en la zona sur de la ciudad

Matriz de Correlación

df_numericas1 <- data_apto[, c("preciom","areaconst","estrato", "banios", "habitaciones")]

matrix_c1 <- cor(df_numericas1, use = "complete.obs")

corrplot(matrix_c1, method = "circle", type = "lower", order = "hclust", tl.col = "black", tl.srt = 45)

corrplot(matrix_c1, method = "color", addCoef.col = "orange")

Se puede observar que la mayor correlación que presenta el precio es con el área construida, alcanzando un valor de 0.76, seguido por el numero de baños con una correlación de 0.72. Por otro lado, se evidencia que no existe una correlación fuerte entre el precio y el número de habitaciones.

Modelo de regresión lineal múltiple

precio = f(área construida, estrato, número de cuartos, número de parqueaderos, número de baños )

Modelo

modelo1 <- lm(preciom ~  areaconst + estrato + habitaciones + parqueaderos + banios, data = data_apto)
residuos1 <- resid(modelo1)
summary(modelo1)

Call:
lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + 
    banios, data = data_apto)

Residuals:
     Min       1Q   Median       3Q      Max 
-1092.02   -42.28    -1.33    40.58   926.56 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -261.62501   15.63220 -16.736  < 2e-16 ***
areaconst       1.28505    0.05403  23.785  < 2e-16 ***
estrato        60.89709    3.08408  19.746  < 2e-16 ***
habitaciones  -24.83693    3.89229  -6.381 2.11e-10 ***
parqueaderos   72.91468    3.95797  18.422  < 2e-16 ***
banios         50.69675    3.39637  14.927  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 98.02 on 2375 degrees of freedom
  (406 observations deleted due to missingness)
Multiple R-squared:  0.7485,    Adjusted R-squared:  0.748 
F-statistic:  1414 on 5 and 2375 DF,  p-value: < 2.2e-16

Los coeficientes indican cómo cambia el precio de la vivienda en relación con cada una de las variables predictoras, manteniendo las demás variables constantes.

Intercepto (Intercept): El valor estimado del intercepto es -261.62501, lo que significa que cuando todas las demás variables predictoras son cero, el precio estimado de la vivienda es de -261.62501 unidades monetarias.Este valor es estadísticamente significativo con un valor de p (< 2e-16)

Área construida (areaconst): El coeficiente estimado para el área construida es 1.28505. Esto significa que, manteniendo todas las demás variables constantes, se espera que el precio de la vivienda aumente en 1.28505 unidades monetarias por cada unidad adicional de área construida. Este coeficiente es significativo con un valor de p (p < 2e-16).

Estrato (estrato): El coeficiente estimado para el estrato es 60.89709. Esto indica que, manteniendo todas las demás variables constantes, se espera que el precio de la vivienda aumente en 60.89709 unidades monetarias cuando se pasa de un estrato a otro. Este coeficiente es significativo con un valor de p (p < 2e-16).

Número de habitaciones (habitaciones): El coeficiente estimado para el número de habitaciones es -24.83693. Esto significa que, manteniendo todas las demás variables constantes, se espera que el precio de la vivienda disminuya en 24.83693 unidades monetarias por cada habitación adicional. Este coeficiente es significativo con un valor de p (p < 2e-16).

Número de parqueaderos (parqueaderos): El coeficiente estimado para el número de parqueaderos es 72.91468. Esto indica que, manteniendo todas las demás variables constantes, se espera que el precio de la vivienda aumente en 72.91468 unidades monetarias por cada parqueadero adicional.Este coeficiente es significativo con un valor de p (p < 2e-16).

Número de baños (banios): El coeficiente estimado para el número de baños es 50.69675. Esto significa que, manteniendo todas las demás variables constantes, se espera que el precio de la vivienda aumente en 50.69675 unidades monetarias por cada baño adicional.Este coeficiente es significativo con un valor de p (p < 2e-16).

R cuadrado

summary(modelo1)$r.squared
[1] 0.7485178

Un R cuadrado de 0.7485178 es bastante alto y sugiere que el modelo es bastante eficaz para explicar la variabilidad en el precio de la vivienda. Sin embargo, siempre es importante tener en cuenta que hay otros factores que pueden influir en el precio de la vivienda y que no están incluidos en el modelo.

Supuestos del Modelo

Normalidad

shapiro.test(modelo1$residuals) 

    Shapiro-Wilk normality test

data:  modelo1$residuals
W = 0.79118, p-value < 2.2e-16

Teniendo cuenta que el P-value es menor a 0.05 se rechaza la hipotesis nula, por tanto indica que los errores NO están distribuidos normalmente.

los resultados de la prueba de Shapiro-Wilk sugieren que los residuos del modelo no siguen una distribución normal. Esto puede indicar que el modelo no captura completamente la estructura de los datos, y podría sugerir la necesidad de revisar el modelo y considerar ajustes adicionales.

homocedasticidad

lmtest::bptest(modelo1)

    studentized Breusch-Pagan test

data:  modelo1
BP = 754.81, df = 5, p-value < 2.2e-16

El supuesto de homocedasticidad da un p-value es menor a 0.05, lo que nos indica que se rechaza la hipotesis nula equivalente a varianza constante

los resultados de la prueba de Breusch-Pagan sugieren que hay heterocedasticidad en los residuos del modelo de regresión. La presencia de heterocedasticidad puede afectar la precisión de las estimaciones y los intervalos de confianza del modelo, y puede requerir ajustes adicionales.

No autorrelación

lmtest::dwtest(modelo1) # No autocorrelación 

    Durbin-Watson test

data:  modelo1
DW = 1.5333, p-value < 2.2e-16
alternative hypothesis: true autocorrelation is greater than 0

Como el valor de DW es 1.5333, lo que indica una posible autocorrelación positiva en los residuos del modelo.

El valor p es 2.2e-16, lo que sugiere que hay evidencia significativa de autocorrelación en los residuos del modelo.

Predicción con las caracteristicas solicitadas

Estrato 5

req1_1 <- data.frame(
  areaconst = 300,
  parqueaderos = 3,
  banios = 3,
  habitaciones = 5,
  estrato = 5)

predic1 <- predict(modelo1, newdata = req1_1)
predic1
       1 
675.0247 

Dado que el precio promedio estimado de un apartamento con las características solicitadas por el cliente, ubicada en estrato 5, oscila alrededor de los 675 millones de pesos, y el crédito preaprobado del comprador es de 850 millones de pesos, en este escenario, buscar una vivienda en estrato 5 parece ser una buena opción para el comprador, ya que tiene la capacidad financiera para adquirirla y el precio estimado de la vivienda está dentro de su límite de crédito preaprobado.

Estrato 6

req2_1 <- data.frame(
  areaconst = 300,
  parqueaderos = 3,
  banios = 3,
  habitaciones = 5,
  estrato = 6)

predic2_1 <- predict(modelo1, newdata = req2_1)
predic2_1
       1 
735.9218 

Dado que el precio promedio estimado de un apartamento con las características requeridas en la solicitud No. 2, ubicada en estrato 6, es en promedio de 735 millones de pesos, y el crédito preaprobado del comprador es de 850 millones de pesos, podemos evaluar si buscar una vivienda en estrato 6 sería una buena opción.

En este caso, el precio promedio estimado de la vivienda en estrato 6 esta dentro de los limites el crédito preaprobado del comprador. Esto indica que la búsqueda de una vivienda en estrato 6 sería una mejor opción para el cliente si se considera que estos inmuebles tienen una categoria mas alta.

Ofertas potenciales

Cinco mejores ofertas

pre-aprobado de máximo 850 millones de pesos.

Tabla de las Cinco mejores ofertas
#apto <- filter(data_apto, areaconst >= 300, parqueaderos >= 3, banios >= 3, habitaciones >= 5, estrato >= 6, preciom <= 850)

apto <- filter(data_apto, preciom <= 850,estrato >= 5,parqueaderos >= 3,habitaciones >= 5)
apto_ord <- arrange(apto, desc(areaconst))
apto_ord <-(head(apto_ord,7))

tabla4 <- (head(apto_ord,7))

tabla4 %>%
  kbl() %>%
  kable_paper("hover", 
              full_width = F)
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
7182 Zona Sur NA 5 730 573 3 8 5 Apartamento guadalupe -76.54800 3.40800
7512 Zona Sur NA 5 670 300 3 5 6 Apartamento seminario -76.55000 3.40900
8036 Zona Sur NA 5 530 256 3 5 5 Apartamento seminario -76.55408 3.40748

En la oferta actual que tiene la inmobiliaria solo existe tres apartamentos que cumplan con todos los requerimientos del cliente, los cuales se encuentra en el estrato 5. si el cliente esta dispuesto a renunciar a la caracteristica de 5 habitaciones por un menor numero podria encontrar una mayor oferta.

No obstante, la oferta actual cumple con los requerimientos establecidos por el cliente por lo que en general estaria accediendo a un predio con las caracteristicas solicitadas por un valor menor a preaprobado del prestamo.

Mapa de ofertas

mapa3 <- leaflet(data = apto_ord) %>%
  addTiles() %>%
  addMarkers(lng = ~longitud, lat = ~latitud, popup = ~zona)

mapa3