Introducción

María, tras 10 años de experiencia en el sector inmobiliario y la fundación de C&A en Cali, enfrenta un escenario de disminución de ventas debido a tensiones políticas y sociales, aunque se espera una reactivación con el apoyo de instituciones bancarias. Recientemente, recibiste una solicitud de una compañía internacional para asesorar la compra de dos viviendas en Cali: una casa en la zona norte y un apartamento en la zona sur, con créditos preaprobados de 350 y 850 millones de pesos, respectivamente. Este informe presenta un análisis basado en modelos de regresión lineal múltiple para predecir precios y sugerir ofertas potenciales, junto con recomendaciones para tu consideración.

Análisis y Recomendaciones


Caso 1: Vivienda 1 (Casa, Zona Norte)
    - Características solicitadas:
    Área construida de 200 m², 1 parqueadero, 2 baños, 4 habitaciones, estrato 4 o 5, crédito preaprobado de 350 millones.
    - Predicción del modelo:
    Estrato 4: ~300 millones (intervalo de confianza 95%: 277.7 - 322.5 millones).
    Estrato 5: ~382.4 millones (intervalo de confianza 95%: 350 - 414.8 millones).
    El rango para estrato 4 está dentro del presupuesto, mientras que estrato 5 excede ligeramente el límite, siendo viable solo en el extremo inferior del intervalo.
    - Ofertas potenciales:
    Se identificaron 7 viviendas en la zona norte (filtrada por coordenadas) con precios predichos ≤ 350 millones:
    1. 286.68 millones (190 m², 4 hab., 2 baños, 1 parqueadero, estrato 3).
    2. 315.92 millones (210 m², 3 hab., 2 baños, 0 parqueaderos, estrato 4).
    3. 292.45 millones (180 m², 5 hab., 1 baño, 1 parqueadero, estrato 3).
    4. 321.33 millones (200 m², 4 hab., 1 baño, 1 parqueadero, estrato 4).
    5. 308.17 millones (220 m², 3 hab., 2 baños, 0 parqueaderos, estrato 3).

    - Mapa: Las ofertas están geolocalizadas en la zona norte, confirmando la corrección del filtro por coordenadas.

    - Discusión:
    La oferta 1 es la más económica y cumple con el presupuesto, aunque tiene estrato 3.
    La oferta 4 se alinea mejor con las características solicitadas, pero está cerca del límite; podrías negociar un precio inferior a 350 millones.
    La falta de parqueadero en algunas opciones (2 y 5) podría ser un inconveniente, pero podría compensarse con ubicaciones estratégicas.
    - Recomendación:
    Priorizar la oferta 1 (286.68 millones) por su ajuste al presupuesto y negocia con las opciones 3 y 4 para asegurar las características deseadas dentro del límite.

Caso 2: Vivienda 2 (Apartamento, Zona Sur)

    - Características solicitadas:
    Área construida de 300 m², 3 parqueaderos, 3 baños, 5 habitaciones, estrato 5 o 6, crédito preaprobado de 850 millones.
    - Predicción del modelo:
    Estrato 5: ~712.6 millones (intervalo de confianza 95%: 686.7 - 738.5 millones).
    Estrato 6: ~768.4 millones (intervalo de confianza 95%: 742.2 - 794.6 millones).
    Ambos valores superan el presupuesto, pero el intervalo inferior de estrato 5 (686.7 millones) está cerca de 850 millones.
    - Ofertas potenciales:
    Se identificaron 4 viviendas en la zona sur (filtrada por coordenadas) con precios predichos, pero ninguna cumple todos los parámetros. La mejor opción es:
    1. 542.7 millones (real: 350 millones, 300 m², 4 hab., 3 baños, 2 parqueaderos, estrato 5).
    2. 581.7 millones (real: 500 millones, 320 m², 5 hab., 3 baños, 2 parqueaderos, estrato 6).
    3. 660.5 millones (real: 980 millones, 310 m², 4 hab., 3 baños, 3 parqueaderos, estrato 6, Ciudad Jardín).
    4. 664 millones (real: 950 millones, 330 m², 5 hab., 4 baños, 3 parqueaderos, estrato 6, Ciudad Jardín).

    - Mapa: Los apartamentos 3 y 4 están en Ciudad Jardín, un barrio exclusivo, lo que explica su alto valor real (980 y 950 millones) frente a las predicciones (660.5 y 664 millones).

    - Discusión:
    La oferta 1 está dentro del presupuesto, pero falta 1 parqueadero y 1 habitación.
    Las opciones 3 y 4 exceden el presupuesto real, pero su ubicación en Ciudad Jardín sugiere un valor del metro cuadrado más alto que el modelo no captura.
    La variabilidad entre valores reales y predichos (35.5% a -48.4%) indica que el modelo subestima precios en zonas exclusivas.
    - Recomendación:
    Negociar la oferta 1 (542.7 millones) para incluir un parqueadero adicional o ajusta el presupuesto. Explora barrios como Ciudad Jardín con la empresa para justificar un crédito mayor si el valor real lo amerita.

Conclusión y Recomendaciones Generales

Los modelos de regresión lineal ajustados para las zonas norte y sur predicen precios con un R^2 de 0.6516 y 0.7472, respectivamente, pero presentan heterocedasticidad y no normalidad, afectando la precisión. Filtrar por coordenadas corrigió errores en el atributo zona, mejorando la calidad de los datos.
Acciones que pueden mejorar el modelo:

    - Ajustar los modelos con transformaciones logarítmicas para mitigar heterocedasticidad.
    - Incluir variables como barrio para capturar patrones espaciales.

