# Establecer el espejo de CRAN
options(repos = "https://cloud.r-project.org")

Actividad 2 - Caso C&A

Enunciado

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:

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) .

Datos

Los datos de los tres últimos meses se adjuntan en la base que puede obtener con el siguiente código en R

Realizamos la carga de librerias

# Librerias
library(tidyverse)
library(ggplot2)
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.3.3
library(mice)
## Warning: package 'mice' was built under R version 4.3.2
library(dplyr)
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.2
library(magrittr)
library(dummy)
library(caret)
## Warning: package 'caret' was built under R version 4.3.2
library(factoextra)
library(NbClust)
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.3.2
library(ca)
library(dummy)
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.3
library(MASS)

library(paqueteMODELOS)
## Warning: package 'gridExtra' was built under R version 4.3.2
data("vivienda")
head (vivienda)
## # A tibble: 6 × 13
##      id zona    piso  estrato preciom areaconst parqueaderos banios habitaciones
##   <dbl> <chr>   <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
## 1  1147 Zona O… <NA>        3     250        70            1      3            6
## 2  1169 Zona O… <NA>        3     320       120            1      2            3
## 3  1350 Zona O… <NA>        3     350       220            2      2            4
## 4  5992 Zona S… 02          4     400       280            3      5            3
## 5  1212 Zona N… 01          5     260        90            1      2            3
## 6  1724 Zona N… 01          5     240        87            1      3            3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

# Vista global de las variables
glimpse(vivienda)
## Rows: 8,322
## Columns: 13
## $ id           <dbl> 1147, 1169, 1350, 5992, 1212, 1724, 2326, 4386, 1209, 159…
## $ zona         <chr> "Zona Oriente", "Zona Oriente", "Zona Oriente", "Zona Sur…
## $ piso         <chr> NA, NA, NA, "02", "01", "01", "01", "01", "02", "02", "02…
## $ estrato      <dbl> 3, 3, 3, 4, 5, 5, 4, 5, 5, 5, 6, 4, 5, 6, 4, 5, 5, 4, 5, …
## $ preciom      <dbl> 250, 320, 350, 400, 260, 240, 220, 310, 320, 780, 750, 62…
## $ areaconst    <dbl> 70, 120, 220, 280, 90, 87, 52, 137, 150, 380, 445, 355, 2…
## $ parqueaderos <dbl> 1, 1, 2, 3, 1, 1, 2, 2, 2, 2, NA, 3, 2, 2, 1, 4, 2, 2, 2,…
## $ banios       <dbl> 3, 2, 2, 5, 2, 3, 2, 3, 4, 3, 7, 5, 6, 2, 4, 4, 4, 3, 2, …
## $ habitaciones <dbl> 6, 3, 4, 3, 3, 3, 3, 4, 6, 3, 6, 5, 6, 2, 5, 5, 4, 3, 3, …
## $ tipo         <chr> "Casa", "Casa", "Casa", "Casa", "Apartamento", "Apartamen…
## $ barrio       <chr> "20 de julio", "20 de julio", "20 de julio", "3 de julio"…
## $ longitud     <dbl> -76.51168, -76.51237, -76.51537, -76.54000, -76.51350, -7…
## $ latitud      <dbl> 3.43382, 3.43369, 3.43566, 3.43500, 3.45891, 3.36971, 3.4…

Base 1

Punto Uno

# Filtrar las casas ubicadas en la zona norte
vivienda_norte <- vivienda %>%
  filter(zona == "Zona Norte" & tipo == "Casa")

# Mostrar los primeros 5 registros de las bases
head(vivienda_norte, 5)
## # A tibble: 5 × 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  4460 Zona N… 02          4     625       355            3      5            5
## 5  6081 Zona N… 02          5     750       237            2      6            6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

# Tabla de frecuencia de los tipos de propiedad en la zona norte
table(vivienda_norte$tipo)
## 
## Casa 
##  722

# Tabla de frecuencia de los estratos en la zona norte
table(vivienda_norte$estrato)
## 
##   3   4   5   6 
## 235 161 271  55

Podemos notar la distribución de propiedades en la zona norte de Cali según su estrato socioeconómico, donde se presentan 235 unidades en el estrato 3, 161 en el estrato 4, 271, en el estrato 5 y 55 en el estrato 6. Se evidencia que los estratos con mayor disponibilidad de viviendas son el 3 y el 5.

# Crear matriz de correlación
library(corrplot) 
## corrplot 0.92 loaded
correlation_matrix <- cor(vivienda_norte[, c("preciom", "areaconst", "estrato","banios", "habitaciones")])
corrplot(correlation_matrix, method = "color", addCoef.col = "orange")

