## id zona piso estrato preciom areaconst parqueaderos banios
## 1 1147 Zona Oriente NA 3 250 70 1 3
## 2 1169 Zona Oriente NA 3 320 120 1 2
## 3 1350 Zona Oriente NA 3 350 220 2 2
## 4 5992 Zona Sur 2 4 400 280 3 5
## 5 1212 Zona Norte 1 5 260 90 1 2
## 6 1724 Zona Norte 1 5 240 87 1 3
## habitaciones tipo barrio longitud latitud
## 1 6 Casa 20 de julio -76.51168 3.43382
## 2 3 Casa 20 de julio -76.51237 3.43369
## 3 4 Casa 20 de julio -76.51537 3.43566
## 4 3 Casa 3 de julio -76.54000 3.43500
## 5 3 Apartamento acopi -76.51350 3.45891
## 6 3 Apartamento acopi -76.51700 3.36971
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## 1 5098 Zona Sur 5 4 290 96 1 2 3
## 2 698 Zona Sur 2 3 78 40 1 1 2
## 3 8199 Zona Sur NA 6 875 194 2 5 3
## tipo barrio longitud latitud
## 1 Apartamento acopi -76.53464 3.44987
## 2 Apartamento aguablanca -76.50100 3.40000
## 3 Apartamento aguacatal -76.55700 3.45900
Para la revisión de ubicación se genera un mapa con la ubicación de los predios filtrados en la Zona Sur de Cali.
## Reading layer `Comunas' from data source
## `C:\Users\lcmar\OneDrive - PUJ Cali\PRIMER SEMESTRE_2024-II\METODOS Y SIMULACION\SHPCALI'
## using driver `ESRI Shapefile'
## Simple feature collection with 22 features and 4 fields
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: 1054753 ymin: 860192.1 xmax: 1068492 ymax: 879441.5
## Projected CRS: MAGNA-SIRGAS / Cali urban grid
## $title
## [1] "Ubicación de Casas en la Zona Sur de Cali"
##
## attr(,"class")
## [1] "labels"
Cantidad de registros corresondientes a Zona Sur, de acuerdo con la variable Zona:
## [1] 2787
Resumen de Estadísticas descriptivas base de datos filtrada por Zona Sur:
## id zona piso estrato
## Min. : 3 Length:2787 Min. : 1.000 Min. :3.00
## 1st Qu.:2292 Class :character 1st Qu.: 2.000 1st Qu.:4.00
## Median :4004 Mode :character Median : 4.000 Median :5.00
## Mean :4131 Mean : 4.469 Mean :4.63
## 3rd Qu.:5876 3rd Qu.: 6.000 3rd Qu.:5.00
## Max. :8302 Max. :12.000 Max. :6.00
## NA's :622
## preciom areaconst parqueaderos banios
## Min. : 75.0 Min. : 40.00 Min. : 1.000 Min. :0.000
## 1st Qu.: 175.0 1st Qu.: 65.00 1st Qu.: 1.000 1st Qu.:2.000
## Median : 245.0 Median : 85.00 Median : 1.000 Median :2.000
## Mean : 297.3 Mean : 97.47 Mean : 1.415 Mean :2.488
## 3rd Qu.: 335.0 3rd Qu.:110.00 3rd Qu.: 2.000 3rd Qu.:3.000
## Max. :1750.0 Max. :932.00 Max. :10.000 Max. :8.000
## NA's :406
## habitaciones tipo barrio longitud
## Min. :0.000 Length:2787 Length:2787 Min. :-76.57
## 1st Qu.:3.000 Class :character Class :character 1st Qu.:-76.54
## Median :3.000 Mode :character Mode :character Median :-76.53
## Mean :2.966 Mean :-76.53
## 3rd Qu.:3.000 3rd Qu.:-76.52
## Max. :6.000 Max. :-76.46
##
## latitud
## Min. :3.334
## 1st Qu.:3.370
## Median :3.383
## Mean :3.390
## 3rd Qu.:3.406
## Max. :3.497
##
Evidenciamos que existen registros ubicados fuera de la zona esperada.
Los resultados del análisis indican que: - La mayoría de los predios están ubicados en la zona esperada, pero algunos registros parecen estar fuera de los límites geográficos definidos para la zona Sur. - Posibles razones de estos valores fuera de la zona: 1. Errores en la clasificación de la zona: Algunas viviendas pueden estar mal etiquetadas en la base de datos. 2. Errores en las coordenadas geográficas: Si las coordenadas fueron registradas incorrectamente, los puntos pueden aparecer en zonas incorrectas. 3. Definición flexible de la Zona Norte: Diferentes fuentes pueden tener delimitaciones distintas para esta zona. - Recomendación: - Revisar y corregir manualmente los registros con coordenadas fuera del área esperada. - Comparar con mapas oficiales de zonificación de Cali.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.334 3.370 3.383 3.390 3.406 3.497
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -76.57 -76.54 -76.53 -76.53 -76.52 -76.46
Como la zona en la cual centramos el analsis corresponde a la zona Sur a partir de la organización de los datos vamos a establecer en que latitud mínima - máxima y logitud mínima - máxima donde se encuentran los datos correspondientes a zona sur y comparamos con mapas oficiales de Cali. De esta forma establecemos los datos de los predios que se encuentran fuera de la zona Sur.
## Límites de latitud:
## Percentil 20% (latitud mínima): 3.35961
## Percentil 90% (latitud máxima): 3.43114
## Percentil 20% (longitud mínima): -76.54722
## Percentil 90% (longitud máxima): -76.51647
# Cargar las librerías necesarias
library(ggplot2)
library(sf)
library(dplyr)
f_dentro_zona <- df_base1%>%
filter(latitud >= 3.30 & latitud <= 3.435 & longitud >= -76.545 & longitud <= -76.516)
df_dentro_zona_clean <- f_dentro_zona %>%
filter(!is.na(longitud) & !is.na(latitud))
# Convertir df_fuera_zona_clean en un objeto espacial (sf)
data_sf_fuera <- st_as_sf(df_dentro_zona_clean, coords = c('longitud', 'latitud'), crs = 4326)
# Cargar el shapefile de los límites de Cali
limites_cali <- st_read('C:/Users/lcmar/OneDrive - PUJ Cali/PRIMER SEMESTRE_2024-II/METODOS Y SIMULACION/SHPCALI')
## Reading layer `Comunas' from data source
## `C:\Users\lcmar\OneDrive - PUJ Cali\PRIMER SEMESTRE_2024-II\METODOS Y SIMULACION\SHPCALI'
## using driver `ESRI Shapefile'
## Simple feature collection with 22 features and 4 fields
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: 1054753 ymin: 860192.1 xmax: 1068492 ymax: 879441.5
## Projected CRS: MAGNA-SIRGAS / Cali urban grid
# Graficar los puntos fuera de la zona esperada
ggplot() +
# Límites de Cali
geom_sf(data = limites_cali, fill = NA, color = "black") +
# Puntos fuera de la zona esperada
geom_sf(data = data_sf_fuera, aes(color = preciom), size = 2, alpha = 0.7) + # Puntos fuera de la zona
scale_color_gradientn(colors = c("blue", "green", "yellow", "orange", "red")) + # Gradiente de colores para el precio
theme_minimal() +
# Personalización estética
theme(legend.position = "bottom", # Mover la leyenda
plot.title = element_text(hjust = 0.5), # Centrar el título
axis.title = element_blank(), # Eliminar títulos de los ejes
axis.text = element_blank(), # Eliminar etiquetas de los ejes
axis.ticks = element_blank(), # Eliminar marcas de los ejes
panel.grid = element_blank()) # Eliminar cuadrícula
# Título del mapa
labs(title = "Ubicación de Predios Fuera de la Zona Sur de Cali")
## $title
## [1] "Ubicación de Predios Fuera de la Zona Sur de Cali"
##
## attr(,"class")
## [1] "labels"
Las variables piso y parqueaderos presentan la mayor cantidad de datos faltantes. Las demás variables tienen valores completos.
## [1] 2057
## id zona piso estrato
## Min. :1428 Length:2057 Min. : 1.000 Min. :3.000
## 1st Qu.:2455 Class :character 1st Qu.: 2.000 1st Qu.:4.000
## Median :3820 Mode :character Median : 4.000 Median :5.000
## Mean :3907 Mean : 4.521 Mean :4.712
## 3rd Qu.:5351 3rd Qu.: 6.000 3rd Qu.:5.000
## Max. :6838 Max. :12.000 Max. :6.000
## NA's :447
## preciom areaconst parqueaderos banios
## Min. : 75 Min. : 40.0 Min. : 1.000 Min. :0.000
## 1st Qu.: 180 1st Qu.: 68.0 1st Qu.: 1.000 1st Qu.:2.000
## Median : 255 Median : 86.0 Median : 1.000 Median :2.000
## Mean : 308 Mean : 98.7 Mean : 1.431 Mean :2.514
## 3rd Qu.: 347 3rd Qu.:110.0 3rd Qu.: 2.000 3rd Qu.:3.000
## Max. :1750 Max. :932.0 Max. :10.000 Max. :7.000
## NA's :280
## habitaciones tipo barrio longitud
## Min. :0.000 Length:2057 Length:2057 Min. :-76.55
## 1st Qu.:3.000 Class :character Class :character 1st Qu.:-76.54
## Median :3.000 Mode :character Mode :character Median :-76.53
## Mean :2.967 Mean :-76.53
## 3rd Qu.:3.000 3rd Qu.:-76.52
## Max. :6.000 Max. :-76.52
##
## latitud
## Min. :3.334
## 1st Qu.:3.368
## Median :3.378
## Mean :3.380
## 3rd Qu.:3.394
## Max. :3.435
##
piso: 447 valores faltantes (21.7% de los datos)parqueaderos: 280 valores faltantes (13.6% de los
datos).## id zona piso estrato preciom areaconst
## 0 0 0 0 0 0
## parqueaderos banios habitaciones tipo barrio longitud
## 0 0 0 0 0 0
## latitud
## 0
Para garantizar la calidad de los datos antes de aplicar modelos de predicción, se implementaron estrategias de imputación en las variables con valores faltantes:
piso: Se reemplazaron los valores
faltantes con la mediana (4 pisos), dado que esta
medida de tendencia central es menos sensible a valores extremos y
representa mejor la distribución de los datos.parqueaderos: Se reemplazaron los
valores faltantes con 0, lo que indica que la vivienda
no cuenta con parqueadero. dado que en este caso estamos haciendo
referencia a tipo de vivienda = apartamentos y en la zona podemos
evidenciar viviendas de areas menores, lo cual puede corresponder
apartamentos que no cuenten con parqueadero.A partir de los gráficos, podemos analizar distintos elementos clave de las variables Precio (preciom), Área Construida (areaconst), Parqueaderos y Baños.
Se observa una distribución asimétrica a la derecha (sesgada positivamente). Hay una concentración de valores bajos, con la mayoría de las viviendas por debajo de los 500 millones. Existen algunos valores extremos que superan los 1500 millones, lo cual podría indicar posibles valores atípicos. La transformación logarítmica permitiría normalizar los datos.
También presenta una distribución asimétrica positiva. La mayoría de las viviendas tienen menos de 250 m² de área construida. Hay pocos casos con áreas superiores a 750 m², lo que sugiere valores atípicos.
La distribución muestra que la mayoría de las viviendas tienen entre 0 y 1 parqueaderos. Pocas viviendas tienen hasta 10 parqueaderos, lo que indica valores inusuales.
Se observa una distribución relativamente simétrica, con un pico en 2 y 3 baños. Algunos registros con hasta 7 baños, lo cual es inusual en viviendas estándar.
Tratamiento de Valores Atípicos
Método: Detección con Rango Intercuartil (IQR) Para detectar valores atípicos, aplicaremos la regla del Rango Intercuartil (IQR):
Transformación de Variables
Dado que el precio y el área construida tienen sesgo a la derecha, aplicaremos transformación logarítmica, para reducir la asimetría y mejorar la linealidad en el modelo de regresión.
Convertimos la variable estrato en una variable categórica (factor). Esto es importante porque en R, si estrato se mantiene como un número entero, el modelo lo trataría como una variable continua en lugar de una variable de clasificación.
| log_preciom | log_areaconst | banios | habitaciones | |
|---|---|---|---|---|
| log_preciom | 1.00 | 0.83 | 0.63 | 0.35 |
| log_areaconst | 0.83 | 1.00 | 0.69 | 0.49 |
| banios | 0.63 | 0.69 | 1.00 | 0.47 |
| habitaciones | 0.35 | 0.49 | 0.47 | 1.00 |
Estimación del modelo de regresión lineal múltiple
##
## Call:
## lm(formula = log_preciom ~ log_areaconst + parqueaderos + banios +
## habitaciones + estrato, data = df_dentro_zona_clean)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.8700 -0.1043 0.0095 0.1178 0.8273
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.744903 0.091812 19.005 < 2e-16 ***
## log_areaconst 0.751812 0.024296 30.944 < 2e-16 ***
## parqueaderos 0.096658 0.008363 11.558 < 2e-16 ***
## banios 0.022279 0.008484 2.626 0.00871 **
## habitaciones -0.022018 0.008723 -2.524 0.01168 *
## estrato4 0.239307 0.019601 12.209 < 2e-16 ***
## estrato5 0.370265 0.020701 17.887 < 2e-16 ***
## estrato6 0.550608 0.025209 21.841 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1756 on 1832 degrees of freedom
## Multiple R-squared: 0.7981, Adjusted R-squared: 0.7973
## F-statistic: 1035 on 7 and 1832 DF, p-value: < 2.2e-16
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | 1.745 | 0.092 | 19.005 | 0.000 |
| log_areaconst | 0.752 | 0.024 | 30.944 | 0.000 |
| parqueaderos | 0.097 | 0.008 | 11.558 | 0.000 |
| banios | 0.022 | 0.008 | 2.626 | 0.009 |
| habitaciones | -0.022 | 0.009 | -2.524 | 0.012 |
| estrato4 | 0.239 | 0.020 | 12.209 | 0.000 |
| estrato5 | 0.370 | 0.021 | 17.887 | 0.000 |
| estrato6 | 0.551 | 0.025 | 21.841 | 0.000 |
log_areaconst): Un
aumento del 1% en el área construida incrementa el precio en 0.794% en
el precio de la vivienda, manteniendo las demás variables
constantes.parqueaderos):
Cada parqueadero adicional incrementa el precio en 8.8% en
promedio.banios): Cada baño
adicional aumenta el precio en 1.8%.habitaciones):
Cada habitación adicional reduce el precio en - 2.1%, lo que sugiere que
su relación con el precio es débil o está correlacionada con otra
variable (como el área construida).estrato):Viviendas en estrato
4 tienen un precio 24.2% mayor que las de estrato 3, manteniendo todo lo
demás constante, Viviendas en estrato 5 son 37.1% más costosas que las
de estrato 3. Viviendas en estrato 6 son 51.5% más costosas que las de
estrato 3.## R²: 0.798
## R² Ajustado: 0.797
R² = 0.779 El modelo explica 7.9% de la variabilidad en los precios de las viviendas. R² ajustado = 0.778 Indica que las variables seleccionadas siguen siendo relevantes después de ajustar por el número de predictores.
Interpretaciones:
El modelo tiene un buen ajuste y las variables más importantes (log_areaconst, parqueaderos, banios y estrato) son significativas y lógicas. Sin embargo:
Se puede mejorar explorando interacciones o incorporando variables como barrio, antigüedad de la vivienda, entre otros.
La variable habitaciones podría eliminarse, ya que no contribuye significativamente al modelo.
Interpretaciones:
Los residuos deberían distribuirse de manera aleatoria alrededor de la línea roja horizontal en cero. no se observa una estructura clara ni patrones evidentes, lo que sugiere que la suposición de linealidad se cumple en gran medida. La linealidad del modelo parece adecuada. Hay una ligera dispersión en los extremos, lo que podría indicar cierta heterocedasticidad.
Normal Q-Q: Este gráfico evalúa si los residuos siguen una distribución normal. La normalidad de los residuos es aceptable, pero algunos valores extremos pueden afectar el ajuste.
Scale-Location: evalúa la homocedasticidad (varianza constante de los residuos).Los residuos parecen mantener una variabilidad relativamente constante, pero hay una ligera mayor dispersión en los extremos.
Residuals vs Leverage: Hay algunos puntos influyentes en los datos. Es recomendable analizarlos en detalle, se podría establecer el modelo sin ellos para evaluar su impacto.
TIPO: Apartamento ÁREA CONSTRUIDA: 300 PARQUEADEROS: 3 BAÑOS: 3 HABITACIONES: 5 ESTRATO: 5 o 6 CREDITO APROBADO: 850 millones
## El precio estimado para la vivienda 2 en estrato 5 es: 772.83 millones de pesos.
## El precio estimado para la vivienda 2 en estrato 6 es: 925.56 millones de pesos.
Interpretación:
| barrio | preciom | areaconst | parqueaderos | banios | habitaciones | estrato |
|---|---|---|---|---|---|---|
| el guabal | 295 | 172 | 1 | 4 | 4 | 3 |
| multicentro | 480 | 170 | 2 | 4 | 4 | 5 |
| multicentro | 450 | 170 | 2 | 4 | 4 | 5 |
| multicentro | 410 | 170 | 2 | 3 | 4 | 5 |
| el ingenio | 480 | 169 | 2 | 4 | 3 | 5 |
*Análisis:**
Recomendación:
Si se busca mayor área, El guabal es la mejor opción.
Si la prioridad es estrato,parqueaderos y habitaciones podría ser viable Multicentro.