Se anexan los detalles técnicos.

Anexos

    - Anexo 1: Estimaciones y Validación del Modelo - Zona Norte:
    Se filtra el conjunto de datos por zona norte y tipo casa, se muestran los 3 primeros resultados y tabla resumiendo los datos

Primeros 3 Registros del Dataset Filtrado
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
1209 Zona Norte 02 5 320 150 2 4 6 Casa acopi -76.51341 3.47968
1592 Zona Norte 02 5 780 380 2 3 3 Casa acopi -76.51674 3.48721
4057 Zona Norte 02 6 750 445 NA 7 6 Casa acopi -76.52950 3.38527

Data Frame Summary

data_Norte

Dimensions: 722 x 13
Duplicates: 0
No Variable Stats / Values Freqs (% of Valid) Graph Valid Missing
1 id [numeric]
Mean (sd) : 2574.6 (1986.3)
min ≤ med ≤ max:
58 ≤ 2257 ≤ 8319
IQR (CV) : 3458.8 (0.8)
722 distinct values 722 (100.0%) 0 (0.0%)
2 zona [character] 1. Zona Norte
722(100.0%)
722 (100.0%) 0 (0.0%)
3 piso [character]
1. 01
2. 02
3. 03
4. 04
5. 07
84(24.0%)
194(55.4%)
65(18.6%)
6(1.7%)
1(0.3%)
350 (48.5%) 372 (51.5%)
4 estrato [numeric]
Mean (sd) : 4.2 (1)
min ≤ med ≤ max:
3 ≤ 4 ≤ 6
IQR (CV) : 2 (0.2)
3:235(32.5%)
4:161(22.3%)
5:271(37.5%)
6:55(7.6%)
722 (100.0%) 0 (0.0%)
5 preciom [numeric]
Mean (sd) : 445.9 (268.4)
min ≤ med ≤ max:
89 ≤ 390 ≤ 1940
IQR (CV) : 288.8 (0.6)
167 distinct values 722 (100.0%) 0 (0.0%)
6 areaconst [numeric]
Mean (sd) : 264.9 (167.2)
min ≤ med ≤ max:
30 ≤ 240 ≤ 1440
IQR (CV) : 196.8 (0.6)
251 distinct values 722 (100.0%) 0 (0.0%)
7 parqueaderos [numeric]
Mean (sd) : 2.2 (1.4)
min ≤ med ≤ max:
1 ≤ 2 ≤ 10
IQR (CV) : 2 (0.6)
1:161(37.0%)
2:158(36.3%)
3:49(11.3%)
4:40(9.2%)
5:11(2.5%)
6:8(1.8%)
7:5(1.1%)
8:1(0.2%)
9:1(0.2%)
10:1(0.2%)
435 (60.2%) 287 (39.8%)
8 banios [numeric]
Mean (sd) : 3.6 (1.5)
min ≤ med ≤ max:
0 ≤ 3 ≤ 10
IQR (CV) : 2 (0.4)
11 distinct values 722 (100.0%) 0 (0.0%)
9 habitaciones [numeric]
Mean (sd) : 4.5 (1.8)
min ≤ med ≤ max:
0 ≤ 4 ≤ 10
IQR (CV) : 2 (0.4)
11 distinct values 722 (100.0%) 0 (0.0%)
10 tipo [character] 1. Casa
722(100.0%)
722 (100.0%) 0 (0.0%)
11 barrio [character]
1. la flora
2. acopi
3. villa del prado
4. el bosque
5. prados del norte
6. san vicente
7. vipasa
8. la merced
9. urbanización la flora
10. brisas de los
[ 93 others ]
99(13.7%)
70(9.7%)
40(5.5%)
37(5.1%)
31(4.3%)
31(4.3%)
30(4.2%)
24(3.3%)
23(3.2%)
22(3.0%)
315(43.6%)
722 (100.0%) 0 (0.0%)
12 longitud [numeric]
Mean (sd) : -76.5 (0)
min ≤ med ≤ max:
-76.6 ≤ -76.5 ≤ -76.5
IQR (CV) : 0 (0)
464 distinct values 722 (100.0%) 0 (0.0%)
13 latitud [numeric]
Mean (sd) : 3.5 (0)
min ≤ med ≤ max:
3.3 ≤ 3.5 ≤ 3.5
IQR (CV) : 0 (0)
462 distinct values 722 (100.0%) 0 (0.0%)

Generated by summarytools 1.0.1 (R version 4.4.1)
2025-03-03

Se muestra el mapa de las viviendas filtradas.

Los puntos muestran que hay grandes inconsistencias entre la zona y las coordenadas ingresadas, lo que demuestra un error en la consignación de los datos. Sin una forma de confirmar si el error está en la zona o en las coordenadas, solo se puede suponer que una de las dos es incorrecta y hacer el filtro según el atributo que se elija. Como un error en las coordenadas mostraría puntos en lugares muy alejados de la ciudad, por ejemplo, al intercambiar latitud con longitud o al no tomar la cantidad correcta de decimales, se concluye que el error está en la clasificación del atributo zona. Para filtrar correctamente los datos, se aplicará un filtro basado en las coordenadas de cada vivienda.

Nuevo tamaño del conjunto de datos: 654

Al realizar el nuevo filtrado de las viviendas, se observa que ya no hay viviendas en zonas incorrectas; sin embargo, este método depende de una definición subjetiva de cuál es la zona norte de la ciudad. Además, el tamaño de este nuevo conjunto (654) es menor que el conjunto filtrado por el atributo zona (722), pero es un mejor conjunto de datos para entrenar el modelo, ya que las viviendas están en una misma zona espacial y el modelo no recibirá valores anómalos provenientes de viviendas en zonas erróneas.