correlation_table <- as.table(correlation_matrix)
print(correlation_table)
##                preciom areaconst   estrato    banios habitaciones
## preciom      1.0000000 0.7313480 0.6123503 0.5233357    0.3227096
## areaconst    0.7313480 1.0000000 0.4573818 0.4628152    0.3753323
## estrato      0.6123503 0.4573818 1.0000000 0.4083039    0.1073141
## banios       0.5233357 0.4628152 0.4083039 1.0000000    0.5755314
## habitaciones 0.3227096 0.3753323 0.1073141 0.5755314    1.0000000

Se puede observar que la correlación más fuerte se da entre precios y área construida, esto se podría ser posible ya que propiedades con un mayor número de área sean más atractivas para los compradores, lo que podría aumentar la demanda y, por lo tanto, los precios.Asimismo pueden ofrecer un nivel superior de comodidad y conveniencia.

# Tabla de frecuencia de los barrios en la zona norte
table(vivienda_norte$barrio)
## 
##                     acopi           alameda del río                    alamos 
##                        70                         1                         3 
##         atanasio girardot              barranquilla        barrio tranquilo y 
##                         1                         3                         1 
##               base aérea                    berlin             brisas de los 
##                         2                         1                        22 
##        brisas del guabito                      Cali                 calibella 
##                         1                        13                         1 
##                    calima             calimio norte                  cambulos 
##                         6                         3                         1 
##                centenario                 chapinero                chipichape 
##                         3                         1                         5 
##         ciudad los álamos        colinas del bosque                 cristales 
##                        11                         1                         1 
##                 el bosque                  el cedro           el gran limonar 
##                        37                         1                         1 
##                el guabito                   el sena                el trébol 
##                         1                         1                         1 
##           evaristo garcía          flora industrial                  floralia 
##                         1                         4                         3 
##                    gaitan                   granada      jorge eliecer gaitán 
##                         1                        10                         1 
##                 juanamb√∫                   la base                la campiña 
##                        11                         1                         4 
##              la esmeralda                  la flora                  La Flora 
##                         1                        99                         1 
##               la floresta                 la merced                 la rivera 
##                         2                        24                         9 
##               la rivera i              la rivera ii                la riviera 
##                         1                         2                         1 
##              la villa del               las acacias             las américas 
##                         1                         1                         1 
##                las ceibas              las delicias               las granjas 
##                         2                         3                         1 
##                 los andes             los guaduales            los guayacanes 
##                        13                        10                         2 
##                manzanares                     menga   metropolitano del norte 
##                         1                         2                         1 
##          nueva tequendama         oasis de comfandi                 occidente 
##                         1                         1                         1 
##                    pacara     parque residencial el              paseo de los 
##                         2                         1                         2 
##         paso del comercio         poblado campestre                   popular 
##                         2                         1                         5 
##       portada de comfandi      portales de comfandi                  porvenir 
##                         1                         1                         2 
##          prados del norte        quintas de salomia             rozo la torre 
##                        31                         1                         1 
##                   salomia                  san luis                  san luís 
##                        20                         2                         1 
##               san vicente             santa bárbara              santa monica 
##                        31                         1                        16 
##              Santa Monica              santa mónica        santa monica norte 
##                         1                         1                         1 
##  santa monica residencial  santa mónica residencial                 santander 
##                         5                        15                         1 
##            tejares de san        torres de comfandi         unión de vivienda 
##                         1                         2                         1 
## urbanización barranquilla     urbanización la flora    urbanización la merced 
##                         2                        23                         4 
##     urbanización la nueva            valle del lili                 versalles 
##                         1                         1                        16 
##            villa colombia         villa de veracruz           villa del prado 
##                         1                         4                        40 
##           Villa Del Prado             villa del sol        villas de veracruz 
##                         1                        12                         7 
##        Villas De Veracruz                    vipasa                zona norte 
##                         1                        30                        19 
##              zona oriente 
##                         1

En esta tabla se puede identificar la ubicación de las casas disponibles en la zona norte de Cali, lo que podría ser relevante para los compradores interesados en adquirir una propiedad en un barrio específico que les motive.

# Crear el mapa
mapa_vivienda <- leaflet(vivienda_norte) %>%
  addTiles() %>%
  addMarkers(lng = ~longitud, lat = ~latitud, popup = ~paste("ID:", id, "<br>Barrio:", barrio))
mapa_vivienda
# Filtrar las casas que no están en la zona norte
zonaGlobal_Casas <- vivienda %>%
  filter(zona != "Zona Norte" & tipo == "Casa")

# Crear el mapa con todos los puntos
mapa_global <- leaflet() %>%
  addTiles()

# Agregar marcadores para casas en la zona norte (en color azul)
mapa_global<- mapa_global %>%
  addCircleMarkers(data = vivienda_norte, lng = ~longitud, lat = ~latitud, 
                   color = "blue", radius = 5, popup = ~paste("ID:", id, "<br>Barrio:", barrio))

# Agregar marcadores para casas en otras zonas (en color rojo)
mapa_global <- mapa_global %>%
  addCircleMarkers(data = zonaGlobal_Casas, lng = ~longitud, lat = ~latitud, 
                   color = "red", radius = 5, popup = ~paste("ID:", id, "<br>Barrio:", barrio))
