Maria comenzó como agente de bienes raíces en Cali hace 10 años. Después de laborar dos años para una empresa nacional, se traslado a Bogotá y trabajó para otra agencia de bienes raíces. Sus amigos y familiares la convencieron de que con su experiencia y conocimientos del negocio debía abrir su propia agencia. Terminó por adquirir la licencia de intermediario y al poco tiempo fundó su propia compañía, C&A (Casas y Apartamentos) en Cali. Santiago y Lina, dos vendedores de la empresa anterior aceptaron trabajar en la nueva compaña. En la actualidad ocho agentes de bienes raíces colaboran con ella en C&A.
Actualmente las ventas de bienes raíces en Cali se han visto disminuidas de manera significativa en lo corrido del año. Durante este periodo muchas instituciones bancarias de ahorro y vivienda están prestando grandes sumas de dinero para la industria y la construcción comercial y residencial. Cuando el efecto producto de las tensiones políticas y sociales disminuya, se espera que la actividad económica de este sector se reactive.
Hace dos días, María recibió una carta solicitando asesoría para la compra de dos viviendas por parte de una compañía internacional que desea ubicar a dos de sus empleados con sus familias en la ciudad. Las solicitudes incluyen las siguientes condiciones:
| Características | Vivienda 1 | Vivienda 2 |
|---|---|---|
| Tipo | Casa | Apartamento |
| área construida | 200 | 300 |
| parqueaderos | 1 | 3 |
| baños | 2 | 3 |
| habitaciones | 4 | 5 |
| estrato | 4 o 5 | 5 o 6 |
| zona | Norte | Sur |
| crédito preaprobado | 350 millones | 850 millones |
Ayude a María a responder la solicitud, mediante técnicas modelación que usted conoce. Ella requiere le envíe un informe ejecutivo donde analice los dos casos y sus recomendaciones (Informe). Como soporte del informe debe anexar las estimaciones, validaciones y comparación de modelos requeridos (Anexos) .
| Columnas | Filas |
|---|---|
| 13 | 8322 |
| variable | class | first_values |
|---|---|---|
| id | double | 1147, 1169, 1350, 5992, 1212, 1724 |
| zona | character | Zona Oriente, Zona Oriente, Zona Oriente, Zona Sur, Zona Norte, Zona Norte |
| piso | character | NA, NA, NA, 02, 01, 01 |
| estrato | double | 3, 3, 3, 4, 5, 5 |
| preciom | double | 250, 320, 350, 400, 260, 240 |
| areaconst | double | 70, 120, 220, 280, 90, 87 |
| parqueaderos | double | 1, 1, 2, 3, 1, 1 |
| banios | double | 3, 2, 2, 5, 2, 3 |
| habitaciones | double | 6, 3, 4, 3, 3, 3 |
| tipo | character | Casa, Casa, Casa, Casa, Apartamento, Apartamento |
| barrio | character | 20 de julio, 20 de julio, 20 de julio, 3 de julio, acopi, acopi |
| longitud | double | -76.51168, -76.51237, -76.51537, -76.54, -76.5135, -76.517 |
| latitud | double | 3.43382, 3.43369, 3.43566, 3.435, 3.45891, 3.36971 |
Hemos identificado la presencia de 9 variables de tipo numérico y 4 de tipo caracter en nuestros datos.
| NAs | |
|---|---|
| id | 3 |
| zona | 3 |
| piso | 2638 |
| estrato | 3 |
| preciom | 2 |
| areaconst | 3 |
| parqueaderos | 1605 |
| banios | 3 |
| habitaciones | 3 |
| tipo | 3 |
| barrio | 3 |
| longitud | 3 |
| latitud | 3 |
Observando el planteamiento del problema, notamos que el piso no es una variable relevante a tener en cuenta y es la que contiene más valores NA. Por lo tanto, procedemos a eliminarla y, a continuación, eliminamos las filas que contienen NAs en sus registros.
| Columnas | Filas |
|---|---|
| 12 | 6717 |
| variable | class | first_values |
|---|---|---|
| id | double | 1147, 1169, 1350, 5992, 1212, 1724 |
| zona | character | Zona Oriente, Zona Oriente, Zona Oriente, Zona Sur, Zona Norte, Zona Norte |
| estrato | double | 3, 3, 3, 4, 5, 5 |
| preciom | double | 250, 320, 350, 400, 260, 240 |
| areaconst | double | 70, 120, 220, 280, 90, 87 |
| parqueaderos | double | 1, 1, 2, 3, 1, 1 |
| banios | double | 3, 2, 2, 5, 2, 3 |
| habitaciones | double | 6, 3, 4, 3, 3, 3 |
| tipo | character | Casa, Casa, Casa, Casa, Apartamento, Apartamento |
| barrio | character | 20 de julio, 20 de julio, 20 de julio, 3 de julio, acopi, acopi |
| longitud | double | -76.51168, -76.51237, -76.51537, -76.54, -76.5135, -76.517 |
| latitud | double | 3.43382, 3.43369, 3.43566, 3.435, 3.45891, 3.36971 |
## id zona estrato preciom
## Min. : 1 Length:6717 Min. :3.00 Min. : 58.0
## 1st Qu.:2474 Class :character 1st Qu.:4.00 1st Qu.: 248.0
## Median :4474 Mode :character Median :5.00 Median : 355.0
## Mean :4413 Mean :4.83 Mean : 468.9
## 3rd Qu.:6428 3rd Qu.:6.00 3rd Qu.: 580.0
## Max. :8319 Max. :6.00 Max. :1999.0
## areaconst parqueaderos banios habitaciones
## Min. : 30.0 Min. : 1.000 Min. : 0.000 Min. : 0.000
## 1st Qu.: 86.0 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 3.000
## Median : 130.0 Median : 2.000 Median : 3.000 Median : 3.000
## Mean : 181.1 Mean : 1.835 Mean : 3.255 Mean : 3.611
## 3rd Qu.: 233.0 3rd Qu.: 2.000 3rd Qu.: 4.000 3rd Qu.: 4.000
## Max. :1745.0 Max. :10.000 Max. :10.000 Max. :10.000
## tipo barrio longitud latitud
## Length:6717 Length:6717 Min. :-76.59 Min. :3.333
## Class :character Class :character 1st Qu.:-76.54 1st Qu.:3.379
## Mode :character Mode :character Median :-76.53 Median :3.412
## Mean :-76.53 Mean :3.415
## 3rd Qu.:-76.52 3rd Qu.:3.451
## Max. :-76.46 Max. :3.498
Evidenciamos una inconsistencia en los valores de baños y habitaciones, ya que contienen valores de 0, lo cual no es posible para una vivienda y podría conducir a errores en el modelo. Por lo tanto, procedemos a eliminar esos registros.
## id zona estrato preciom
## Min. : 1 Length:6688 Min. :3.000 Min. : 58.0
## 1st Qu.:2473 Class :character 1st Qu.:4.000 1st Qu.: 245.0
## Median :4474 Mode :character Median :5.000 Median : 355.0
## Mean :4414 Mean :4.831 Mean : 468.6
## 3rd Qu.:6428 3rd Qu.:6.000 3rd Qu.: 580.0
## Max. :8319 Max. :6.000 Max. :1999.0
## areaconst parqueaderos banios habitaciones
## Min. : 30.0 Min. : 1.000 Min. : 1.000 Min. : 1.000
## 1st Qu.: 86.0 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 3.000
## Median : 130.0 Median : 2.000 Median : 3.000 Median : 3.000
## Mean : 180.9 Mean : 1.834 Mean : 3.264 Mean : 3.622
## 3rd Qu.: 232.0 3rd Qu.: 2.000 3rd Qu.: 4.000 3rd Qu.: 4.000
## Max. :1745.0 Max. :10.000 Max. :10.000 Max. :10.000
## tipo barrio longitud latitud
## Length:6688 Length:6688 Min. :-76.59 Min. :3.333
## Class :character Class :character 1st Qu.:-76.54 1st Qu.:3.379
## Mode :character Mode :character Median :-76.53 Median :3.412
## Mean :-76.53 Mean :3.415
## 3rd Qu.:-76.52 3rd Qu.:3.451
## Max. :-76.46 Max. :3.498
Realice un filtro a la base de datos e incluya solo las ofertas de : base1: casas, de la zona norte de la ciudad. Presente los primeros 3 registros de las bases y algunas tablas que comprueben la consulta. (Adicional un mapa con los puntos de las bases. Discutir si todos los puntos se ubican en la zona correspondiente o se presentan valores en otras zonas, por que?).
Después de realizar el filtro para seleccionar las casas ubicadas en el norte de Cali, procederemos a crear un gráfico que muestre su ubicación. Para ello, descargamos de la Alcaldía de Cali una capa de delimitación de la ciudad de Cali con su zona sur y norte, lo que nos proporcionará una mejor visibilidad de la ubicación de las casas con respecto a la ciudad.
La visualización de los datos revela que no todos los puntos se encuentran en la zona correspondiente. Esto es evidente en el mapa de las casas, donde se observa que algunas viviendas están ubicadas en la zona central y sur, pero se les asigna la ubicación de la zona norte. Esto sugiere que la base de datos no está geolocalizada con precisión.
Realice un análisis exploratorio de datos enfocado en la correlación entre la variable respuesta (precio de la casa) en función del área construida, estrato, numero de baños, numero de habitaciones y zona donde se ubica la vivienda. Use gráficos interactivos con el paquete plotly e interprete los resultados.
El precio de las casas está correlacionado positivamente con el área construida, el estrato, el número de baños y el número de habitaciones. El área construida está correlacionada positivamente con el precio, con una correlación de 0.68. Esto significa que, en general, las viviendas con un área construida mayor tienen un precio más alto. El estrato está correlacionado positivamente con el precio, con una correlación de 0.52. Esto significa que, en general, las viviendas ubicadas en zonas de mayor estrato tienen un precio más alto. El número de baños está correlacionado positivamente con el precio, con una correlación de 0.53. Esto significa que, en general, las viviendas con más baños tienen un precio más alto. El número de habitaciones está correlacionado positivamente con el precio, con una correlación de 0.36. Esto significa que, en general, las viviendas con más habitaciones tienen un precio más alto.
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 deben 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 + parqueaderos + banios +
## habitaciones, data = casasNorth)
##
## Residuals:
## Min 1Q Median 3Q Max
## -765.19 -77.49 -15.62 46.41 979.13
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -231.5727 45.1306 -5.131 4.39e-07 ***
## areaconst 0.6646 0.0533 12.470 < 2e-16 ***
## estrato 78.3545 9.9538 7.872 2.94e-14 ***
## parqueaderos 24.2743 5.9052 4.111 4.74e-05 ***
## banios 22.4145 7.8308 2.862 0.00441 **
## habitaciones 6.0679 5.8640 1.035 0.30136
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 155 on 425 degrees of freedom
## Multiple R-squared: 0.6022, Adjusted R-squared: 0.5975
## F-statistic: 128.7 on 5 and 425 DF, p-value: < 2.2e-16
Al analizar los valores de significancia de cada uno de los coeficientes, notamos que todos son menores a 0.05, excepto el coeficiente de la variable ‘habitaciones’. Además, observamos que el valor del R^2 ajustado es de 0.5975, lo que sugiere una explicación del modelo baja. Es posible que haya un problema con la variable ‘habitaciones’ y que no esté contribuyendo de manera significativa al modelo.
El intercepto es -231.5727. Esto significa que cuando todas las demás variables son iguales a cero, el precio estimado de una casa sería de aproximadamente -$231,573. Sin embargo, en el contexto de los datos, este valor no tiene una interpretación realista porque no tiene sentido un precio negativo para una casa.
Área construida (areaconst): El coeficiente para el área construida es 0.6646. Esto indica que, manteniendo todas las demás variables constantes, un aumento de una unidad en el área construida se asocia con un aumento de aproximadamente $0.6646 en el precio de la casa. Esto tiene sentido, ya que es lógico que una casa más grande tienda a tener un precio más alto.
Estrato (estrato): El coeficiente para el estrato es 78.3545. Esto sugiere que, manteniendo todas las demás variables constantes, un aumento de una unidad en el estrato se asocia con un aumento de aproximadamente $78.35 en el precio de la casa. Esto también es lógico, ya que generalmente los estratos más altos tienden a tener propiedades más caras.
Número de parqueaderos (parqueaderos): El coeficiente para el número de parqueaderos es 24.2743. Esto significa que, manteniendo todas las demás variables constantes, un parqueadero adicional se asocia con un aumento de aproximadamente $24.27 en el precio de la casa. Esto tiene sentido, ya que un mayor número de parqueaderos puede ser una característica atractiva para los compradores.
Número de baños (banios): El coeficiente para el número de baños es 22.4145. Esto sugiere que, manteniendo todas las demás variables constantes, un baño adicional se asocia con un aumento de aproximadamente $22.41 en el precio de la casa. Esto también tiene sentido, ya que los baños adicionales suelen agregar comodidad y valor a una propiedad.
Número de habitaciones (habitaciones): El coeficiente para el número de habitaciones es 6.0679. Sin embargo, este coeficiente no es estadísticamente significativo (p-value = 0.30136), lo que significa que no podemos afirmar con confianza que el número de habitaciones tenga un efecto significativo en el precio de la casa en este modelo.
Es necesario explorar transformaciones de las variables existentes y considerar la estimación gradual del modelo para mejorar la explicación proporcionada por las variables predictoras.
Realice la validación de supuestos del modelo e interprete los resultados (no es necesario corregir en caso de presentar problemas, solo realizar sugerencias de que se podría hacer):
Verificamos la linealidad de las variables independientes con respecto a las predicciones mediante un gráfico de residuos parciales y un test de linealidad mediante la biblioteca gvlma:
## `geom_smooth()` using formula = 'y ~ x'
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + parqueaderos + banios +
## habitaciones, data = casasNorth)
##
## Coefficients:
## (Intercept) areaconst estrato parqueaderos banios
## -231.5727 0.6646 78.3545 24.2743 22.4145
## habitaciones
## 6.0679
##
##
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance = 0.05
##
## Call:
## gvlma(x = modelo1)
##
## Value p-value Decision
## Global Stat 1910.632 0.000e+00 Assumptions NOT satisfied!
## Skewness 178.555 0.000e+00 Assumptions NOT satisfied!
## Kurtosis 1712.585 0.000e+00 Assumptions NOT satisfied!
## Link Function 0.386 5.344e-01 Assumptions acceptable.
## Heteroscedasticity 19.106 1.237e-05 Assumptions NOT satisfied!
Global Stat: Este resultado muestra el estadístico global de la prueba. En este caso, el valor del estadístico global es 1910.63, y el valor p asociado es 0. Esto indica que el modelo de regresión lineal no cumple con algunas de las suposiciones fundamentales. En otras palabras, al menos una de las suposiciones se ha violado.
Skewness: El resultado relacionado con la asimetría (skewness) tiene un valor de 178.56 con un valor p de 0. Esto sugiere que la suposición de que los residuos siguen una distribución normal está fuertemente violada. Los residuos no siguen una distribución simétrica.
Kurtosis: El resultado relacionado con la curtosis (kurtosis) tiene un valor de 1712.58 con un valor p de 0. Esto indica que la suposición de que los residuos tienen una distribución con una curtosis normal está fuertemente violada. Los residuos tienen una curtosis significativamente diferente de la curtosis normal.
Link Function: El resultado relacionado con la función de enlace (link function) tiene un valor de 0.386 con un valor p de 0.534. Este resultado indica que la suposición relacionada con la función de enlace es aceptable. La función de enlace se refiere a la relación funcional entre las variables predictoras y la variable de respuesta.
Heteroscedasticity: El resultado relacionado con la heterocedasticidad (heteroscedasticity) tiene un valor de 19.11 con un valor p de 0.0000124. Esto indica que la suposición de homocedasticidad, que asume una varianza constante de los residuos a lo largo del rango de predicciones, se ha violado significativamente. Los residuos tienen una varianza que cambia a medida que aumentan las predicciones.
Realizamos la Prueba de Breusch-Pagan para evaluar la homocedasticidad:
## `geom_smooth()` using formula = 'y ~ x'
##
## studentized Breusch-Pagan test
##
## data: modelo1
## BP = 78.183, df = 5, p-value = 2.013e-15
Dado que el valor p es muy bajo, podemos concluir que el modelo de regresión lineal tiene una violación significativa del supuesto de homocedasticidad. Esto significa que la varianza de los residuos no es constante a lo largo de todo el rango de predicciones.
Comprobamos la normalidad de los residuos utilizando un gráfico Q-Q (Quantile-Quantile) y realizamos la prueba de normalidad de Shapiro-Wilk:
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.84982, p-value < 2.2e-16
Dado que el valor p es extremadamente bajo, podemos concluir que los residuos no siguen una distribución normal. Esto significa que la suposición de normalidad de los residuos en el modelo de regresión lineal se ha violado significativamente.
Se realiza un gráfico de residuos frente a las observaciones y una Prueba de Autocorrelación de Durbin-Watson:
##
## Durbin-Watson test
##
## data: modelo1
## DW = 1.7442, p-value = 0.003318
## alternative hypothesis: true autocorrelation is greater than 0
Dado que el valor p es menor a 0.05, podemos concluir que hay evidencia de autocorrelación en los residuos del modelo de regresión lineal. Esto sugiere que los residuos no son independientes y que hay algún patrón de correlación serial presente en los datos.
Realizaremos transformaciones y seleccionaremos el mejor modelo utilizando el Criterio de Información de Akaike (AIC):
##
## Call:
## lm(formula = log(preciom) ~ log(areaconst) + estrato + parqueaderos +
## banios + habitaciones, data = casasNorth)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.81378 -0.15309 -0.01065 0.13267 1.01934
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.661297 0.128037 20.785 < 2e-16 ***
## log(areaconst) 0.412361 0.028141 14.653 < 2e-16 ***
## estrato 0.178182 0.016495 10.802 < 2e-16 ***
## parqueaderos 0.040969 0.009461 4.330 1.86e-05 ***
## banios 0.044599 0.012508 3.566 0.000404 ***
## habitaciones 0.013821 0.009334 1.481 0.139434
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2472 on 425 degrees of freedom
## Multiple R-squared: 0.7244, Adjusted R-squared: 0.7212
## F-statistic: 223.4 on 5 and 425 DF, p-value: < 2.2e-16
## Start: AIC=-1198.68
## log(preciom) ~ log(areaconst) + estrato + parqueaderos + banios +
## habitaciones
##
## Df Sum of Sq RSS AIC
## <none> 25.974 -1198.7
## - habitaciones 1 0.1340 26.108 -1198.5
## - banios 1 0.7770 26.751 -1188.0
## - parqueaderos 1 1.1460 27.120 -1182.1
## - estrato 1 7.1313 33.106 -1096.1
## - log(areaconst) 1 13.1230 39.097 -1024.4
##
## Call:
## lm(formula = log(preciom) ~ log(areaconst) + estrato + parqueaderos +
## banios + habitaciones, data = casasNorth)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.81378 -0.15309 -0.01065 0.13267 1.01934
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.661297 0.128037 20.785 < 2e-16 ***
## log(areaconst) 0.412361 0.028141 14.653 < 2e-16 ***
## estrato 0.178182 0.016495 10.802 < 2e-16 ***
## parqueaderos 0.040969 0.009461 4.330 1.86e-05 ***
## banios 0.044599 0.012508 3.566 0.000404 ***
## habitaciones 0.013821 0.009334 1.481 0.139434
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2472 on 425 degrees of freedom
## Multiple R-squared: 0.7244, Adjusted R-squared: 0.7212
## F-statistic: 223.4 on 5 and 425 DF, p-value: < 2.2e-16
Como se puede apreciar en los resultados, el mejor modelo, con un R^2 de 0.72, se obtiene mediante una transformación logarítmica de la variable dependiente (presiom) y de la variable predictiva ‘areaconstruida’. Ahora procederemos a evaluar los supuestos:
##
## Call:
## lm(formula = log(preciom) ~ log(areaconst) + estrato + parqueaderos +
## banios + habitaciones, data = casasNorth)
##
## Coefficients:
## (Intercept) log(areaconst) estrato parqueaderos banios
## 2.66130 0.41236 0.17818 0.04097 0.04460
## habitaciones
## 0.01382
##
##
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance = 0.05
##
## Call:
## gvlma(x = modelo2)
##
## Value p-value Decision
## Global Stat 16.90294 0.0020187 Assumptions NOT satisfied!
## Skewness 5.28611 0.0214962 Assumptions NOT satisfied!
## Kurtosis 11.54972 0.0006776 Assumptions NOT satisfied!
## Link Function 0.00343 0.9533007 Assumptions acceptable.
## Heteroscedasticity 0.06368 0.8007770 Assumptions acceptable.
Observamos que, aunque este modelo no cumple con todos los supuestos, a diferencia del anterior, satisface el supuesto de homocedasticidad, lo que lo hace un poco mejor. Ahora procederemos a realizar las predicciones con este modelo.
Con el modelo identificado debe predecir el precio de la vivienda con las características de la primera solicitud.
solicitud1 <- data.frame(
areaconst = 200, # Área construida
estrato = 4, # Estrato
parqueaderos = 1, # Número de parqueaderos
banios = 2, # Número de baños
habitaciones = 4 # Número de habitaciones
)
solicitud2 <- data.frame(
areaconst = 200, # Área construida
estrato = 5, # Estrato
parqueaderos = 1, # Número de parqueaderos
banios = 2, # Número de baños
habitaciones = 4 # Número de habitaciones
)
prediccion_precio1 <- predict(Modselec, newdata = solicitud1)
cat("Precio estimado de la vivienda para la primera solicitud con estrato 4:", exp(prediccion_precio1), "\n")## Precio estimado de la vivienda para la primera solicitud con estrato 4: 312.4043
prediccion_precio2 <- predict(Modselec, newdata = solicitud2)
cat('Precio estimado de la vivienda para la primera solicitud con estrato 5:',exp(prediccion_precio2) )## Precio estimado de la vivienda para la primera solicitud con estrato 5: 373.3366
Con las predicciones del modelo sugiera potenciales ofertas que responda a la solicitud de la vivienda 1. Tenga encuentra que la empresa tiene crédito pre-aprobado de máximo 350 millones de pesos. Realice un análisis y presente en un mapa al menos 5 ofertas potenciales que debe discutir.
Precisamos los precios de las viviendas utilizando el modelo y luego filtramos las viviendas según el precio predicho, seleccionando las 5 viviendas más al norte de la ciudad.
Dado que el modelo no cumplió de manera sólida con los supuestos, se recomienda explorar otros modelos que puedan proporcionar una mejor explicación de los datos. A continuación, presentamos las casas que pueden ofrecerse al cliente:
Realice un filtro a la base de datos e incluya solo las ofertas de apartamentos, de la zona sur de la ciudad. Presente los primeros 3 registros de las bases y algunas tablas que comprueben la consulta. (Adicional un mapa con los puntos de las bases. Discutir si todos los puntos se ubican en la zona correspondiente o se presentan valores en otras zonas, por que?).
Después de realizar el filtro para seleccionar los apartamentos ubicados en el sur de Cali, procederemos a crear un gráfico que muestre su ubicación. Para ello, se descargó de la Alcaldía de Cali una capa de delimitación de la ciudad de Cali, lo que nos proporcionará una mejor visibilidad de la ubicación de las casas con respecto a la ciudad.
La visualización de los datos revela que no todos los puntos se encuentran en la zona correspondiente. Esto es evidente en el mapa de las casas, donde se observa que algunas viviendas están ubicadas en la zona central y Norte, pero se les asigna la ubicación de la zona Sur. Esto sugiere que la base de datos no está geolocalizada con precisión.
Realice un análisis exploratorio de datos enfocado en la correlación entre la variable respuesta (precio de la casa) en función del área construida, estrato, numero de baños, numero de habitaciones y zona donde se ubica la vivienda. Use gráficos interactivos con el paquete plotly e interprete los resultados.
El precio de las casas está correlacionado positivamente con el área construida, el estrato, el número de baños y el número de habitaciones. El área construida está correlacionada positivamente con el precio, con una correlación de 0.74. Esto significa que, en general, las viviendas con un área construida mayor tienen un precio más alto. El estrato está correlacionado positivamente con el precio, con una correlación de 0.65. Esto significa que, en general, las viviendas ubicadas en zonas de mayor estrato tienen un precio más alto. El número de baños está correlacionado positivamente con el precio, con una correlación de 0.72. Esto significa que, en general, las viviendas con más baños tienen un precio más alto. El número de habitaciones está correlacionado positivamente con el precio, con una correlación de 0.31. Esto significa que, en general, las viviendas con más habitaciones tienen un precio más alto.
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 deben 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 + parqueaderos + banios +
## habitaciones, data = aptsSouth)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1095.63 -42.49 -1.25 40.97 922.58
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -255.85169 15.95956 -16.031 < 2e-16 ***
## areaconst 1.29109 0.05415 23.842 < 2e-16 ***
## estrato 60.27082 3.09689 19.462 < 2e-16 ***
## parqueaderos 75.72992 4.19324 18.060 < 2e-16 ***
## banios 49.94971 3.46080 14.433 < 2e-16 ***
## habitaciones -26.58471 4.03631 -6.586 5.53e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 98.02 on 2369 degrees of freedom
## Multiple R-squared: 0.7477, Adjusted R-squared: 0.7471
## F-statistic: 1404 on 5 and 2369 DF, p-value: < 2.2e-16
Al analizar los valores de significancia de cada uno de los coeficientes, notamos que todos son menores a 0.05. Además, observamos que el valor del R^2 ajustado es de 0.7471, lo que sugiere una explicación del modelo buena.
El intercepto es -255.85. Esto significa que, en ausencia de todas las demás variables (área construida, estrato, número de cuartos, número de parqueaderos y número de baños), se espera que el precio base de una vivienda sea de -255.85.
El coeficiente para el área construida es positivo (1.29109), lo que indica que, manteniendo todas las demás variables constantes, un aumento de una unidad en el área construida está asociado con un aumento de aproximadamente 1.29 unidades en el precio de la vivienda. Esto es lógico, ya que es de esperar que las viviendas más grandes sean más caras.
El coeficiente para el estrato es positivo (60.27082), lo que sugiere que, manteniendo todas las demás variables constantes, un aumento en una unidad en el estrato está asociado con un aumento de aproximadamente 60.27 unidades en el precio de la vivienda. Esto indica que las viviendas en estratos más altos tienden a ser más caras.
El coeficiente para el número de parqueaderos es positivo (75.72992), lo que significa que, manteniendo todas las demás variables constantes, un aumento de una unidad en el número de parqueaderos está asociado con un aumento de aproximadamente 75.73 unidades en el precio de la vivienda. Esto tiene sentido, ya que las viviendas con más parqueaderos suelen ser más caras.
El coeficiente para el número de baños es positivo (49.94971), lo que indica que, manteniendo todas las demás variables constantes, un aumento de una unidad en el número de baños está asociado con un aumento de aproximadamente 49.95 unidades en el precio de la vivienda. Esto también es lógico, ya que las viviendas con más baños suelen ser más caras.
El coeficiente para el número de habitaciones es negativo (-26.58471). Esto significa que, manteniendo todas las demás variables constantes, un aumento de una unidad en el número de habitaciones está asociado con una disminución de aproximadamente 26.58 unidades en el precio de la vivienda. Esto puede ser un poco contraintuitivo, ya que podríamos esperar que las viviendas con más habitaciones sean más caras.
El coeficiente de determinación R^2 es 0.7477. Esto significa que aproximadamente el 74.77% de la variabilidad en el precio de las viviendas se explica por las variables incluidas en el modelo. Es un valor relativamente alto, lo que sugiere que el modelo tiene un buen ajuste a los datos.
En general, el modelo parece ser bueno en términos estadísticos, pero es importante investigar más a fondo la interpretación del coeficiente de las habitaciones, ya que su relación es contraintuitiva. También puedes considerar la posibilidad de incluir interacciones entre las variables o explorar otras transformaciones de las variables para mejorar aún más el modelo.
Verificamos la linealidad y los demás supuestos mediante las pruebas implementadas en el caso 1: (prueba de Breusch-Pagan estandarizada, prueba de normalidad Shapiro-Wilk, prueba de Durbin-Watson).
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + parqueaderos + banios +
## habitaciones, data = aptsSouth)
##
## Coefficients:
## (Intercept) areaconst estrato parqueaderos banios
## -255.852 1.291 60.271 75.730 49.950
## habitaciones
## -26.585
##
##
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance = 0.05
##
## Call:
## gvlma(x = modeloApts1)
##
## Value p-value Decision
## Global Stat 63847.73 0.000e+00 Assumptions NOT satisfied!
## Skewness 579.16 0.000e+00 Assumptions NOT satisfied!
## Kurtosis 63150.11 0.000e+00 Assumptions NOT satisfied!
## Link Function 74.82 0.000e+00 Assumptions NOT satisfied!
## Heteroscedasticity 43.62 3.979e-11 Assumptions NOT satisfied!
##
## studentized Breusch-Pagan test
##
## data: modelo1
## BP = 78.183, df = 5, p-value = 2.013e-15
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.84982, p-value < 2.2e-16
##
## Durbin-Watson test
##
## data: modelo1
## DW = 1.7442, p-value = 0.003318
## alternative hypothesis: true autocorrelation is greater than 0
Observamos que el modelo no cumple ninguno de los supuestos necesarios para su validación, lo que nos motiva a realizar transformaciones y ajustes en el modelo.
Realizaremos transformaciones y seleccionaremos el mejor modelo utilizando el Criterio de Información de Akaike (AIC):
##
## Call:
## lm(formula = log(preciom) ~ log(areaconst) + estrato + parqueaderos +
## banios + habitaciones, data = aptsSouth)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.6888 -0.1200 0.0111 0.1352 0.6842
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.707201 0.067224 25.396 < 2e-16 ***
## log(areaconst) 0.628398 0.018874 33.294 < 2e-16 ***
## estrato 0.191819 0.006539 29.333 < 2e-16 ***
## parqueaderos 0.110466 0.008711 12.682 < 2e-16 ***
## banios 0.072988 0.007373 9.899 < 2e-16 ***
## habitaciones -0.061581 0.008445 -7.292 4.15e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2009 on 2369 degrees of freedom
## Multiple R-squared: 0.8303, Adjusted R-squared: 0.83
## F-statistic: 2319 on 5 and 2369 DF, p-value: < 2.2e-16
## Start: AIC=-7617.68
## log(preciom) ~ log(areaconst) + estrato + parqueaderos + banios +
## habitaciones
##
## Df Sum of Sq RSS AIC
## <none> 95.608 -7617.7
## - habitaciones 1 2.146 97.754 -7567.0
## - banios 1 3.955 99.563 -7523.4
## - parqueaderos 1 6.490 102.098 -7463.7
## - estrato 1 34.724 130.332 -6883.8
## - log(areaconst) 1 44.738 140.346 -6708.0
##
## Call:
## lm(formula = log(preciom) ~ log(areaconst) + estrato + parqueaderos +
## banios + habitaciones, data = aptsSouth)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.6888 -0.1200 0.0111 0.1352 0.6842
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.707201 0.067224 25.396 < 2e-16 ***
## log(areaconst) 0.628398 0.018874 33.294 < 2e-16 ***
## estrato 0.191819 0.006539 29.333 < 2e-16 ***
## parqueaderos 0.110466 0.008711 12.682 < 2e-16 ***
## banios 0.072988 0.007373 9.899 < 2e-16 ***
## habitaciones -0.061581 0.008445 -7.292 4.15e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2009 on 2369 degrees of freedom
## Multiple R-squared: 0.8303, Adjusted R-squared: 0.83
## F-statistic: 2319 on 5 and 2369 DF, p-value: < 2.2e-16
Como se puede apreciar en los resultados, el mejor modelo, con un R^2 de 0.83, se obtiene mediante una transformación logarítmica de la variable dependiente (presiom) y de la variable predictiva ‘areaconstruida’. Ahora procederemos a evaluar los supuestos:
##
## Call:
## lm(formula = log(preciom) ~ log(areaconst) + estrato + parqueaderos +
## banios + habitaciones, data = aptsSouth)
##
## Coefficients:
## (Intercept) log(areaconst) estrato parqueaderos banios
## 1.70720 0.62840 0.19182 0.11047 0.07299
## habitaciones
## -0.06158
##
##
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance = 0.05
##
## Call:
## gvlma(x = Modselec2)
##
## Value p-value Decision
## Global Stat 1322.054 0.000e+00 Assumptions NOT satisfied!
## Skewness 154.684 0.000e+00 Assumptions NOT satisfied!
## Kurtosis 1147.184 0.000e+00 Assumptions NOT satisfied!
## Link Function 1.666 1.968e-01 Assumptions acceptable.
## Heteroscedasticity 18.520 1.681e-05 Assumptions NOT satisfied!
Observamos que, aunque este modelo no cumple con todos los supuestos, a diferencia del anterior, satisface el supuesto de relación, lo que lo hace un poco mejor. Ahora procederemos a realizar las predicciones con este modelo.
Con el modelo identificado debe predecir el precio de la vivienda con las características de la primera solicitud.
## Precio estimado de la vivienda para la primera solicitud con estrato 4: 660.5002
## Precio estimado de la vivienda para la primera solicitud con estrato 5: 800.1636
Con las predicciones del modelo sugiera potenciales ofertas que responda a la solicitud de la vivienda 2. Tenga encuentra que la empresa tiene crédito pre-aprobado de máximo 850 millones de pesos. Realice un análisis y presente en un mapa al menos 5 ofertas potenciales que debe discutir.
Precisamos los precios de las viviendas utilizando el modelo y luego filtramos las viviendas según el precio predicho, seleccionando las 5 viviendas más al norte de la ciudad.
Dado que el modelo no cumplió de manera sólida con los supuestos, se recomienda explorar otros modelos que puedan proporcionar una mejor explicación de los datos. A continuación, presentamos las casas que pueden ofrecerse al cliente:
En el análisis del mercado de apartamentos en Cali, se destacan algunas tendencias significativas. Primero, la Zona Sur presenta la oferta más amplia con 2,787 unidades, seguida de la Zona Norte con 1,198, mientras que las zonas Oeste, Oriente y Centro cuentan con 1,029, 62 y 24 apartamentos, respectivamente. Esto subraya una distribución desigual de la oferta en la ciudad. Además, el análisis de correlación revela que el precio de los apartamentos está positivamente relacionado con el área construida, el estrato, el número de baños y el número de habitaciones. La influencia más destacada es la que existe entre el precio y el área construida. En general, los apartamentos más grandes, ubicados en estratos superiores y con más comodidades, tienden a tener precios más elevados.
Sin embargo, es importante destacar que el modelo de regresión lineal múltiple aplicado a los apartamentos presentó algunos desafíos. A pesar de que el R-cuadrado del modelo es de aproximadamente 0.7477 y 0.82 para el primer y segundo caso, lo que indica que el 74.77% y 82% de la variabilidad en los precios se explica mediante las variables analizadas, se identificó autocorrelación positiva en los residuos. Esto sugiere que existen otros factores no considerados en el modelo que pueden influir en los precios de los apartamentos en Cali. Además, los supuestos de normalidad de los residuos y homocedasticidad no se cumplieron completamente, lo que indica que el modelo podría no ser la mejor representación de los datos.
Para mejorar la precisión del modelo y explicar mejor los datos de viviendas en la ciudad de Cali, se recomienda considerar la exploración de modelos alternativos, como regresiones no lineales o modelos de series temporales si existen tendencias a lo largo del tiempo. También se sugiere investigar la inclusión de variables adicionales que puedan capturar aspectos no considerados previamente. Estos resultados ofrecen una base sólida para el análisis y la toma de decisiones en el mercado inmobiliario de Cali, destacando la importancia de una evaluación continua y la adaptación de modelos según sea necesario al comprar o vender apartamentos en la ciudad.