Análisis exploratorio de datos

Matriz de correlación

En la matriz de correlación no se encuentran valores preocupantemente altos, pero hay varios que superan 0.5. El valor más alto es entre precio y área, lo cual es lógico considerando que a mayor área construida aumenta el precio de la vivienda. No se observa ninguna relación negativa, lo que coincide con la realidad.

Gráficos

En la gráfica se puede ver que el precio tiene una relación casi lineal con el área desde el inicio hasta los 1,000 millones y 500 m²; después de este umbral, los valores se dispersan y se identifican varios outliers.

Respecto al número de baños, la gran mayoría se encuentra entre 2 y 6 baños, y en rangos de precio hasta 1,000 millones.

En el número de habitaciones, la mayor distribución se encuentra entre 3 y 7 habitaciones. Un comportamiento extraño de los datos es que tanto en baños como en habitaciones hay una cantidad considerable de datos con valor cero. Aunque en el caso de los baños se deben revisar posibles errores, existe la posibilidad de que no haya baño propio en la vivienda; sin embargo, es imposible que exista una vivienda con cero habitaciones, incluso en el caso de apartaestudios, ya que siempre se tiene al menos una habitación. Por lo tanto, estos valores deben corregirse.

En la distribución por estrato, el comportamiento es el esperado: a mayor estrato, mayor es el precio de las viviendas. Se observan algunos outliers en los estratos 4 y 5 que tienen valores casi tan altos como en el estrato 6, pero es normal que existan casas con un valor mucho más alto al promedio de su estrato.

Modelo de regresión lineal multiple

Resumen del Modelo de Regresión Lineal
Dependent variable:
preciom
areaconst 0.7300***
(0.0604)
estrato 83.3820***
(11.1841)
habitaciones -14.5063**
(6.5948)
parqueaderos 43.2155***
(6.5132)
banios 33.3522***
(8.9264)
Constant -241.0656***
(50.3388)
Observations 440
R2 0.6144
Adjusted R2 0.6099
Residual Std. Error 181.7772 (df = 434)
F Statistic 138.2903*** (df = 5; 434)
Note: p<0.1; p<0.05; p<0.01

Análisis de coeficientes
Área: El valor p es menor a 0.05, por lo que es estadísticamente significativo. El coeficiente tiene un valor de 0.72996, lo que indica que por cada metro adicional, el precio de la vivienda aumenta en 729,996 pesos al mantener las demás variables constantes. Esto es lógico, ya que a mayor área construida, mayor debe ser el valor de la vivienda.
Estrato: El valor p es menor a 0.05, por lo que es estadísticamente significativo. El coeficiente tiene un valor de 83.38196, lo que indica que por cada nivel de estrato que se aumenta, el precio de la vivienda aumenta en 83.4 millones de pesos al mantener las demás variables constantes. Esto es lógico, ya que al aumentar el estrato, el valor del metro cuadrado también aumenta debido a las amenidades que justifican su valor.
Habitaciones: El valor p de 0.028 es menor a 0.05, por lo que es estadísticamente significativo por un margen muy pequeño. El coeficiente tiene un valor de -14.506, lo que indica que por cada habitación adicional, el precio de la vivienda se reduce en 14.506 millones de pesos al mantener las demás variables constantes. Esto se puede explicar porque, si todas las variables se mantienen (especialmente el área), un aumento en la cantidad de habitaciones puede llevar a divisiones excesivas que reduzcan el valor de la vivienda.

Parqueaderos: El valor p es menor a 0.05, por lo que es estadísticamente significativo. El coeficiente tiene un valor de 43.21, lo que indica que por cada parqueadero adicional, el precio de la vivienda aumenta en 43.2 millones de pesos al mantener las demás variables constantes. Esto es lógico, ya que la cantidad de parqueaderos es un valor agregado a las viviendas que puede o no formar parte del área construida.
Baños: El valor p es menor a 0.05, por lo que es estadísticamente significativo. El coeficiente tiene un valor de 33.35, lo que indica que por cada baño adicional, el precio de la vivienda aumenta en 33.4 millones de pesos al mantener las demás variables constantes. Esto es lógico, ya que al aumentar la cantidad de baños se considera que la vivienda es más cómoda, además de que es uno de los cuartos más caros de construir.
Intercepto: El intercepto tiene un valor de -241.06555, lo que indica que el valor de una vivienda cuando todos los coeficientes son cero es -241.1 millones; este valor no tiene sentido porque el precio de una vivienda no puede ser negativo. Como el intercepto es un valor dentro del modelo de regresión matemático, puede tener valores que no tengan sentido en la vida real, y dado que no debe existir un caso de una vivienda con área, habitaciones, baños, etc., igual a cero, no es preocupante que el intercepto tenga un valor negativo.
R2: El valor de R2 del modelo es 0.6144, lo que significa que el modelo explica el 61.44% de la variabilidad del precio. Este porcentaje no es muy favorable, y algunas acciones que se pueden tomar para mejorar la calidad de la regresión incluyen revisar si hay valores nulos en los datos, analizar los casos de casas con cero baños y habitaciones, determinar si estos datos están erróneos y eliminarlos o imputarlos para mejorar la calidad de los datos y permitir un modelo más confiable, así como identificar y eliminar outliers para que los datos extremos no afecten los resultados del modelo.
Revisión de NA: Al revisar los NA dentro del conjunto de datos, se encuentran 291 registros en piso y 214 en parqueaderos.