mapa_global

En el mapa se nota que dos puntos están cercanos entre sí, mientras que unos punto está significativamente separado del par agrupado. Esto sugiere la posibilidad de un error en las coordenadas o en la asignación de la zona. Se aconseja revisar la precisión de las variables de zona y coordenadas geográficas en la base de datos para asegurar la exactitud del mapeo y la integridad del análisis.Se crean los dos mapas con el fin de retificar la información y ver el compartamiento de los otros grupos.

Punto dos

Relación Precio- Area construida

grafico_1 <- plot_ly(vivienda_norte, x = ~areaconst, y = ~preciom, type = "scatter", mode = "markers", 
                               marker = list(size = 10, opacity = 0.6))
grafico_1

Se puede notar que el costo de las viviendas aumenta significativamente conforme aumenta el tamaño de la construcción, lo que sugiere una relación directamente proporcional entre estas dos variables. Además, se observa una alta concentración de casas con áreas inferiores a 500 m², mientras que las ofertas para áreas de más de 1000 m² son limitadas, con solo dos opciones disponibles.

Relación Precio- Estrato

grafico_2 <- plot_ly(vivienda_norte, x = ~estrato, y = ~preciom, type = "box")
grafico_2 <- grafico_2 %>% 
                         layout(title = "Relación entre Precio y Área Construida",
                                xaxis = list(title = "Estrato"),
                                yaxis = list(title = "Precio"))
grafico_2

El diagrama de caja proporciona una representación visual detallada de la distribución de precios de vivienda para cada estrato socioeconómico. En el estrato 3, los precios oscilan desde un mínimo de 89 hasta un máximo de 1100. La caja abarca desde el primer cuartil (Q1) hasta el tercer cuartil (Q3), donde Q1 está en 160.5 y Q3 en 300, con una mediana en 215. Esto indica que la mayoría de las viviendas en este estrato tienen precios concentrados en el rango intercuartil. En el estrato 4, los precios varían desde 160 hasta 1800, con una mediana de 380, un Q1 de 320 y un Q3 de 530. Aquí, la dispersión de precios es más amplia en comparación con el estrato 3, pero la mayoría de las viviendas todavía se concentran en el rango intercuartil. Para el estrato 5, los precios van desde 125 hasta 1940, con una mediana de 480, un Q1 de 390 y un Q3 de 642.5. Esta distribución muestra una mayor dispersión de precios en comparación con los estratos anteriores. Finalmente, en el estrato 6, los precios oscilan entre 430 y 1600, con una mediana de 800, un Q1 de 592.5 y un Q3 de 945. Aquí, la variación de precios es significativamente mayor, con una concentración más dispersa de valores. En resumen, el diagrama de caja revela la variabilidad y la distribución de precios de vivienda en cada estrato, proporcionando una comprensión clara de la tendencia central y la dispersión de los datos.

Relación Precio- Número de Baños

grafico_3 <- plot_ly(vivienda_norte, x = ~banios, y = ~preciom, type = "scatter", mode = "markers", 
                               marker = list(size = 10, opacity = 0.6))
grafico_3

En términos del número de baños, las viviendas de mayor valor son aquellas que tienen entre 4 y 8 baños, alcanzando precios de hasta 1.940 millones de pesos, dependiendo de la cantidad de baños. Por otro lado, las viviendas con menos baños, ya sea 1, 2 o 3, generalmente tienen un valor inferior.

Relación Precio- Número de habitaciones

grafico_4 <- plot_ly(vivienda_norte, x = ~habitaciones, y = ~preciom, type = "scatter", mode = "markers", 
                               marker = list(size = 10, opacity = 0.6))
grafico_4

Se puede observar que las casas con una menor cantidad de baños, ya sea 0, 1, 2 o 3, tienden a tener un valor inferior en comparación con aquellas que cuentan con un mayor número de baños.En cuanto al número de baños, se observa que las viviendas de mayor precio son aquellas que disponen de entre 4 y 8 baños. Estas propiedades pueden alcanzar precios de hasta 1.940 millones de pesos, dependiendo de la cantidad de baños que tengan.

Relación Precio- Zona

grafico_5 <- plot_ly(vivienda_norte, x = ~zona, y = ~preciom, type = "box")
grafico_5 <- grafico_5 %>% 
                         layout(title = "Relación entre Precio y Zona",
                                xaxis = list(title = "Zona"),
                                yaxis = list(title = "Precio"))
grafico_5

La mitad de las viviendas en la zona Norte tienen precios de 390 millones de pesos o menos, pero algunas pueden alcanzar valores entre 950 y 1940 millones de pesos. La variación de precios en esta área abarca desde un mínimo de 89 hasta un máximo de 1940. El rango intercuartil, representado por la caja en el diagrama de caja, se extiende desde el primer cuartil (Q1) hasta el tercer cuartil (Q3), donde Q1 se sitúa en 260 y Q3 en 550, con una mediana en 390.

