Problema planteado (Caso C&A)

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

El problema consiste en ayudar a María a responder la solicitud, mediante técnicas modelación que usted conoce. Ella requiere 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) .

Informe Ejecutivo: Análisis y Recomendaciones de Viviendas

En este informe, exploramos el impacto de diversas variables en el precio de las viviendas y proporcionamos recomendaciones personalizadas para dos casos específicos.

Impacto en el Precio

Para comprender cómo diferentes características afectan el precio de las viviendas, realizamos un análisis detallado. Es importante destacar que al evaluar el impacto de cada variable en el precio, mantenemos las demás constantes, lo que nos permite determinar su influencia individual.

  • Área Construida: La extensión de la propiedad es un factor crucial. En promedio, cada metro cuadrado adicional agrega 0.67 millones de pesos al precio de las casas y 1.29 millones de pesos al de los apartamentos.

  • Baños: La cantidad de baños también afecta significativamente el precio. Cada baño adicional suma aproximadamente 18.90 millones de pesos para las casas y 50.70 millones de pesos para los apartamentos.

  • Estrato: El estrato residencial tiene un impacto notable. Cada incremento en el estrato aumenta el precio en aproximadamente 80.63 millones de pesos para las casas y 60.90 millones de pesos para los apartamentos.

  • Parqueaderos: Los parqueaderos son un factor valorado. Por cada espacio adicional, el precio aumenta en unos 24.01 millones de pesos para las casas y 72.91 millones de pesos para los apartamentos.

  • Con base en pruebas y análisis se determina que la relación de las habitaciones no es muy significativa o correcta por tal motivo no se toma en cuenta.

Recomendaciones de Viviendas

Presentamos recomendaciones personalizadas para dos casos específicos:

* Vivienda 1

Características Vivienda 1: Casa en el Norte
Área Construida 200 m²
Parqueaderos 1
Baños 2
Habitaciones 4
Estrato 4 o 5
Zona Norte
Crédito Preaprobado 350 millones de pesos

Recomendación 1: Casa ID 1020 en el barrio La Merced. Precio: 230 millones de pesos. Incluye 2 parqueaderos, 3 baños, estrato 4, 5 habitaciones y un área construida de 250 m².

Recomendación 2: Casa ID 925 en el barrio La Merced. Precio: 330 millones de pesos. Incluye 2 parqueaderos, 3 baños, estrato 4, 5 habitaciones y un área construida de 275 m².

(en el anexo del informe encontrará tres recomendaciones mas que entran en las condiciones requeridas)

* Vivienda 2

Características Vivienda 2: Apartamento en el Sur
Área Construida 300 m²
Parqueaderos 3
Baños 3
Habitaciones 5
Estrato 5 o 6
Zona Sur
Crédito Preaprobado 850 millones de pesos

Recomendación: Apartamento ID 7512 en el barrio Seminario. Precio: 670 millones de pesos. Incluye 3 parqueaderos, 5 baños, estrato 5, 6 habitaciones y un área construida de 300 m².

Recomendación: Apartamento ID 7182 en el barrio Guadalupe. Precio: 730 millones de pesos. Incluye 3 parqueaderos, 8 baños, estrato 5, 5 habitaciones y un área construida de 573 m².

Anexos

Procedimiento para llegar a las recomendaciones anteriormente presentadas

Primer paso

Enunciado

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

Desarrollo

Carga de los datos

#install.packages("devtools") # solo la primera vez
#devtools::install_github("dgonxalex80/paqueteMODELOS", force =TRUE)
library(paqueteMODELOS)
data("vivienda")

Carga de librerías

library(plotly)
library(ggplot2) 
library(knitr)
library(dplyr)
library(treemap)
library(leaflet)

Revisión general de los datos

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…

La información anterior se sintetiza en la siguiente tabla, la cual ofrece una visión panorámica del tipo de conjunto de datos disponible.

Variables Cantidad
Numéricas 9
Categóricas 4
Total 13
Total de registros: 8322

Procesamiento de datos faltantes

A continuación, se detallará la cantidad de datos faltantes por cada variable. Este análisis es relevante, ya que permite evaluar si la base de datos contiene información válida. Además, este conocimiento puede ejercer influencia en las decisiones futuras basadas en el análisis y proporcionar orientación al decidir si es conveniente descartar ciertas variables.

faltantes <- colSums(is.na(vivienda))
knitr::kable(faltantes, caption = "Datos faltantes por variable")
Datos faltantes por variable
x
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

A partir de los datos presentes en esta tabla, se genera el gráfico de barras que se muestra a continuación, el cual proporciona una representación visual significativa.

# porcentaje de datos perdidos para cada variable
porcentaje_perdidos <- sapply(vivienda, function(x) sum(is.na(x)) / length(x) * 100)

# data frame con los porcentajes
df_porcentaje <- data.frame(variable = names(porcentaje_perdidos), porcentaje = porcentaje_perdidos)