Campos vacios
id 0
zona 0
piso 291
estrato 0
preciom 0
areaconst 0
parqueaderos 214
banios 0
habitaciones 0
tipo 0
barrio 0
longitud 0
latitud 0

Los registros con piso NA fueron cambiados por 1; se consideró que la variable piso representa el piso donde se encuentra el inmueble, no la cantidad de pisos construidos, para que tenga sentido tanto para casas como apartamentos en el conjunto de datos original. Por esto, se decidió que todas las viviendas tipo casa tienen piso 1. Para parqueaderos, lo primero que se notó es que los valores van desde 1 hasta 5, lo cual es incongruente con la realidad porque hay muchas viviendas que no tienen parqueadero, independientemente de que sean casas o apartamentos. Por esto, se decidió tomar los NA como 0 para representar las viviendas que no tienen parqueadero propio. Se revisa que no queden más valores NA en los datos.

Campos vacios
id 0
zona 0
piso 0
estrato 0
preciom 0
areaconst 0
parqueaderos 0
banios 0
habitaciones 0
tipo 0
barrio 0
longitud 0
latitud 0

Se calcula un nuevo modelo con la data corregida.

Resumen del Modelo de Regresión Lineal sin NA
Dependent variable:
preciom
areaconst 0.7942***
(0.0538)
estrato 88.9330***
(9.2131)
habitaciones -6.7509
(5.3742)
parqueaderos 18.5645***
(5.1480)
banios 31.6183***
(6.7319)
Constant -240.3317***
(38.6503)
Observations 654
R2 0.6251
Adjusted R2 0.6222
Residual Std. Error 182.7938 (df = 648)
F Statistic 216.1264*** (df = 5; 648)
Note: p<0.1; p<0.05; p<0.01

El nuevo modelo tiene varias diferencias respecto al anterior. Los coeficientes del intercepto, areaconst, estrato y habitaciones cambiaron sus magnitudes y p-values, pero su significancia se mantuvo. El cambio en parqueaderos es importante: su coeficiente cambió de 43.2 a 18.6 (una diferencia de -24.6) y su p-value aumentó. Esto indica que imputar los NA de parqueaderos por cero para representar las viviendas sin parqueadero parece haber sesgado el modelo, ya que se agruparon posibles ceros verdaderos con datos faltantes que no son cero, afectando el coeficiente artificialmente. El coeficiente de habitaciones también cambió y ya no es significativo para el modelo. Este nuevo modelo no parece confiable porque no es realista que el valor de una vivienda se vea afectado tan poco por la cantidad de parqueaderos, considerando el coeficiente anterior. Se va a probar una imputación alternativa de los NA de parqueaderos usando los promedios por estrato.

Resumen del Modelo de Regresión Lineal sin NA
Dependent variable:
preciom
areaconst 0.7662***
(0.0529)
estrato 82.5370***
(8.9879)
habitaciones -5.8697
(5.2598)
parqueaderos 39.6589***
(6.1990)
banios 28.4905***
(6.6178)
Constant -248.8234***
(37.0258)
Observations 654
R2 0.6403
Adjusted R2 0.6376
Residual Std. Error 179.0507 (df = 648)
F Statistic 230.7325*** (df = 5; 648)
Note: p<0.1; p<0.05; p<0.01

En este nuevo modelo hay de nuevo diferencias en las magnitudes de los coeficientes, pero el cambio más relevante es en parqueaderos, donde su coeficiente tiene un valor más cercano al original. Por último, se revisa la cantidad de registros con cero en habitaciones o baños.
Cantidad de habitaciones con valor cero:
FALSE TRUE 646 8
Cantidad de baños con valor cero:
FALSE TRUE 649 5
Nuevo tamaño del conjunto de datos
645 Se encuentra que hay 8 habitaciones y 5 baños con valor cero. Como la cantidad de registros totales de la fuente de datos es 654, aún en el peor caso, donde sean 13 registros con cero, esto representa el 1.9% de los registros. Por lo que es seguro eliminar estos registros. Los registros resultantes son 645.

Resumen del Modelo de Regresión Lineal sin NA
Dependent variable:
preciom
areaconst 0.7403***
(0.0528)
estrato 82.3220***
(8.9892)
habitaciones -2.9819
(5.5054)
parqueaderos 37.9534***
(6.1093)
banios 32.5331***
(6.8752)
Constant -268.3351***
(37.5142)
Observations 645
R2 0.6516
Adjusted R2 0.6488
Residual Std. Error 176.0662 (df = 639)
F Statistic 238.9828*** (df = 5; 639)
Note: p<0.1; p<0.05; p<0.01

Validación de supuestos del modelo
Los errores son variables aleatorias normales.

Resultados de la Prueba de Shapiro-Wilk para Normalidad
Estadistico Valor
Estadístico W 0.8236
p-valor 4.98383679145735e-26
Método Shapiro-Wilk normality test
Datos residuals(modelo)