Punto tres

modelo <- lm(preciom ~ areaconst + estrato + habitaciones + parqueaderos + banios, data = vivienda_norte)
summary(modelo)
## 
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + 
##     banios, data = vivienda_norte)
## 
## 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

Precio Casa=α+β1(Áreaconstruida)+β2(Estrato)+β2(Númerodecuartos)+β2(Númerodeparqueaderos)+β2(Númerodebaños)+ϵ

El análisis del modelo de regresión múltiple revela que el coeficiente de determinación múltiple es de aproximadamente 60.41%, lo que indica que alrededor del 60.41% de la variabilidad en el precio de las viviendas puede ser explicada por las variables independientes consideradas en el modelo, tales como el área construida, el estrato, el número de habitaciones, el número de parqueaderos y el número de baños. Esto sugiere que estas variables tienen una influencia significativa en el precio de las viviendas.

La interpretación de los coeficientes estimados muestra que, manteniendo constantes las demás variables, por cada unidad adicional en el área construida de la casa, se espera un aumento estimado de 0.6767 millones de pesos en el precio. Asimismo, por cada unidad adicional en el estrato de la casa, se espera un aumento estimado de 80 millones de pesos en el precio. Por otro lado, por cada unidad adicional en el número de habitaciones de la casa, se espera una disminución estimada de 7 millones de pesos en el precio. Por cada unidad adicional en el número de parqueaderos de la casa, se espera un aumento estimado de 24 millones de pesos en el precio. Y finalmente, por cada unidad adicional en el número de baños de la casa, se espera un aumento estimado de 18 millones de pesos en el precio. Estas interpretaciones proporcionan una comprensión detallada de cómo cada variable influye en el precio de las viviendas, lo que es crucial para la toma de decisiones en el mercado inmobiliario.

Basándonos en la información proporcionada, hay varias consideraciones que se podrían tomar en cuenta para realizar ajustes al modelo de regresión múltiple; transformaciones de variables, inclusión de variables adicionales, interacciones entre variables, consideración de variables categóricas, evaluación de la multicolinealidad y validación del modelo.

Punto Cuatro

par(mfrow = c(3, 2))
# Linealidad
plot(modelo$fitted.values, modelo$residuals, xlab = "Valores Ajustados", ylab = "Residuales")
abline(h = 0, col = "red", lwd = 2)
#Homocedasticidad
plot(modelo$fitted.values, sqrt(abs(modelo$residuals)), xlab = "Valores Ajustados", ylab = "Raíz de los Residuales Absolutos")
abline(h = 0, col = "red", lwd = 2)
#Independencia de los errores
plot(modelo$residuals, type = "l")
abline(h = 0, col = "red", lwd = 2)
#Normalidad de los errores
qqnorm(modelo$residuals)
qqline(modelo$residuals, col = 2)
# Colinealidad 
cor_mat <- cor(vivienda_norte[, c("preciom" , "banios", "habitaciones", "areaconst", "estrato")])
plot(cor_mat)

## No autorrelación
lmtest::dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 1.7615, p-value = 0.005472
## alternative hypothesis: true autocorrelation is greater than 0

Podemos observar que la variable dependiente parece tener una relación lineal con la variable independiente. Esto es evidente en la curva de ajuste en rojo, por lo tanto, este supuesto se cumple, a pesar de que no es completamente lineal, tanto en el modelo original y en la aplicación de la transformación notamos que se detecta la multicolinealidad.El resultado del Test de Durbin-Watson es un valor de DW = 1.7615, lo cual indica que efectivamente hay evidencia de autocorrelación en el modelo.

Punto Cinco

req <- data.frame(areaconst=c(200,200),estrato=c(4,5),habitaciones=c(4,4),parqueaderos=c(1,1),banios=c(2,2))
req
##   areaconst estrato habitaciones parqueaderos banios
## 1       200       4            4            1      2
## 2       200       5            4            1      2
predict(modelo,req)
##        1        2 
## 312.1010 392.7359

Se puede notar que para una vivienda tipo casa con características específicas, con un área construida de 200 m², un parqueadero, dos baños, cuatro habitaciones y un estrato 4, en la Zona Norte, el precio es de 312.1010 COP. Sin embargo, para una vivienda con las mismas características, pero con un estrato 5, el precio es de 92.7359 COP.

Punto Seis

casas_filtrados <- filter(vivienda_norte, areaconst >= 200, parqueaderos >= 1, banios >= 2, habitaciones >= 4, estrato >=4, preciom <= 350)
total_observaciones1 <- nrow(casas_filtrados)
print(total_observaciones1)
## [1] 34
primeras_5_ofertas <- head(casas_filtrados, 5)
primeras_5_ofertas
## # A tibble: 5 × 13
##      id zona    piso  estrato preciom areaconst parqueaderos banios habitaciones
##   <dbl> <chr>   <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
## 1  4210 Zona N… 01          5     350       200            3      3            4
## 2  4267 Zona N… 01          5     335       202            1      4            5
## 3  4800 Zona N… 01          5     340       250            2      4            4
## 4  4209 Zona N… 02          5     350       300            3      5            6
## 5  4422 Zona N… 02          5     350       240            2      3            6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
mapa_vivienda1 <- leaflet(primeras_5_ofertas) %>%
  addTiles() %>%
  addMarkers(lng = ~longitud, lat = ~latitud, popup = ~paste("ID:", id, "<br>Barrio:", barrio))