# Gráfica de barras
ggplot(df_porcentaje, aes(x = variable, y = porcentaje)) +
  geom_bar(stat = "identity", fill = "dodgerblue") +
  labs(title = "Porcentaje de Datos Perdidos por Variable", x = "Variable", y = "Porcentaje (%)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

  • Tras analizar la gráfica y la tabla anteriores, se observa que las variables “parqueaderos” y “piso” presentan tasas de datos faltantes del 19.3% y 31.7%, respectivamente. En consecuencia, se ha decidido descartar la variable piso, ya que esta no se incluirá en el análisis posterior. Esta elección se fundamenta en la necesidad de evitar una posible pérdida significativa de información si se optara por utilizar únicamente los datos disponibles en esta variable. Eliminar este atributo por completo evitará la necesidad de eliminar un porcentaje equivalente de datos en otras columnas para mantener un análisis coherente y conjunto. Además, se conservará el atributo ‘parqueadero’, ya que debe incluirse en el análisis posterior según los requisitos del caso. Por lo tanto, en este escenario se optará por eliminar los valores faltantes, ya que al utilizar la media podría introducir sesgos considerables en el conjunto de datos, particularmente debido a la naturaleza discreta de los datos.

  • Ademas se observó que las variables “zona”, “estrato”, “areaconst”, “banios”, “habitaciones”, “tipo”, “barrio” y “preciom” presentaron un porcentaje de datos faltantes que se aproxima a cero por ciento. Esto implica que en prácticamente todas las observaciones de la base de datos, estas variables cuentan con información completa . Debido a que el porcentaje de datos faltantes es extremadamente bajo,se ha decidió llevar a cabo la eliminación de estos registros con datos faltantes en las variables mencionadas.

#Eliminaciòn de columna piso
vivienda<- vivienda %>%
  select(-piso)
# Eliminacion de observaciones con datos faltantes 
datos_sin_na <- vivienda[complete.cases(
vivienda$zona ,vivienda$estrato ,vivienda$areaconst ,vivienda$banios ,vivienda$habitaciones ,vivienda$tipo ,vivienda$barrio ,vivienda$preciom, vivienda$parqueaderos), ]

La columna Id se coloca como general

datos_sin_na<-textshape::column_to_rownames(datos_sin_na, loc = 1)
#head(datos_sin_na,5)

Información general de la nueva base de datos

glimpse(datos_sin_na)
## Rows: 6,717
## Columns: 11
## $ zona         <chr> "Zona Oriente", "Zona Oriente", "Zona Oriente", "Zona Sur…
## $ estrato      <dbl> 3, 3, 3, 4, 5, 5, 4, 5, 5, 5, 4, 5, 6, 4, 5, 5, 4, 5, 3, …
## $ preciom      <dbl> 250, 320, 350, 400, 260, 240, 220, 310, 320, 780, 625, 75…
## $ areaconst    <dbl> 70, 120, 220, 280, 90, 87, 52, 137, 150, 380, 355, 237, 9…
## $ parqueaderos <dbl> 1, 1, 2, 3, 1, 1, 2, 2, 2, 2, 3, 2, 2, 1, 4, 2, 2, 2, 1, …
## $ banios       <dbl> 3, 2, 2, 5, 2, 3, 2, 3, 4, 3, 5, 6, 2, 4, 4, 4, 3, 2, 2, …
## $ habitaciones <dbl> 6, 3, 4, 3, 3, 3, 3, 4, 6, 3, 5, 6, 2, 5, 5, 4, 3, 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…

Filtrado según los criterios: casas en la zona norte de la ciudad.

Antes de hacer el filtrado segun Tipo de vivienda: Casa y Zona: Zona norte, se proporciona una visualización clara de cómo se distribuyen los tipos de vivienda según las diferentes zonas, esta información se ha organizado en la siguiente tabla.

kable(table(datos_sin_na$zona, datos_sin_na$tipo))
Apartamento Casa
Zona Centro 10 54
Zona Norte 852 435
Zona Oeste 966 132
Zona Oriente 22 141
Zona Sur 2381 1724

Ya que se tiene una visión general de la distribución del tipo de vivienda segun la zona, se hace el filtrado de interés

# Filtrar las casas en la zona norte
base1 <- datos_sin_na[datos_sin_na$tipo == 'Casa' & datos_sin_na$zona == 'Zona Norte', ]

Primeros 3 registros

# Presentar los primeros 3 registros
head(base1, 3)
##            zona estrato preciom areaconst parqueaderos banios habitaciones tipo
## 1209 Zona Norte       5     320       150            2      4            6 Casa
## 1592 Zona Norte       5     780       380            2      3            3 Casa
## 4460 Zona Norte       4     625       355            3      5            5 Casa
##      barrio  longitud latitud
## 1209  acopi -76.51341 3.47968
## 1592  acopi -76.51674 3.48721
## 4460  acopi -76.53179 3.40590

Información representativa de la Base 1

summary(base1)
##      zona              estrato         preciom         areaconst     
##  Length:435         Min.   :3.000   Min.   :  89.0   Min.   :  30.0  
##  Class :character   1st Qu.:4.000   1st Qu.: 330.0   1st Qu.: 170.5  
##  Mode  :character   Median :5.000   Median : 425.0   Median : 264.5  
##                     Mean   :4.455   Mean   : 479.8   Mean   : 292.7  
##                     3rd Qu.:5.000   3rd Qu.: 582.5   3rd Qu.: 357.0  
##                     Max.   :6.000   Max.   :1940.0   Max.   :1440.0  
##   parqueaderos        banios        habitaciones        tipo          
##  Min.   : 1.000   Min.   : 0.000   Min.   : 0.000   Length:435        
##  1st Qu.: 1.000   1st Qu.: 3.000   1st Qu.: 4.000   Class :character  
##  Median : 2.000   Median : 4.000   Median : 4.000   Mode  :character  
##  Mean   : 2.182   Mean   : 3.782   Mean   : 4.809                     
##  3rd Qu.: 3.000   3rd Qu.: 5.000   3rd Qu.: 5.000                     
##  Max.   :10.000   Max.   :10.000   Max.   :10.000                     
##     barrio             longitud         latitud     
##  Length:435         Min.   :-76.59   Min.   :3.333  
##  Class :character   1st Qu.:-76.53   1st Qu.:3.462  
##  Mode  :character   Median :-76.52   Median :3.473  
##                     Mean   :-76.52   Mean   :3.468  
##                     3rd Qu.:-76.51   3rd Qu.:3.483  
##                     Max.   :-76.48   Max.   :3.496

Mapa de puntos para la Base 1

Para realizar una comparación y analisis efectivo de las casas en la zona norte, es importante tener en cuenta la delimitación de las distintas zonas, especificamente la Zona Norte y la Zona Sur. A continuación, se presenta el mapa oficial de zonificación desarrollado por la Alcaldía de Santiago de Cali:

Mapa por zonas de Cali (Alcaldia santiago de cali)
Mapa por zonas de Cali (Alcaldia santiago de cali)

Ahora se procede a visualizar el mapa generado a partir de las casas existentes o que figuran como existentes en la zona norte. Este mapa ayuda a identificar la distribución y ubicación de las propiedades disponibles en esa área específica.

leaflet() %>% addCircleMarkers(lng=base1$longitud,lat=base1$latitud,radius= 0.2,label = base1$preciom) %>% addTiles()
  • Al analizar las zonas delimitadas en el mapa proporcionado por la Alcaldía y el mapa generado, se destaca que la mayoría de las casas se concentran en la zona norte, lo cual coincide con las expectativas. Sin embargo, también se identifican algunas viviendas ubicadas en otras áreas, lo que sugiere una distribución no uniforme. Esta discrepancia podría explicarse por posibles errores en las coordenadas de los datos. Es posible que algunas ubicaciones estén mal registradas, lo que podría deberse a errores humanos durante la recopilación o procesamiento de la información, o incluso a la falta de actualización de las coordenadas geográficas.

Segundo paso

Enunciado

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.

Desarrollo

  • Correlación entre variables

Primero se muestra la correlació entre las variables

# Calculamos la matriz de correlación para las variables de interés
correlaciones <- cor(base1[,c( 'preciom','areaconst', 'estrato', 'banios', 'habitaciones')], use = "complete.obs")

# Visualización de la matriz de correlación
plot_ly(z = correlaciones, x = colnames(correlaciones), y = colnames(correlaciones), type = "heatmap")

A partir del análisis realizado en el mapa de calor, se han identificado las siguientes correlaciones:

  • Precio y Área Construida: Se observa una correlación significativa de 0.68, lo cual indica una fuerte relación entre estas dos variables. Esta alta correlación sugiere una tendencia lineal clara que se verá reflejada en el gráfico de dispersión.

  • Precio y Estrato: Se detecta una correlación moderada de 0.52 entre el precio y el estrato. Aunque no es tan fuerte como la anterior, esta correlación aún sugiere una tendencia lineal que puede observarse en el gráfico.

  • Precio y Baños: La correlación entre el precio y el número de baños es de 0.50, lo que indica una relación moderada entre estas dos variables. Aunque la correlación no es tan fuerte, sigue siendo relevante y podría reflejarse en un patrón lineal en el gráfico.

  • Precio y Habitaciones: Se registra una correlación más baja de 0.36 entre el precio y el número de habitaciones. Esta correlación más débil sugiere que es menos probable que se observe una tendencia lineal clara en el gráfico.

Además, se observa una correlación alta de 0.6 entre el número de habitaciones y el número de baños. Las demás correlaciones entre variables, excepto con el precio, son menores a 0.5, lo que indica una relación más débil entre estas variables.

Gràficos de Dispersiòn

library(plotly)

scatter_precio_area <- plot_ly(data = base1, x = ~areaconst, y = ~preciom, text = ~zona, mode = "markers", type = "scatter", marker = list(size = 10), name = "Precio vs. Área Construida")

scatter_precio_estrato <- plot_ly(data = base1, x = ~estrato, y = ~preciom, text = ~zona, mode = "markers", type = "scatter", marker = list(size = 10), name = "Precio vs. Estrato")


scatter_precio_banios <- plot_ly(data = base1, x = ~banios, y = ~preciom, text = ~zona, mode = "markers", type = "scatter", marker = list(size = 10), name = "Precio vs. Número de Baños")


scatter_precio_habitaciones <- plot_ly(data = base1, x = ~habitaciones, y = ~preciom, text = ~zona, mode = "markers", type = "scatter", marker = list(size = 10), name = "Precio vs. Numero de Habitaciones")


matriz_correlacion <- cor(base1[c("preciom", "areaconst", "estrato", "banios", "habitaciones")])


heatmap_correlacion <- plot_ly(z = matriz_correlacion, x = colnames(matriz_correlacion), y = colnames(matriz_correlacion), type = "heatmap", name = "Matriz de Correlación")


subplot_graficos <- subplot(
  scatter_precio_area, scatter_precio_estrato, scatter_precio_banios, scatter_precio_habitaciones,
  nrows = 2, margin = 0.05
)


subplot_graficos

A partir de los gráficos de dispersión generados, se pueden destacar las siguientes observaciones:

  • Precio vs Área Construida: Como se esperaba, se puede apreciar una clara tendencia lineal en el gráfico. Esto sugiere que en la zona norte, las casas tienden a aumentar su precio conforme aumenta su área construida.

  • Precio vs Estrato: También se observa una tendencia lineal en este gráfico, aunque no tan marcada como en el caso anterior. La tendencia muestra que, para la zona norte, las casas tienden a tener un precio más alto a medida que aumenta su estrato.

  • Precio vs Número de Baños: En este caso, también se identifica una tendencia lineal leve. El gráfico muestra que, conforme aumenta el número de baños, el precio de las casas tiende a incrementarse en la zona norte.

  • Precio vs Número de Habitaciones: Aunque se puede notar una ligera tendencia en el gráfico, esta no es tan pronunciada como en los casos anteriores. Esto concuerda con la baja correlación entre estas dos variables, como se había anticipado, entonces no necesariamente a mayor numero de habitaciones se va a esperar un mayor precio.

*Usar la variable zona para este ejercicio es innecesario ya que todas las variables se encuentran en la zona norte.

Tercer paso

Enunciado

Estime un modelo de regresión lineal múltiple con las variables del punto anterior (precio = f(área construida, estrato, número de cuartos, número de parqueaderos, número de baños ) ) e interprete los coeficientes si son estadísticamente significativos. Las interpretaciones deber están contextualizadas y discutir si los resultados son lógicos. Adicionalmente interprete el coeficiente R2 y discuta el ajuste del modelo e implicaciones (que podrían hacer para mejorarlo).

Desarrollo

Ajuste del modelo

modelo=lm(preciom ~ areaconst + parqueaderos + banios + habitaciones + estrato, data=base1)

summary(modelo)
## 
## Call:
## lm(formula = preciom ~ areaconst + parqueaderos + banios + habitaciones + 
##     estrato, data = base1)
## 
## 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 ***
## parqueaderos   24.00598    5.86889   4.090 5.14e-05 ***
## banios         18.89938    7.48800   2.524    0.012 *  
## habitaciones    7.64511    5.65873   1.351    0.177    
## estrato        80.63495    9.82632   8.206 2.70e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 155.1 on 429 degrees of freedom
## Multiple R-squared:  0.6041, Adjusted R-squared:  0.5995 
## F-statistic: 130.9 on 5 and 429 DF,  p-value: < 2.2e-16

Análisis de los resultados

R-squared

El valor de R-squared muestra que las variables areaconst, parqueaderos ,banios, habitaciones y estrato, puede explicar el 60% de la variación en el precio de las viviendas respecto a la variacion total, es decir que el otro 40% de las variaciones del precio de las viviendas se debe a otros factores.El valor ajustado de 0.59 y Sugiere que después de ajustar el modelo por el número de variables, el modelo aún explica aproximadamente el 59% de la variabilidad.

F-Statistic

El valor de F es 130.9, lo cual es significativo con un valor de p < 2.2e-16 . Este resultado indica que hay menos de un 0.1% de probabilidad de que ocurra un estadístico F tan grande si la hipótesis nula fuera cierta. Por lo tanto, podemos concluir que el modelo de regresión resulta en una predicción significativamente mejor de el precio de las viviendas que si usáramos el valor promedio de el precio de las viviendas como modelo. En resumen, el modelo de regresión en general predice significativamente bien el precio de las viviendas, aunque podria ser mejorado eliminando varibles que no son tan redundantes.

Parametros

  • La columna “estimate” muestra los coeficientes de regresión, que representan el cambio esperado en la variable de resultado (en este caso, el precio de la vivienda) por cada unidad de cambio en la variable independiente correspondiente, manteniendo todas las demás variables constantes. El intercepto es el valor esperado del precio cuando todas las variables independientes son cero.En este caso, el valor estimado del intercepto es -238.17090. Un valor negativo del intercepto no necesariamente implica un precio negativo de la vivienda. En cambio, representa el precio base teórico de la vivienda cuando todas las variables independientes son cero. En un contexto real, algunas variables, como el área construida, el número de baños, etc., nunca serían cero, lo que hace que esta interpretación literal del intercepto carezca de significado práctico.

  • En relación a los coeficientes de regresión, se observa que todos son considerablemente mayores que cero, lo que sugiere una potencial relación entre cada variable y el precio de la vivienda. Para validar esta relación, se utiliza la prueba t, que evalúa si el valor del coeficiente (p) es significativamente diferente de cero.

Al analizar los valores de p asociados, se observa lo siguiente:

  • Para el área construida, el valor de p es extremadamente bajo (< 2e-16 ***), indicando una probabilidad prácticamente nula de que el coeficiente sea igual a cero. Esto sugiere que el área construida tiene una relación significativa con el precio de la vivienda.

  • Similarmente, para el número de parqueaderos, el valor de p es muy bajo (5.14e-05 ***), lo que también sugiere una relación significativa con el precio de la vivienda.

  • En el caso de los baños, el valor de p es 0.012 *, aunque mayor que los anteriores, sigue siendo lo suficientemente bajo como para indicar una relación significativa con el precio, aunque posiblemente menor que las variables anteriores.

  • Respecto al estrato, el valor de p sugiere una relación significativa con el precio de la vivienda.

  • Para el número de habitaciones, el valor de p es más alto (0.177), lo que indica una menor significancia estadística. Esto sugiere que, si bien puede haber alguna relación entre este factor y el precio de la vivienda, no es tan fuerte como las otras variables.

Conlusión de el modelo implementado

En términos generales, el modelo muestra un buen ajuste a los datos, con la mayoría de las variables demostrando una relación significativa con el precio de la vivienda. Sin embargo, hay una variable que no parece tener una influencia significativa en el precio. Aunque el modelo es considerablemente sólido, aún queda un porcentaje considerable de la variación en el precio de la vivienda que no está explicada. Esto sugiere que hay otros factores que podrían contribuir a la variabilidad del precio y que no están siendo considerados en el modelo actual.

Cuarto Paso

Enunciado

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

Desarrollo

Validacion de supuestos de forma gráfica

par(mfrow=c(2,2))
plot(modelo)

Linealidad

  • Respecto a la gráfica “Residuales vs Valores Ajustados” muestra que los residuales se distribuyen de manera aleatoria alrededor de la línea horizontal de cero, lo cual es un indicador de que la relación entre las variables predictoras y la respuesta puede ser adecuadamente capturada por un modelo lineal.

Independencia de los errores

  • En el gráfico Q-Q, se observa que los residuos se ajustan levemente bien a una distribución normal en la parte central, indicando que los residuos en esa región son aproximadamente normales. Sin embargo, en las colas, especialmente en la derecha, los residuos se desvían de la línea, sugiriendo la presencia de valores atípicos o extremos. Esta discrepancia en las colas podría indicar un posible sesgo en los datos, donde los valores extremos no se modelan adecuadamente con una distribución normal, posiblemente debido a la influencia de factores no considerados en el modelo de precios de las viviendas.En general no se puede decir con certeza que se ajusten a una distribución normal.

Homocedasticidad

  • En el grafico Scale-Location se observa una tendencia creciente en la dispersión de los residuos a medida que aumentan los valores ajustados, lo que sugiere la presencia de heterocedasticidad, una violación del supuesto de homocedasticidad. La línea roja, que representa la relación entre los residuos estandarizados y los valores ajustados, tiene una pendiente positiva, indicando que los residuos más grandes tienden a ocurrir en valores ajustados más altos. Además, se identifican valores atípicos, que están notablemente alejados del resto, sugiriendo que ciertos valores no se ajustan bien al modelo.

Pruebas de hipotesis

Supuesto de normalidad de los errores

resmod = modelo$residuals
shapiro.test(resmod)
## 
##  Shapiro-Wilk normality test
## 
## data:  resmod
## W = 0.85246, p-value < 2.2e-16
  • El p-valor resultante es de 2.2e-16, lo que sigfnifica que es menor al nivel de significancia (0.05), es decir se rechaza la hipotesis, los residuos del modelo planteado no tienen una distribucion normal.

Supuesto de independencia de los errores

library(lmtest)

dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 1.7615, p-value = 0.005472
## alternative hypothesis: true autocorrelation is greater than 0
  • El p-valor resultante es de 0.005, lo que sigfnifica que es menor al nivel de significancia (0.05), es decir se rechaza la hipotesis, los errores no son independientes.

Supuesto de varianza constante

gqtest(modelo)
## 
##  Goldfeld-Quandt test
## 
## data:  modelo
## GQ = 2.2522, df1 = 212, df2 = 211, p-value = 2.995e-09
## alternative hypothesis: variance increases from segment 1 to 2

El p-valor resultante es de 2.995e-09, lo que sigfnifica que es menor al nivel de significancia (0.05), es decir se rechaza la hipotesis, la varianza de los errores no es constante.

Sugerencias

Es recomendable evaluar la eliminación de variables como habitaciones o baños, ya que pueden no ser relevantes para el análisis y podrían simplificar el modelo sin perder precisión en las predicciones. Además, la transformación logarítmica de algunas variables podría mejorar la distribución de los datos y la relación lineal con la variable objetivo. Es importante identificar y abordar los valores atípicos que podrían influir significativamente en los resultados del análisis, ya que estos pueden distorsionar las estimaciones y afectar la interpretación de los resultados.

Quinto Paso

Enunciado

Con el modelo identificado debe predecir el precio de la vivienda con las características de la primera solicitud.

Desarrollo

Características Vivienda 1
Tipo Casa
Área construida 200
Parqueaderos 1
Baños 2
Habitaciones 4
Estrato 4 o 5
Zona Norte
Crédito preaprobado 350 millones

Prediccion de una casa en estrato 4 con las caracteristicas anteriores

predict(modelo,list(areaconst = 200,parqueaderos = 1, banios = 2,
                      habitaciones = 4, estrato = 4)) 
##       1 
## 312.101

Prediccion de una casa en estrato 5 con las caracteristicas anteriores

predict(modelo,list(areaconst = 200,parqueaderos = 1, banios = 2,
                      habitaciones = 4, estrato = 5)) 
##        1 
## 392.7359

Según los requerimientos, la prediccion que mejor se ajusta al crédito aprobado de 350 millones para la vivienda 1 es el caso #1, el cual contiene el estrato 4 con una predicción de precio de 312.101.000 millones de pesos.

Sexto Paso

Enunciado

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.

Desarrollo

Base de datos con requerimientos de la solicitud de la vivienda 1

basecasa1=subset(base1, areaconst>=200 & preciom<=350 & habitaciones>=4 & estrato==4 & parqueaderos>=1 & banios >= 2)
basecasa1 = head(basecasa1,5)
basecasa1
##            zona estrato preciom areaconst parqueaderos banios habitaciones tipo
## 4458 Zona Norte       4     315       270            2      4            4 Casa
## 3352 Zona Norte       4     335       300            3      4            4 Casa
## 937  Zona Norte       4     350       280            2      3            4 Casa
## 952  Zona Norte       4     330       275            2      3            5 Casa
## 1020 Zona Norte       4     230       250            2      3            5 Casa
##         barrio  longitud latitud
## 4458 el bosque -76.53176 3.48780
## 3352 el bosque -76.52600 3.43400
## 937  la merced -76.50603 3.46643
## 952  la merced -76.50647 3.47516
## 1020 la merced -76.50799 3.47424

Mapa de las cinco ofertas potenciales

leaflet() %>% addCircleMarkers(lng=basecasa1$longitud,lat=basecasa1$latitud,radius= 5,label = basecasa1$preciom) %>% addTiles()
  • Se reccomienda la casa con el id 1020 tiene un precio de 230 millones, 2 parqueaderos, 3 baños, 5 habitaciones y su area contruida es 250 metros cuadrados, ubicandose tambien en el barrio la merced, un inmueble ubicado al norte de la ciudad que se ajusta a los requerimientos iniciales.

Septimo Paso

Enunciado

Realice los pasos del 1 al 6. Para la segunda solicitud que tiene un crédito pre-aprobado por valor de $850 millones.

Desarrollo

Vivienda 2

Características Vivienda 2
Tipo Apartamento
Área construida 300
Parqueaderos 3
Baños 3
Habitaciones 5
Estrato 5 o 6
Zona Sur
Crédito preaprobado 850 millones

Primer paso

Enunciado

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

Desarrollo

base2=data.frame(subset(datos_sin_na, tipo=="Apartamento" & zona=="Zona Sur"))
head(base2,3)
##          zona estrato preciom areaconst parqueaderos banios habitaciones
## 5098 Zona Sur       4     290        96            1      2            3
## 698  Zona Sur       3      78        40            1      1            2
## 8199 Zona Sur       6     875       194            2      5            3
##             tipo     barrio  longitud latitud
## 5098 Apartamento      acopi -76.53464 3.44987
## 698  Apartamento aguablanca -76.50100 3.40000
## 8199 Apartamento  aguacatal -76.55700 3.45900

Visión general

kable(table(datos_sin_na$zona, datos_sin_na$tipo))
Apartamento Casa
Zona Centro 10 54
Zona Norte 852 435
Zona Oeste 966 132
Zona Oriente 22 141
Zona Sur 2381 1724

Mapa Generado

leaflet() %>% addCircleMarkers(lng=base2$longitud,lat=base2$latitud,radius= 0.2,label = base2$preciom) %>% addTiles()
  • Al analizar las zonas delimitadas en el mapa proporcionado por la Alcaldía y el mapa generado, se destaca que la mayoría de las casas se concentran en la zona Sur, lo cual coincide con las expectativas. Sin embargo, también se identifican algunas viviendas ubicadas en otras áreas, lo que sugiere una distribución no uniforme. Esta discrepancia podría explicarse por posibles errores en las coordenadas de los datos. Es posible que algunas ubicaciones estén mal registradas, lo que podría deberse a errores humanos durante la recopilación o procesamiento de la información, o incluso a la falta de actualización de las coordenadas geográficas.

Segundo paso

Enunciado

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

Desarrollo

Correlación entre variables

Primero se muestra la correlació entre las variables

# Calculamos la matriz de correlación para las variables de interés
correlaciones <- cor(base2[,c( 'preciom','areaconst', 'estrato', 'banios', 'habitaciones')], use = "complete.obs")

# Visualización de la matriz de correlación
plot_ly(z = correlaciones, x = colnames(correlaciones), y = colnames(correlaciones), type = "heatmap")

A partir del análisis realizado en el mapa de calor, se han identificado las siguientes correlaciones:

  • Precio y Área Construida: Se observa una correlación significativa de 0.74, lo cual indica una fuerte relación entre estas dos variables. Esta alta correlación sugiere una tendencia lineal clara que se verá reflejada en el gráfico de dispersión.

  • Precio y Estrato: Se detecta una correlación alta de 0.64 entre el precio y el estrato. Aunque no es tan fuerte como la anterior, esta correlación aún sugiere una tendencia lineal que puede observarse en el gráfico.

  • Precio y Baños: La correlación entre el precio y el número de baños es de 0.71, lo que indica una relación bastante significativa entre estas dos variables, lo que sugiere una relación lineal fuerte.

  • Precio y Habitaciones: Se registra una correlación más baja de 0.29 entre el precio y el número de habitaciones. Esta correlación más débil sugiere que es menos probable que se observe una tendencia lineal clara en el gráfico.

Gráficos de dispersión

library(plotly)

scatter_precio_area <- plot_ly(data = base2, x = ~areaconst, y = ~preciom, text = ~zona, mode = "markers", type = "scatter", marker = list(size = 10), name = "Precio vs. Área Construida")

scatter_precio_estrato <- plot_ly(data = base2, x = ~estrato, y = ~preciom, text = ~zona, mode = "markers", type = "scatter", marker = list(size = 10), name = "Precio vs. Estrato")


scatter_precio_banios <- plot_ly(data = base2, x = ~banios, y = ~preciom, text = ~zona, mode = "markers", type = "scatter", marker = list(size = 10), name = "Precio vs. Número de Baños")


scatter_precio_habitaciones <- plot_ly(data = base2, x = ~habitaciones, y = ~preciom, text = ~zona, mode = "markers", type = "scatter", marker = list(size = 10), name = "Precio vs. Numero de Habitaciones")


matriz_correlacion <- cor(base2[c("preciom", "areaconst", "estrato", "banios", "habitaciones")])


heatmap_correlacion <- plot_ly(z = matriz_correlacion, x = colnames(matriz_correlacion), y = colnames(matriz_correlacion), type = "heatmap", name = "Matriz de Correlación")


subplot_graficos <- subplot(
  scatter_precio_area, scatter_precio_estrato, scatter_precio_banios, scatter_precio_habitaciones,
  nrows = 2, margin = 0.05
)


subplot_graficos

A partir de los gráficos de dispersión generados, se pueden destacar las siguientes observaciones:

  • Precio vs Área Construida: Como se esperaba, se puede apreciar una clara tendencia lineal en el gráfico, aunque tambien se observan un para de valores atipicos. Esto sugiere que en la zona sur, las casas tienden a aumentar su precio conforme aumenta su área construida.

  • Precio vs Estrato: También se observa una tendencia lineal en este gráfico, aunque no tan marcada como en el caso anterior. La tendencia muestra que, para la zona Sur, las casas tienden a tener un precio más alto a medida que aumenta su estrato.

  • Precio vs Número de Baños: En este caso, también se identifica una tendencia lineal leve. El gráfico muestra que, conforme aumenta el número de baños, el precio de las casas tiende a incrementarse en la zona Sur.

Precio vs Número de Habitaciones: Aunque se puede notar una ligera tendencia en el gráfico, esta no es tan pronunciada como en los casos anteriores. Esto concuerda con la baja correlación entre estas dos variables, como se había anticipado, entonces no necesariamente a mayor numero de habitaciones se va a esperar un mayor precio.

*Usar la variable zona para este ejercicio es innecesario ya que todas las variables se encuentran en la zona norte.

Tercer paso

Enunciado

Estime un modelo de regresión lineal múltiple con las variables del punto anterior (precio = f(área construida, estrato, número de cuartos, número de parqueaderos, número de baños ) ) e interprete los coeficientes si son estadísticamente significativos. Las interpretaciones deber están contextualizadas y discutir si los resultados son lógicos. Adicionalmente interprete el coeficiente R2 y discuta el ajuste del modelo e implicaciones (que podrían hacer para mejorarlo).

Desarrollo

Ajuste del modelo

modelo1=lm(preciom ~ areaconst + parqueaderos + banios + habitaciones + estrato, data=base2)

summary(modelo1)
## 
## Call:
## lm(formula = preciom ~ areaconst + parqueaderos + banios + habitaciones + 
##     estrato, data = base2)
## 
## 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 ***
## parqueaderos   72.91468    3.95797  18.422  < 2e-16 ***
## banios         50.69675    3.39637  14.927  < 2e-16 ***
## habitaciones  -24.83693    3.89229  -6.381 2.11e-10 ***
## estrato        60.89709    3.08408  19.746  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 98.02 on 2375 degrees of freedom
## Multiple R-squared:  0.7485, Adjusted R-squared:  0.748 
## F-statistic:  1414 on 5 and 2375 DF,  p-value: < 2.2e-16

Análisis de resultados

R-squared

El valor de R-squared muestra que las variables areaconst, parqueaderos ,banios, habitaciones y estrato, puede explicar el 75% de la variación en el precio de las viviendas respecto a la variacion total, es decir que el otro 25% de las variaciones del precio de las viviendas se debe a otros factores.El valor ajustado de 0.74 sugiere que después de ajustar el modelo por el número de variables, el modelo aún explica aproximadamente el 74% de la variabilidad.

F-Statistic

El valor de F es 1414, lo cual es significativo con un valor de p < 2.2e-16 . Este resultado indica que hay menos de un 0.1% de probabilidad de que ocurra un estadístico F tan grande si la hipótesis nula fuera cierta. Por lo tanto, podemos concluir que el modelo de regresión resulta en una predicción significativamente mejor de el precio de las viviendas que si usáramos el valor promedio de el precio de las viviendas como modelo. En resumen, el modelo de regresión en general predice significativamente bien el precio de las viviendas.

Parámetros

  • La columna “estimate” muestra los coeficientes de regresión, que representan el cambio esperado en la variable de resultado (en este caso, el precio de la vivienda) por cada unidad de cambio en la variable independiente correspondiente, manteniendo todas las demás variables constantes. El intercepto es el valor esperado del precio cuando todas las variables independientes son cero.En este caso, el valor estimado del intercepto es -261.62501. Un valor negativo del intercepto no necesariamente implica un precio negativo de la vivienda. En cambio, representa el precio base teórico de la vivienda cuando todas las variables independientes son cero. En un contexto real, algunas variables, como el área construida, el número de baños, etc., nunca serían cero, lo que hace que esta interpretación literal del intercepto carezca de significado práctico.

  • En relación a los coeficientes de regresión, se observa que todos son considerablemente mayores o menores que cero, lo que sugiere una potencial relación entre cada variable y el precio de la vivienda. Para validar esta relación, se utiliza la prueba t, que evalúa si el valor del coeficiente (p) es significativamente diferente de cero.

Al analizar los valores de p asociados, se observa lo siguiente:

  • Para el área construida, Número de parqueaderos , Baños y Estrato el p-value es extremadamente bajo (< 2e-16 ***), indicando una probabilidad prácticamente nula de que el coeficiente sea igual a cero. Esto sugiere que estas variables tienen una relación significativa con el precio de la vivienda.

  • Para el número de habitaciones, el p-value es más grande(2.11e-10 ***), lo que indica una menor significancia estadística. Esto sugiere que, si bien puede haber alguna relación entre este factor y el precio de la vivienda, no es tan fuerte como las otras variables.

Conlusión de el modelo implementado

En términos generales, el modelo muestra un buen ajuste a los datos, con la mayoría de las variables demostrando una relación significativa con el precio de la vivienda. (Este modelo de vivienda 2 o para apartamentos ees mucho mejor que el modelo que se implemento en la primera parte de este informe) Sin embargo, hay una variable que no parece tener una influencia significativa en el precio. Aunque el modelo es considerablemente sólido, aún queda un porcentaje considerable de la variación en el precio de la vivienda que no está explicada. Esto sugiere que hay otros factores que podrían contribuir a la variabilidad del precio y que no están siendo considerados en el modelo actual.

Cuarto paso

Enunciado

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

Desarrollo

Validacion de supuestos de forma gráfica

par(mfrow=c(2,2))
plot(modelo1)

Linealidad

Respecto a la gráfica “Residuales vs Valores Ajustados” muestra que los residuales se distribuyen de manera aleatoria alrededor de la línea horizontal de cero, lo cual es un indicador de que la relación entre las variables predictoras y la respuesta puede ser adecuadamente capturada por un modelo lineal.

Independencia de los errores

En el gráfico Q-Q, se observa que los residuos se ajustan levemente bien a una distribución normal en la parte central, indicando que los residuos en esa región son aproximadamente normales. Sin embargo, en las colas, especialmente en la derecha, los residuos se desvían de la línea, sugiriendo la presencia de valores atípicos o extremos. Esta discrepancia en las colas podría indicar un posible sesgo en los datos, donde los valores extremos no se modelan adecuadamente con una distribución normal, posiblemente debido a la influencia de factores no considerados en el modelo de precios de las viviendas.En general no se puede decir con certeza que se ajusten a una distribución normal.

Homocedasticidad

En el grafico Scale-Location se observa una tendencia creciente leve en la dispersión de los residuos a medida que aumentan los valores ajustados, lo que podría sugerir la presencia de heterocedasticidad, una violación del supuesto de homocedasticidad. La línea roja, que representa la relación entre los residuos estandarizados y los valores ajustados, tiene una leve pendiente positiva, indicando que los residuos más grandes tienden a ocurrir en valores ajustados más altos. Además, se identifican valores atípicos, que están notablemente alejados del resto, sugiriendo que ciertos valores no se ajustan bien al modelo.

Pruebas de hipotesis

Supuesto de normalidad de los errores

resmod = modelo1$residuals
shapiro.test(resmod)
## 
##  Shapiro-Wilk normality test
## 
## data:  resmod
## W = 0.79118, p-value < 2.2e-16
  • El p-valor resultante es de 2.2e-16, lo que sigfnifica que es menor al nivel de significancia (0.05), es decir se rechaza la hipotesis, los residuos del modelo planteado no tienen una distribucion normal.

Supuesto de independencia de los errores

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

El p-valor resultante es de 2.2e-16, lo que sigfnifica que es menor al nivel de significancia (0.05), es decir se rechaza la hipotesis, los errores no son independientes.

Supuesto de varianza constante

gqtest(modelo1)
## 
##  Goldfeld-Quandt test
## 
## data:  modelo1
## GQ = 0.9513, df1 = 1185, df2 = 1184, p-value = 0.8048
## alternative hypothesis: variance increases from segment 1 to 2

El p-valor resultante es de 0.8048, lo que sigfnifica que es mayor al nivel de significancia (0.05), es decir que acepta la hipotesis, la varianza de los errores es constante.

Sugerencias

Es recomendable evaluar la eliminación de la variable habitaciones, ya que puede no ser relevantes para el análisis y podrían simplificar el modelo sin perder precisión en las predicciones. Además, la transformación logarítmica de algunas variables podría mejorar la distribución de los datos y la relación lineal con la variable objetivo. Es importante identificar y abordar los valores atípicos que podrían influir significativamente en los resultados del análisis, ya que estos pueden distorsionar las estimaciones y afectar la interpretación de los resultados.

Quinto paso

Enunciado

Con el modelo identificado debe predecir el precio de la vivienda con las características de la primera solicitud.

Desarrollo

Características Vivienda 2
Tipo Apartamento
Área construida 300
Parqueaderos 3
Baños 3
Habitaciones 5
Estrato 5 o 6
Zona Sur
Crédito preaprobado 850 millones

Prediccion de un apartamento en estrato 5 con las caracteristicas anteriores

predict(modelo1,list(areaconst = 300,parqueaderos = 3, banios = 3,
                      habitaciones = 5, estrato = 5))
##        1 
## 675.0247

Prediccion de un apartamento en estrato 6 con las caracteristicas anteriores

predict(modelo1,list(areaconst = 300,parqueaderos = 3, banios = 3,
                      habitaciones = 5, estrato = 6)) 
##        1 
## 735.9218
  • Segun los requerimientos, las dos predicciones se ajustan al crédito aprobado de 850 millones para la vivienda 2, el cual contiene el estrato 5 con una predicción de precio de 675.024.700 millones de pesos, y el estrato 6 con una predicción de precio de 735.921.800 millones de pesos.

Sexto paso

Enunciado

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.

Desarrollo

Base de datos con requerimientos de la solicitud de la vivienda 2

baseapartamento1=subset(base2, areaconst>=300 & preciom<=850 & habitaciones>=5 & estrato>=5 & parqueaderos>=3 & banios >= 3)
baseapartamento1 = head(baseapartamento1,5)
baseapartamento1
##          zona estrato preciom areaconst parqueaderos banios habitaciones
## 7182 Zona Sur       5     730       573            3      8            5
## 7512 Zona Sur       5     670       300            3      5            6
##             tipo    barrio longitud latitud
## 7182 Apartamento guadalupe  -76.548   3.408
## 7512 Apartamento seminario  -76.550   3.409

Mapa de las ofertas potenciales

leaflet() %>% addCircleMarkers(lng=baseapartamento1$longitud,lat=baseapartamento1$latitud,radius= 5,label = baseapartamento1$preciom) %>% addTiles()
  • Se recomienda el apartamento con el id 7512, ya que tiene un precio de 670 millones, 3 parqueaderos, 5 baños, 6 habitaciones y su area contruida es 300 metros cuadrados, ubicandose tambien en el barrio seminario, un inmueble ubicado al sur de la ciudad que se ajusta a los requerimientos iniciales.