El p-value es menor a 0.05, con este resultado se rechaza la hipótesis nula (H0: los residuos son normales). Esto indica que los residuos no siguen una distribución normal y no cumple con el supuesto. Se podría aplicar una transformación logarítmica a precio (ej. lm(log(preciom) ~ …) o usar un modelo robusto que no dependa de la normalidad.
Los errores tienen media cero.
Prueba t para media cero de los residuos:
Valor t: 0
Grados de libertad: 644
p-valor: 1
Intervalo de confianza 95%: -13.56028 a 13.56028
Media estimada: 0
p-value = 1, con este valor no se puede rechazar H0: La media de los errores es cero. El valor de la media de los errores es 9.823376e-16, que es un valor muy cercano a cero, y el intervalo de confianza contiene el cero (-13.56028 a 13.56028).
Los errores tienen varianza constante.

Resultados de la Prueba de Goldfeld-Quandt para Homocedasticidad
Estadistico Valor
Estadístico GQ 1.7657
Grados de libertad 1 317
Grados de libertad 2 316
p-valor 2.59469390109518e-07
Hipótesis alternativa variance increases from segment 1 to 2

Con el p-value obtenido no se puede rechazar H0: La varianza de los errores es constante, por lo que este supuesto se cumple.
Los errores son mutuamente independientes.

Resultados de la Prueba de Durbin-Watson para Independencia
statistic p.value method alternative
1.544294 0 Durbin-Watson test true autocorrelation is greater than 0

Con el p-value se rechaza la H0: No hay autocorrelación. Con este resultado se afirma que no se cumple con este supuesto. Esto se puede dar porque la existencia de algún patrón en los datos que el modelo no está capturando; como se trata de datos espaciales, se podría incluir una variable como barrio al modelo para intentar capturar el posible patrón en los datos.
Predecir el precio de la vivienda 1

Predicción del Precio de la Vivienda 1 (en millones)
Estrato Prediccion Límite_Inferior Límite_Superior
4 300.10 277.71 322.49
5 382.42 350.03 414.81

Usando los coeficientes del modelo se hace una predicción para cada estrato. Para el estrato 4, el modelo predice que la casa puede valer 300 millones con un intervalo de confianza al 95% desde 277.7 a 322.5 millones. Con estos valores es posible conseguir una casa que coincida con los requerimientos. Para el estrato 5, el valor calculado es de 382.4 millones con un intervalo de confianza de 350 a 414.8 millones. En este caso, el modelo indica que conseguir una casa con estas características en estrato 5 es prácticamente imposible; el valor dado por el modelo es casi 32 millones superior al crédito preaprobado, y solo tomando el intervalo de confianza en su valor inferior se puede cumplir con el cupo.
Encontrar viviendas usando el modelo
Se filtran los valores dentro de la zona norte según los siguientes parámetros, buscando un rango más amplio de opciones inmobiliarias que mostrar:
areaconst >= 180 & areaconst <= 220, # Rango de área cercano a 200
habitaciones >= 3 & habitaciones <= 5, # Rango de habitaciones cercano a 4
banios >= 1 & banios <= 3, # Rango de baños cercano a 2
parqueaderos >= 0 & parqueaderos <= 2, # Rango de parqueaderos cercano a 1
estrato >= 4 & estrato <= 5 # Rango de estrato amplio
Con estos parámetros solo se encontraron 2 posibles viviendas que cumplen cercanamente con los parámetros. La segunda opción cumple con los parámetros indicados, pero supera el valor máximo del crédito en 10 millones, mientras que la primera opción no cumple con el área por 10 m² y por una habitación.

Ofertas en la zona norte
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud precio_predicho dentro_presupuesto
4511 Zona Norte 1 4 275 190 2 2 3 Casa acopi -76.53198 3.45165 333.6320 TRUE
1222 Zona Norte 02 4 360 216 2 2 4 Casa la merced -76.51390 3.48386 349.8972 TRUE

Para buscar más opciones, se tomaron las viviendas desde el estrato 3 a 5. En este caso, todas las mejores ofertas están en el estrato 3; las últimas 3 viviendas cumplen o superan los parámetros solicitados con precios mucho menores o casi iguales a las propuestas anteriores.

Ofertas en la zona norte
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud precio_predicho dentro_presupuesto
206 Zona Norte 02 3 219 183 1 2 5 Casa la rivera -76.48900 3.47500 202.2109 TRUE
391 Zona Norte 03 3 175 180 1 2 3 Casa villa del prado -76.49500 3.46589 205.9538 TRUE
612 Zona Norte 01 3 270 196 1 2 4 Casa calima -76.49994 3.48465 214.8163 TRUE
939 Zona Oriente 01 3 195 210 1 2 5 Casa el troncal -76.50606 3.45152 222.1983 TRUE
1060 Zona Centro 01 3 295 200 1 3 4 Casa san juan bosco -76.50887 3.47723 250.3105 TRUE

Resumen de los precios reales vs. predicción del modelo
Caso 1 (estratos 4 y 5)

Comparación de Valores Reales vs. Predichos - Caso 1 (Estratos 4 y 5)
Valor.Real Valor.predicción X..Var
360 349.9 -2.9
275 333.6 17.6

Caso 2 (Estratos 3 a 5)

Comparación de Valores Reales vs. Predichos - Caso 2 (Estratos 3 a 5)
Valor.Real Valor.predicción X..Var
219 202.00 -8.4
175 205.95 15.0
270 214.82 -25.7
195 222.20 12.2
295 250.31 -17.9

La diferencia entre el valor real y el calculado tiene una variabilidad elevada a partir de la pequeña muestra que tenemos. Considerando que el R2 del modelo es 0.65 y que no se cumplieron algunos supuestos, los resultados están dentro de lo esperado y se puede concluir que este modelo de regresión lineal podría no ser la mejor herramienta para predecir el precio de una vivienda.

    - Anexo 2: Estimaciones y Validación del Modelo - Zona Sur:
    Se filtra el conjunto de datos por zona sur y tipo apartamento, se muestran los 3 primeros resultados y tabla resumiendo los datos

Primeros 3 Registros del Dataset Filtrado
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
5098 Zona Sur 05 4 290 96 1 2 3 Apartamento acopi -76.53464 3.44987
698 Zona Sur 02 3 78 40 1 1 2 Apartamento aguablanca -76.50100 3.40000
8199 Zona Sur NA 6 875 194 2 5 3 Apartamento aguacatal -76.55700 3.45900

Data Frame Summary

data_Norte

Dimensions: 3219 x 13
Duplicates: 0
No Variable Stats / Values Freqs (% of Valid) Graph Valid Missing
1 id [numeric]
Mean (sd) : 3963.5 (2310)
min ≤ med ≤ max:
1 ≤ 4190 ≤ 8319
IQR (CV) : 4006 (0.6)
3219 distinct values 3219 (100.0%) 0 (0.0%)
2 zona [character]
1. Zona Centro
2. Zona Norte
3. Zona Oeste
4. Zona Oriente
5. Zona Sur
100(3.1%)
722(22.4%)
169(5.3%)
289(9.0%)
1939(60.2%)
3219 (100.0%) 0 (0.0%)
3 piso [character]
1. 01
2. 02
3. 03
4. 04
5. 05
6. 06
7. 07
8. 10
430(21.9%)
938(47.7%)
524(26.7%)
62(3.2%)
3(0.2%)
2(0.1%)
4(0.2%)
2(0.1%)
1965 (61.0%) 1254 (39.0%)
4 estrato [numeric]
Mean (sd) : 4.5 (1.1)
min ≤ med ≤ max:
3 ≤ 5 ≤ 6
IQR (CV) : 2 (0.2)
3:814(25.3%)
4:725(22.5%)
5:984(30.6%)
6:696(21.6%)
3219 (100.0%) 0 (0.0%)
5 preciom [numeric]
Mean (sd) : 540 (358.2)
min ≤ med ≤ max:
77 ≤ 430 ≤ 1999
IQR (CV) : 370 (0.7)
305 distinct values 3219 (100.0%) 0 (0.0%)
6 areaconst [numeric]
Mean (sd) : 273.4 (171.4)
min ≤ med ≤ max:
30 ≤ 240 ≤ 1745
IQR (CV) : 196 (0.6)
503 distinct values 3219 (100.0%) 0 (0.0%)
7 parqueaderos [numeric]
Mean (sd) : 2.3 (1.5)
min ≤ med ≤ max:
1 ≤ 2 ≤ 10
IQR (CV) : 2 (0.6)
1:857(34.5%)
2:891(35.8%)
3:268(10.8%)
4:296(11.9%)
5:64(2.6%)
6:66(2.7%)
7:17(0.7%)
8:17(0.7%)
9:4(0.2%)
10:6(0.2%)
2486 (77.2%) 733 (22.8%)
8 banios [numeric]
Mean (sd) : 3.9 (1.6)
min ≤ med ≤ max:
0 ≤ 4 ≤ 10
IQR (CV) : 2 (0.4)
11 distinct values 3219 (100.0%) 0 (0.0%)
9 habitaciones [numeric]
Mean (sd) : 4.6 (1.8)
min ≤ med ≤ max:
0 ≤ 4 ≤ 10
IQR (CV) : 2 (0.4)
11 distinct values 3219 (100.0%) 0 (0.0%)
10 tipo [character] 1. Casa
3219(100.0%)
3219 (100.0%) 0 (0.0%)
11 barrio [character]
1. ciudad jardín
2. pance
3. valle del lili
4. la flora
5. el caney
6. ciudad 2000
7. el limonar
8. el ingenio
9. acopi
10. la hacienda
[ 320 others ]
295(9.2%)
203(6.3%)
168(5.2%)
99(3.1%)
84(2.6%)
76(2.4%)
76(2.4%)
74(2.3%)
70(2.2%)
56(1.7%)
2018(62.7%)
3219 (100.0%) 0 (0.0%)
12 longitud [numeric]
Mean (sd) : -76.5 (0)
min ≤ med ≤ max:
-76.6 ≤ -76.5 ≤ -76.5
IQR (CV) : 0 (0)
1604 distinct values 3219 (100.0%) 0 (0.0%)
13 latitud [numeric]
Mean (sd) : 3.4 (0)
min ≤ med ≤ max:
3.3 ≤ 3.4 ≤ 3.5
IQR (CV) : 0.1 (0)
1802 distinct values 3219 (100.0%) 0 (0.0%)

Generated by summarytools 1.0.1 (R version 4.4.1)
2025-03-03

Se muestra el mapa de las viviendas filtradas.

Igual que en el caso anterior, hay errores de clasificación de la zona de las viviendas; se procede a hacer un filtro por coordenadas de la zona sur de la ciudad. De nuevo, se observa que ya no hay viviendas en zonas alejadas al resto. Con este método se reiteran los riesgos de tomar un límite subjetivo y que el tamaño de los registros disminuye a 2060 de los 2787 originales al filtrar por el atributo zona.

Nuevo tamaño del conjunto de datos: 2060 Análisis exploratorio de datos

Matriz de correlación

Los valores de correlación entre las variables muestran que la relación entre precio y área es muy alta (0.75), aunque al estar tan relacionadas es lógico; sin embargo, está en el rango que podría implicar multicolinealidad. Otra correlación preocupantemente alta es la de baños y precio.

Gráficos

En la gráfica se puede ver una relación casi lineal entre el precio y el área hasta las viviendas de 400 m²; de ahí en adelante, los apartamentos se dispersan.

La mayoría de los baños están entre 2 y 5, y se nota que el rango de valor de las viviendas aumenta según la cantidad de baños, lo que puede explicar por qué su correlación es tan alta.

En el número de habitaciones, la mayor distribución se encuentra entre 2 y 4 habitaciones, con solo 3 casos con más de 6. Igual que en el caso anterior, hay apartamentos con cero habitaciones y baños.

En la distribución por estrato, el comportamiento es el esperado: a mayor estrato, mayor es el precio de las viviendas.

Modelo de regresión lineal multiple
Considerando el caso anterior, primero se revisarán los NA.

Campos vacios
id 0
zona 0
piso 496
estrato 0
preciom 0
areaconst 0
parqueaderos 306
banios 0
habitaciones 0
tipo 0
barrio 0
longitud 0
latitud 0

Como en el caso anterior, hay NA en piso y parqueadero; se van a imputar usando la estrategia de promedio por estrato y eliminar los ceros de baños y habitaciones.

Resumen del Modelo de Regresión Lineal
Dependent variable:
preciom
areaconst 1.3591***
(0.0578)
estrato 55.7750***
(3.3939)
habitaciones -28.3561***
(4.5099)
parqueaderos 91.4831***
(5.3514)
banios 45.4091***
(3.9509)
Constant -242.8918***
(17.3975)
Observations 2,049
R2 0.7472
Adjusted R2 0.7466
Residual Std. Error 104.2028 (df = 2043)
F Statistic 1,207.9530*** (df = 5; 2043)
Note: p<0.1; p<0.05; p<0.01

Análisis de coeficientes
Área: El valor p es menor a 0.05, por lo que es estadísticamente significativo. El coeficiente tiene un valor de 1.36, lo que indica que por cada metro adicional, el precio de la vivienda aumenta en 1.36 millones de pesos al mantener las demás variables constantes. Esto es lógico, ya que a mayor área construida, mayor debe ser el valor de la vivienda.
Estrato: El valor p es menor a 0.05, por lo que es estadísticamente significativo. El coeficiente tiene un valor de 55.77, lo que indica que por cada nivel de estrato que se aumenta, el precio de la vivienda aumenta en 55.77 millones de pesos al mantener las demás variables constantes. Esto es lógico, ya que al aumentar el estrato, el valor del metro cuadrado también aumenta debido a las amenidades que justifican su valor.
Habitaciones: El valor p es menor a 0.05, por lo que es estadísticamente significativo. El coeficiente tiene un valor de -28.35, lo que indica que por cada habitación adicional, el precio de la vivienda se reduce en 28.35 millones de pesos al mantener las demás variables constantes. Esto se puede explicar porque, si todas las variables se mantienen (especialmente el área), un aumento en la cantidad de habitaciones puede llevar a divisiones excesivas que reduzcan el valor de la vivienda. También puede deberse a multicolinealidad entre los atributos; se realizarán pruebas para revisar este supuesto.

Parqueaderos: : El valor p es menor a 0.05, por lo que es estadísticamente significativo. El coeficiente tiene un valor de 91.48, lo que indica que por cada parqueadero adicional, el precio de la vivienda aumenta en 91.48 millones de pesos al mantener las demás variables constantes. Esto es lógico, ya que la cantidad de parqueaderos es un valor agregado a las viviendas que puede o no formar parte del área construida.
Baños: El valor p es menor a 0.05, por lo que es estadísticamente significativo. El coeficiente tiene un valor de 45.41, lo que indica que por cada baño adicional, el precio de la vivienda aumenta en 45.41 millones de pesos al mantener las demás variables constantes. Esto es lógico, ya que al aumentar la cantidad de baños se considera que la vivienda es más cómoda, además de que es uno de los cuartos más caros de construir.
Intercepto: El intercepto tiene un valor de -242.89183, lo que indica que el valor de una vivienda cuando todos los coeficientes son cero es -242.9 millones; este valor no tiene sentido porque el precio de una vivienda no puede ser negativo. Como el intercepto es un valor dentro del modelo de regresión matemático, puede tener valores que no tengan sentido en la vida real, y dado que no debe existir un caso de una vivienda con área, habitaciones, baños, etc., igual a cero, no es preocupante que el intercepto tenga un valor negativo.
R2: El valor de R2 del modelo es 0.7472, lo que significa que el modelo explica el 74.72% de la variabilidad del precio. Este porcentaje es considerablemente alto, pero no llega al 85% que se considera el valor estándar para un buen modelo de regresión.
Pruebas de multiconlinealidad
VIF

Resultados de la Prueba de VIF y Tolerancia para Multicolinealidad
Variable VIF Tolerancia
areaconst areaconst 2.0872 0.4791
estrato estrato 1.5956 0.6267
habitaciones habitaciones 1.4180 0.7052
parqueaderos parqueaderos 1.9448 0.5142
banios banios 2.6805 0.3731

Los valores de inflación de varianza (VIF) deben ser mayores a 5 y los valores de tolerancia deben ser menores a 0.1 probar multicolinealidad, pero no se encontró. Gráfica de Distribución:
En la gráfica que muestra la distribución de viviendas según precio y área, separadas por la cantidad de habitaciones, se observa que la relación no es lineal. Cuando las viviendas tienen muy pocas (2) o muchas (5) habitaciones, el precio disminuye en relación con tres o cuatro. La línea de 6 habitaciones tiene ese comportamiento debido a la poca cantidad de registros. Con esto, se puede afirmar que el coeficiente negativo representa el comportamiento de las viviendas cuando tienen muy pocas o muchas habitaciones. Validación de supuestos del modelo
Los errores son variables aleatorias normales.

Resultados de la Prueba de Shapiro-Wilk para Normalidad
statistic p.value method
0.790554 0 Shapiro-Wilk normality test

El p-value es menor a 0.05, con este resultado se rechaza la hipótesis nula (H0: los residuos son normales). Esto indica que los residuos no siguen una distribución normal y no cumple con el supuesto. Se podría aplicar una transformación logarítmica a precio (ej. lm(log(preciom) ~ …) o usar un modelo robusto que no dependa de la normalidad.
Los errores tienen media cero.

Resultados de la Prueba t para Media Cero de los Residuos
estimate statistic p.value parameter conf.low conf.high method alternative
0 0 1 2048 -4.509025 4.509025 One Sample t-test two.sided

p-value = 1, con este valor no se puede rechazar H0: La media de los errores es cero. El valor de la media de los errores es 93.652655e-16, que es un valor muy cercano a cero, y el intervalo de confianza contiene el cero (-4.509025 a 4.509025).
Los errores tienen varianza constante.

Resultados de la Prueba de Goldfeld-Quandt para Homocedasticidad
df1 df2 statistic p.value method alternative
1019 1018 0.8078901 0.9996632 Goldfeld-Quandt test variance increases from segment 1 to 2

Con el p-value obtenido no se puede rechazar H0: La varianza de los errores es constante, por lo que este supuesto se cumple.
Los errores son mutuamente independientes.

Resultados de la Prueba de Durbin-Watson para Independencia
statistic p.value method alternative
1.603633 0 Durbin-Watson test true autocorrelation is greater than 0

Con el p-value se rechaza la H0: No hay autocorrelación. Con este resultado se afirma que no se cumple con este supuesto. Esto se puede dar porque la existencia de algún patrón en los datos que el modelo no está capturando; como se trata de datos espaciales, se podría incluir una variable como barrio al modelo para intentar capturar el posible patrón en los datos.

Predecir el precio de la vivienda 2

Predicción del Precio de la Vivienda 1 (en millones)
Estrato Prediccion Límite_Inferior Límite_Superior
4 712.61 686.73 738.48
5 768.38 742.18 794.58

Usando los coeficientes del modelo se hace una predicción para cada estrato. Para el estrato 5, el modelo predice que la casa puede valer 712.6 millones con un intervalo de confianza al 95% desde 686.7 a 738.5 millones. Con estos valores, es posible conseguir una casa que coincida con los requerimientos. Para el estrato 6, el valor calculado es de 768.4 millones con un intervalo de confianza de 742.2 a 794.6 millones. En este caso, el modelo indica que conseguir una casa con estas características en estrato 6 con el cupo asignado es posible.
Se filtran los valores dentro de la zona sur según los siguientes parámetros, buscando un rango más amplio de opciones inmobiliarias que mostrar:
areaconst >= 270 & areaconst <= 330, # Rango de área cercano a 300
habitaciones >= 4 & habitaciones <= 6, # Rango de habitaciones cercano a 5
banios >= 2 & banios <= 4, # Rango de baños cercano a 3
parqueaderos >= 2 & parqueaderos <= 4, # Rango de parqueaderos cercano a 3
estrato >= 5 & estrato <= 6 # Rango de estrato amplio
Con estos parámetros solo se encontraron 2 posibles viviendas que cumplen cercanamente con los parámetros. La segunda opción cumple con los parámetros indicados, pero supera el valor máximo del crédito en 10 millones, mientras que la primera opción no cumple con el área por 10 m² y por una habitación.

Ofertas en la zona sur
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud precio_predicho dentro_presupuesto
6175 Zona Sur 05 5 350 270 3 3 4 Apartamento capri -76.54100 3.39200 700.1904 TRUE
6932 Zona Sur 1 5 500 330 2 4 4 Apartamento san fernando -76.54600 3.43500 735.6619 TRUE
5578 Zona Norte 1 6 950 330 2 4 4 Apartamento ciudad jardín -76.53729 3.36487 791.4369 TRUE
4962 Zona Sur 1 6 980 274 3 4 4 Apartamento ciudad jardin -76.53400 3.36900 806.8109 TRUE

Con estos parámetros solo se encontraron 4 posibles viviendas que cumplen cercanamente con los parámetros. Lamentablemente, no hay ningún apartamento que cumpla con todos los parámetros buscados; la mejor propuesta es la segunda, que tiene la mayor área, valiendo 350 millones menos que el presupuesto, pero no cumple con la cantidad de parqueaderos por 1. Tampoco cumple con la cantidad de habitaciones necesarias, pero ningún apartamento seleccionado cumple con ese requisito. Resumen de los precios reales vs. predicción del modelo

Comparación de Valores Reales vs. Predichos Zona Sur
Valor.Real Valor.predicción X..Var
350 542.7 35.5
500 581.7 14.0
980 660.5 -48.4
950 664.0 -43.1

La diferencia entre el valor real y el calculado tiene una variabilidad aún más elevada que en el caso de la zona norte. Algo que se nota al ver el mapa es que los apartamentos 3 y 4 están ubicados en la zona de Ciudad Jardín, que es uno de los barrios más exclusivos de la ciudad. Esto es algo que el modelo no puede captar a partir de los datos, porque hay otros barrios en estrato 6 donde el valor del metro cuadrado es mucho menor comparado con el de Ciudad Jardín.