mapa_vivienda1

Para un préstamo preaprobado de hasta 350 millones de pesos, con las especificaciones de una casa con un área construida de 200 m² o mayor, un parqueadero, dos baños, cuatro habitaciones, y un estrato 4 o 5 en la Zona Norte, hay disponibles 34 ofertas entre las cuales la persona puede elegir. Sin embargo, decidió seleccionar aleatoriamente solo 5 de estas ofertas, como se muestra en la tabla. Adicionalmente en el mapa se puede observar en donde se encuentran ubicadas.

Base 2

Punto Uno

# Filtrar los apartamentos ubicadas en la zona sur
vivienda_sur <- vivienda %>%
  filter(zona == "Zona Sur" & tipo == "Apartamento")

# Mostrar los primeros 5 registros de las bases
head(vivienda_sur, 5)
## # A tibble: 5 × 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  1241 Zona S… <NA>        3     135       117           NA      2            3
## 5  5370 Zona S… <NA>        3     135        78           NA      1            3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

# Tabla de frecuencia de los tipos de propiedad en la zona sur
table(vivienda_sur$tipo)
## 
## Apartamento 
##        2787

# Tabla de frecuencia de los estratos en la zona sur
table(vivienda_sur$estrato)
## 
##    3    4    5    6 
##  201 1091 1033  462

Podemos notar la distribución de propiedades en la zona sur de Cali según su estrato socioeconómico, donde se presentan 201 unidades en el estrato 3, 1091 en el estrato 4, 1033 en el estrato 5 y 462 en el estrato 6.Se evidencia que los estratos con mayor disponibilidad de viviendas son el 4 y el 5.

# Crear matriz de correlación
library(corrplot) 
correlation_matrix <- cor(vivienda_sur[, c("preciom", "areaconst", "estrato","banios", "habitaciones")])
corrplot(correlation_matrix, method = "color", addCoef.col = "orange")

correlation_table <- as.table(correlation_matrix)
print(correlation_table)
##                preciom areaconst   estrato    banios habitaciones
## preciom      1.0000000 0.7579955 0.6727067 0.7196705    0.3317538
## areaconst    0.7579955 1.0000000 0.4815593 0.6618179    0.4339608
## estrato      0.6727067 0.4815593 1.0000000 0.5686171    0.2125953
## banios       0.7196705 0.6618179 0.5686171 1.0000000    0.5149227
## habitaciones 0.3317538 0.4339608 0.2125953 0.5149227    1.0000000

Se puede notar que la correlación más destacada se encuentra entre los precios y el tamaño del área construida. Esto podría explicarse por el hecho de que las propiedades con una mayor área resultan más atractivas para los compradores, lo que puede incrementar la demanda y, por consiguiente, elevar los precios. Además, es posible que estas propiedades ofrezcan un mayor nivel de comodidad y conveniencia, lo que también puede influir en sus precios.

# Tabla de frecuencia de los barrios en la zona norte
table(vivienda_sur$barrio)
## 
##                         acopi                    aguablanca 
##                             1                             1 
##                     aguacatal                       alameda 
##                             1                             2 
##                 alférez real                  alferez real 
##                             4                             1 
##                   alto jordán            altos de guadalupe 
##                             1                             1 
##                      arboleda             belisario caicedo 
##                             1                             2 
##                   bella suiza           bloques del limonar 
##                             5                             1 
##                     bochalema           bosques del limonar 
##                            33                            12 
##            brisas del limonar                  buenos aires 
##                             1                             4 
##                        caldas                          Cali 
##                             1                             3 
##                     calicanto                      cambulos 
##                             2                             2 
##                   camino real                   Camino Real 
##                            14                             1 
##                     campestre                         caney 
##                             1                            58 
##                caney especial                   cañasgordas 
##                             1                             5 
##                  cañaveralejo                   cañaverales 
##                             9                            19 
##       cañaverales los samanes                         capri 
##                             1                            43 
##                   cataya real               cerro cristales 
##                             1                             1 
##                    champagnat                   ciudad 2000 
##                             1                            19 
##              ciudad bochalema                  ciudad capri 
##                            48                             9 
##                 ciudad jardin                 ciudad jardín 
##                             9                           218 
##           ciudad jardin pance              ciudad meléndez 
##                             1                             1 
##               ciudad melendez               ciudad pacifica 
##                             1                             2 
##               Ciudad Pacifica          ciudad universitaria 
##                             1                             1 
##            ciudadela comfandi            ciudadela melendez 
##                             2                             1 
##           ciudadela pasoancho               colinas del sur 
##                             3                             3 
##                    colseguros              colseguros andes 
##                            22                             1 
##                     cristales               cristobal colón 
##                             1                             2 
##               cuarto de legua                 departamental 
##                            30                            16 
##                      el caney                      El Caney 
##                           124                             1 
##                     el dorado               el gran limonar 
##                             6                             3 
##                     el guabal                    el ingenio 
##                             4                           128 
##                  el ingenio 3                  el ingenio i 
##                             1                            13 
##                 el ingenio ii                el ingenio iii 
##                             9                            10 
##                     el jordán                       el lido 
##                             1                            33 
##                    el limonar                    el refugio 
##                            59                            77 
##                 fuentes de la                  gran limonar 
##                             1                             8 
##                     guadalupe                       ingenio 
##                            10                             1 
##                    ingenio ii                   la alborada 
##                             1                             4 
##                    la cascada                      la flora 
##                             2                             1 
##                   la hacienda                   La Hacienda 
##                           108                             1 
##                      la luisa                      la selva 
##                             1                             7 
##                   las acacias                  las camelias 
##                             1                             1 
##                   las granjas                  las vegas de 
##                             7                             1 
##                  los cambulos                  los cámbulos 
##                            19                             3 
##                los farallones             mayapan las vegas 
##                             2                            31 
##                     meléndez                      melendez 
##                            19                            40 
##                    miraflores                   multicentro 
##                             1                            27 
##                       napoles                       nápoles 
##                             1                            12 
##                     normandía              nueva tequendama 
##                             1                            36 
##            oasis de pasoancho                   pampa linda 
##                             1                            13 
##                    pampalinda                  panamericano 
##                             3                             2 
##                         pance           parcelaciones pance 
##                           205                            18 
##                     pasoancho                         ponce 
##                             5                             1 
##            prados del limonar            Prados Del Limonar 
##                             3                             1 
##               primero de mayo                quintas de don 
##                            24                            58 
##                       refugio                       samanes 
##                             1                             1 
##          samanes de guadalupe                     san bosco 
##                             1                             2 
##                  san fernando                  San Fernando 
##                            18                             1 
##            san fernando nuevo            san fernando viejo 
##                             4                             5 
##                   san joaquin                   santa anita 
##                             1                            36 
##                   Santa Anita                   santa elena 
##                             2                             1 
##                  santa isabel                santa teresita 
##                             7                             6 
##                 santo domingo              sector aguacatal 
##                             1                             1 
## sector cañaveralejo guadalupe                     seminario 
##                             2                            22 
##                      templete                    tequendama 
##                             2                            14 
##                unicentro cali       urbanización colseguros 
##                             1                             2 
##        urbanizacion gratamira    urbanización nueva granada 
##                             1                             1 
##         urbanización río lili       urbanización tequendama 
##                             3                             2 
##                 valle de lili                valle del lili 
##                             1                           837 
##                Valle Del Lili                     versalles 
##                             1                             1 
##                 villa del sur                        vipasa 
##                             1                             1 
##                      zona sur 
##                            32

Esta tabla permite identificar la ubicación de las viviendas disponibles en la zona norte de Cali, lo cual puede resultar relevante para los compradores que estén interesados en adquirir una propiedad en un barrio específico que les llame la atención.

# Crear el mapa
mapa_vivienda <- leaflet(vivienda_sur) %>%
  addTiles() %>%
  addMarkers(lng = ~longitud, lat = ~latitud, popup = ~paste("ID:", id, "<br>Barrio:", barrio))
mapa_vivienda

# Filtrar las casas que no están en la zona norte
zonaGlobal_Apto <- vivienda %>%
  filter(zona != "Zona Sur" & tipo == "Apartamento")

# Crear el mapa con todos los puntos
mapa_global1 <- leaflet() %>%
  addTiles()

# Agregar marcadores para casas en la zona norte (en color azul)
mapa_global1<- mapa_global1 %>%
  addCircleMarkers(data = vivienda_sur, lng = ~longitud, lat = ~latitud, 
                   color = "blue", radius = 5, popup = ~paste("ID:", id, "<br>Barrio:", barrio))

# Agregar marcadores para casas en otras zonas (en color rojo)
mapa_global1 <- mapa_global1 %>%
  addCircleMarkers(data = zonaGlobal_Apto, lng = ~longitud, lat = ~latitud, 
                   color = "red", radius = 5, popup = ~paste("ID:", id, "<br>Barrio:", barrio))
mapa_global1

El mapa refleja una observación similar a la que se realizó en la primera base de datos. Esto plantea la posibilidad de que haya un error en las coordenadas o en la asignación de las zonas. Se recomienda verificar la precisión de las variables de zona y coordenadas geográficas en la base de datos para garantizar la exactitud del mapeo y la integridad del análisis. La creación de ambos mapas tiene como objetivo corregir la información y comprender el comportamiento de los otros grupos.

Punto dos

Relación Precio- Area construida

grafico_1 <- plot_ly(vivienda_sur, x = ~areaconst, y = ~preciom, type = "scatter", mode = "markers", 
                               marker = list(size = 10, opacity = 0.6))
grafico_1

Se evidencia que el precio de las viviendas incrementa considerablemente a medida que aumenta el tamaño de la construcción, lo que indica una relación directa entre estas dos variables. También se nota una concentración notable de viviendas con áreas inferiores a 350 m², mientras que hay una oferta limitada para propiedades con más de 932 m², con solo dos opciones disponibles.

Relación Precio- Estrato

grafico_2 <- plot_ly(vivienda_sur, x = ~estrato, y = ~preciom, type = "box")
grafico_2 <- grafico_2 %>% 
                         layout(title = "Relación entre Precio y Estrato",
                                xaxis = list(title = "Estrato"),
                                yaxis = list(title = "Precio"))
grafico_2

El diagrama de caja proporciona una representación visual detallada de la distribución de precios de vivienda para cada estrato socioeconómico. Para el estrato 3, los precios oscilan desde un mínimo de 75 hasta un máximo de 580. La caja abarca desde el primer cuartil (Q1) hasta el tercer cuartil (Q3), donde Q1 se sitúa en 110 y Q3 en 148.25, con una mediana en 128. Esto sugiere que la mayoría de las viviendas en este estrato tienen precios concentrados en el rango intercuartil. En el estrato 4, los precios varían desde 78 hasta 645, con una mediana de 188, un Q1 de 154 y un Q3 de 240. Aquí, la dispersión de precios es más amplia en comparación con el estrato 3, pero la mayoría de las viviendas aún se concentran en el rango intercuartil. Para el estrato 5, los precios van desde 93 hasta 1250, con una mediana de 280, un Q1 de 230 y un Q3 de 330. Esta distribución muestra una mayor dispersión de precios en comparación con los estratos anteriores. Finalmente, en el estrato 6, los precios oscilan entre 128 y 1750, con una mediana de 580, un Q1 de 410 y un Q3 de 700. Aquí, la variación de precios es significativamente mayor, con una concentración más dispersa de valores. En resumen, el diagrama de caja revela la variabilidad y la distribución de precios de vivienda en cada estrato, proporcionando una comprensión clara de la tendencia central y la dispersión de los datos.

Relación Precio- Número de baños

grafico_3 <- plot_ly(vivienda_sur, x = ~banios, y = ~preciom, type = "scatter", mode = "markers", 
                               marker = list(size = 10, opacity = 0.6))
grafico_3

Los apartamentos que disponen de entre 3 y 6 baños son los de mayor valor, con precios que pueden alcanzar los 1.200 millones para los que tienen 3 baños, 1.750 millones para aquellos con 4 y 5 baños, y 1600 millones de pesos para los que cuentan con 6 baños. Por otro lado, se observa que el 80.73% de los apartamentos tienen 2 o 3 baños, lo que indica una concentración significativa en esta categoría.

Relación Precio- Número de habitaciones

grafico_4 <- plot_ly(vivienda_sur, x = ~habitaciones, y = ~preciom, type = "scatter", mode = "markers", 
                               marker = list(size = 10, opacity = 0.6))
grafico_4

Los apartamentos que tienen 3 y 4 habitaciones son los más caros, con precios registrados de 1.750 millones de pesos en ambos casos. En contraste, los apartamentos con 1 y 2 habitaciones pueden tener precios de hasta 320 y 840 millones de pesos, respectivamente.

Relación Precio- Zona

grafico_5 <- plot_ly(vivienda_sur, x = ~zona, y = ~preciom, type = "box")
grafico_5 <- grafico_5 %>% 
                         layout(title = "Relación entre Precio y Zona",
                                xaxis = list(title = "Zona"),
                                yaxis = list(title = "Precio"))
grafico_5

El 75% de los apartamentos en la zona sur tienen precios de 335 millones de pesos o menos, pero algunos pueden tener valores entre 575 y 1.750 millones de pesos. Los apartamentos con el precio más bajo en esta área se sitúan en 75 millones de pesos.

Punto tres

library(MASS)
modelo1 <- lm(preciom ~ areaconst + estrato + habitaciones + parqueaderos + banios, data = vivienda_sur)
summary(modelo1)
## 
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + 
##     banios, data = vivienda_sur)
## 
## 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

Precio Apartamento=α+β1(Áreaconstruida)+β2(Estrato)+β2(Númerodecuartos)+β2(Númerodeparqueaderos)+β2(Númerodebaños)+ϵ

El análisis del modelo de regresión múltiple revela que el coeficiente de determinación múltiple (Multiple R-squared) es de aproximadamente el 78.72%, lo que indica que alrededor del 78.72% de la variabilidad en el precio de las viviendas puede ser explicada por las variables independientes consideradas en el modelo, tales como el área construida, el estrato, el número de habitaciones, el número de parqueaderos y el número de baños. Esto sugiere que estas variables tienen una influencia significativa en el precio de las viviendas.

La interpretación de los coeficientes estimados muestra que, manteniendo constantes las demás variables, por cada unidad adicional en el área construida de la casa, se espera un aumento estimado de 1.28 millones de pesos en el precio. Asimismo, por cada unidad adicional en el estrato de la casa, se espera un aumento estimado de 60 millones de pesos en el precio. Por otro lado, por cada unidad adicional en el número de habitaciones de la casa, se espera una disminución estimada de 24 millones de pesos en el precio. Por cada unidad adicional en el número de parqueaderos de la casa, se espera un aumento estimado de 72 millones de pesos en el precio. Y finalmente, por cada unidad adicional en el número de baños de la casa, se espera un aumento estimado de 50 millones de pesos en el precio. Estas interpretaciones proporcionan una comprensión detallada de cómo cada variable influye en el precio de las viviendas, lo que es crucial para la toma de decisiones en el mercado inmobiliario.

Basándonos en la información proporcionada, hay varias consideraciones que se podrían tomar en cuenta para realizar ajustes al modelo de regresión múltiple; transformaciones de variables, inclusión de variables adicionales, interacciones entre variables, consideración de variables categóricas, evaluación de la multicolinealidad y validación del modelo.

Punto Cuatro

par(mfrow = c(3, 2))
# Linealidad
plot(modelo1$fitted.values, modelo1$residuals, xlab = "Valores Ajustados", ylab = "Residuales")
abline(h = 0, col = "red", lwd = 2)
#Homocedasticidad
plot(modelo1$fitted.values, sqrt(abs(modelo1$residuals)), xlab = "Valores Ajustados", ylab = "Raíz de los Residuales Absolutos")
abline(h = 0, col = "red", lwd = 2)
#Independencia de los errores
plot(modelo1$residuals, type = "l")
abline(h = 0, col = "red", lwd = 2)
#Normalidad de los errores
qqnorm(modelo1$residuals)
qqline(modelo1$residuals, col = 2)
# multicolinealidad 
cor_mat <- cor(vivienda_sur[, c("preciom" , "banios", "habitaciones", "areaconst", "estrato")])
plot(cor_mat)

## No autorrelación
lmtest::dwtest(modelo1)
## 
##  Durbin-Watson test
## 
## data:  modelo1
## DW = 1.5333, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0

Se puede notar que existe una aparente relación lineal entre la variable dependiente y la variable independiente. En este escenario, lo que sugiere que no hay problemas de colinealidad entre ellas. Sin embargo, el resultado del Test de Durbin-Watson arroja un valor de DW = 1.5333, lo que indica la presencia de autocorrelación en el modelo.

Punto Cinco

req1 <- data.frame(areaconst=c(300,300),estrato=c(5,6),habitaciones=c(5,5),parqueaderos=c(3,3),banios=c(3,3))
req1
##   areaconst estrato habitaciones parqueaderos banios
## 1       300       5            5            3      3
## 2       300       6            5            3      3
predict(modelo1,req1)
##        1        2 
## 675.0247 735.9218

Se puede notar que para una vivienda tipo apartamento con características específicas, como una casa con un área construida de 300 m², tres parqueadero, tres baños, cinco habitaciones y un estrato 5, en la Zona Norte, el precio es de 675.0247 COP. Sin embargo, para una vivienda con las mismas características, pero con un estrato 6, el precio es de 735.9218 COP.

Punto Seis

apartamentos_filtrados <- filter(vivienda_sur, areaconst >= 300, parqueaderos >= 3, banios >= 3, habitaciones >= 5,estrato >=5, preciom <= 850)
total_observaciones <- nrow(apartamentos_filtrados)
print(total_observaciones)
## [1] 2
primeras_ofertas <- head(apartamentos_filtrados, 5)
primeras_ofertas
## # A tibble: 2 × 13
##      id zona    piso  estrato preciom areaconst parqueaderos banios habitaciones
##   <dbl> <chr>   <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
## 1  7182 Zona S… <NA>        5     730       573            3      8            5
## 2  7512 Zona S… <NA>        5     670       300            3      5            6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
mapa_vivienda <- leaflet(primeras_ofertas) %>%
  addTiles() %>%
  addMarkers(lng = ~longitud, lat = ~latitud, popup = ~paste("ID:", id, "<br>Barrio:", barrio))
mapa_vivienda

Para un préstamo preaprobado de hasta 850 millones de pesos, con las especificaciones de un apartamento con un área construida de 300 m² o mayor, tres parqueadero, tres baños, cinco habitaciones, y un estrato 5 o 6 en la zona sur, hay disponibles 2 ofertas entre las cuales la persona puede elegir. Adicionalmente en el mapa se puede observar en donde se encuentran ubicadas.