Problema

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:

Vivienda 1:

Tipo casa Area construida 200 parqueaderos 1 baños 2 habitaciones 4 estrato 4 o 5 zona norte credito preaprobado 350 millones

Vivienda 2:

Tipo Apartamento Area construida 300 parqueaderos 3 baños 3 habitaciones 5 estrato 5 o 6 zona Sur credito preaprobado 850 millones

Ayude a María a responder la solicitud, mediante técnicas modelación que usted conoce. Ella requiere le envíe un informe ejecutivo donde analice los dos casos y sus recomendaciones (Informe). Como soporte del informe debe anexar las estimaciones, validaciones y comparación de modelos requeridos (Anexos)

Pasos requeridos:

  1. Realice un filtro a la base de datos e incluya solo las ofertas de : base 1: 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?).

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

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

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

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

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

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

Análisis exploratorio y tratamiento de los datos

  1. Revisión de datos faltantes por atributo:
                .
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

 FALSE   TRUE 
103911   4275 
  1. Revisión de datos atípicos:

Anteriormente, se identificaron 4,275 registros con datos faltantes, principalmente en las columnas ‘piso’ (2,638 valores NA) y ‘parqueaderos’ (1,605 valores NA). Tambien se detectaron ´ tres filas con todos sus valores nulos, las cuales fueron eliminadas. A continuacion, se imputan los valores faltantes en la ´ columna ‘piso’ utilizando la mediana de ‘piso’ segun el tipo ´ de vivienda (apartamento y casa). En el caso de los parqueaderos, se imputo el valor 0, considerando que algunas propiedades podrian no tener parqueadero y, por ende, no registrar esta informacion. ´ Respecto a los datos atípicos, se eliminaron los registros con precios superiores a 850, así como aquellos que mostraban la ausencia de baños o habitaciones. ˜ Además, la variable estrato se transformo en un tipo dummy y se excluyó la variable id, ya que no es relevante para el tipo de analisis realizado en este documento.

  1. Resultados después del tratamiento de datos :

Datos faltantes:

             .
zona         0
piso         0
estrato      0
preciom      0
areaconst    0
parqueaderos 0
banios       0
habitaciones 0
tipo         0
barrio       0
longitud     0
latitud      0
estrato3     0
estrato4     0
estrato5     0
estrato6     0

Datos atípicos:

Estructura final del dataset:

'data.frame':   7410 obs. of  16 variables:
 $ zona        : chr  "Zona Oriente" "Zona Oriente" "Zona Oriente" "Zona Sur" ...
 $ piso        : num  2 2 2 2 1 1 1 1 2 2 ...
 $ estrato     : Factor w/ 4 levels "3","4","5","6": 1 1 1 2 3 3 2 3 3 3 ...
 $ preciom     : num  250 320 350 400 260 240 220 310 320 780 ...
 $ areaconst   : num  70 120 220 280 90 87 52 137 150 380 ...
 $ parqueaderos: num  1 1 2 3 1 1 2 2 2 2 ...
 $ banios      : num  3 2 2 5 2 3 2 3 4 3 ...
 $ habitaciones: num  6 3 4 3 3 3 3 4 6 3 ...
 $ tipo        : chr  "Casa" "Casa" "Casa" "Casa" ...
 $ barrio      : chr  "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
 $ longitud    : num  -76.5 -76.5 -76.5 -76.5 -76.5 ...
 $ latitud     : num  3.43 3.43 3.44 3.44 3.46 ...
 $ estrato3    : num  1 1 1 0 0 0 0 0 0 0 ...
 $ estrato4    : num  0 0 0 1 0 0 1 0 0 0 ...
 $ estrato5    : num  0 0 0 0 1 1 0 1 1 1 ...
 $ estrato6    : num  0 0 0 0 0 0 0 0 0 0 ...

CASO 1

PASO 1 : FILTRADO DE DATOS

         zona piso estrato preciom areaconst parqueaderos banios habitaciones
9  Zona Norte    2       5     320       150            2      4            6
10 Zona Norte    2       5     780       380            2      3            3
31 Zona Norte    2       3     180       120            0      3            3
   tipo barrio  longitud latitud estrato3 estrato4 estrato5 estrato6
9  Casa  acopi -76.51341 3.47968        0        0        1        0
10 Casa  acopi -76.51674 3.48721        0        0        1        0
31 Casa  acopi -76.49768 3.47060        1        0        0        0

Para responder a la solicitud de asesoría en la compra de una vivienda, se realizó un filtrado de la base de datos, seleccionando únicamente aquellas propiedades que cumplen con los criterios de tipo “Casa” y ubicación en la Zona Norte de Cali.

Sin embargo, al realizar la geolocalización de las propiedades en un mapa interactivo, se identificó que algunos puntos clasificados como “Zona Norte” en la base de datos se encuentran fuera de esta zona, específicamente en el sur de la ciudad según sus coordenadas geográficas (latitud y longitud). Esto sugiere la presencia de datos inconsistentes o errores en la clasificación de zonas dentro del dataset.

Para depurar la base de datos, se estableció un rango geográfico de referencia para la Zona Norte, basado en la latitud y longitud de Cali: latitud mayor a 3.45 (dado que el sur tiene valores menores). longitud entre -76.6 y -76.4, correspondiente a la ubicación esperada de la Zona Norte.

Tras aplicar este filtro, se eliminaron los registros con coordenadas fuera del rango esperado, logrando una base de datos más coherente con la realidad geográfica de Cali.

PASO 2 : Análisis exploratorio

     zona                piso       estrato    preciom        areaconst     
 Length:527         Min.   :1.000   3:184   Min.   :110.0   Min.   :  30.0  
 Class :character   1st Qu.:2.000   4:115   1st Qu.:232.5   1st Qu.: 130.0  
 Mode  :character   Median :2.000   5:206   Median :360.0   Median : 223.1  
                    Mean   :1.987   6: 22   Mean   :385.5   Mean   : 239.8  
                    3rd Qu.:2.000           3rd Qu.:502.5   3rd Qu.: 314.0  
                    Max.   :4.000           Max.   :850.0   Max.   :1440.0  
  parqueaderos        banios        habitaciones        tipo          
 Min.   : 0.000   Min.   : 1.000   Min.   : 2.000   Length:527        
 1st Qu.: 0.000   1st Qu.: 2.000   1st Qu.: 3.000   Class :character  
 Median : 1.000   Median : 3.000   Median : 4.000   Mode  :character  
 Mean   : 1.397   Mean   : 3.471   Mean   : 4.554                     
 3rd Qu.: 2.000   3rd Qu.: 4.000   3rd Qu.: 5.000                     
 Max.   :10.000   Max.   :10.000   Max.   :10.000                     
    barrio             longitud         latitud         estrato3     
 Length:527         Min.   :-76.59   Min.   :3.451   Min.   :0.0000  
 Class :character   1st Qu.:-76.52   1st Qu.:3.467   1st Qu.:0.0000  
 Mode  :character   Median :-76.52   Median :3.475   Median :0.0000  
                    Mean   :-76.51   Mean   :3.475   Mean   :0.3491  
                    3rd Qu.:-76.50   3rd Qu.:3.484   3rd Qu.:1.0000  
                    Max.   :-76.48   Max.   :3.496   Max.   :1.0000  
    estrato4         estrato5         estrato6      
 Min.   :0.0000   Min.   :0.0000   Min.   :0.00000  
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.00000  
 Median :0.0000   Median :0.0000   Median :0.00000  
 Mean   :0.2182   Mean   :0.3909   Mean   :0.04175  
 3rd Qu.:0.0000   3rd Qu.:1.0000   3rd Qu.:0.00000  
 Max.   :1.0000   Max.   :1.0000   Max.   :1.00000  

El análisis de correlación entre el precio de las viviendas (“preciom”) y otras variables revela patrones interesantes en el mercado inmobiliario. La relación más fuerte se observa con el área construida (“areaconst”), con una correlación positiva de 0.72, lo que indica que a mayor área, mayor es el precio, un resultado previsible. En cuanto a los estratos socioeconómicos, el precio muestra una correlación negativa moderada con el estrato 3 (-0.63), sugiriendo que las propiedades más costosas son menos frecuentes en esta categoría. En contraste, la relación con el estrato 4 es prácticamente nula (0.05), mientras que en los estratos 5 y 6 se observa una correlación positiva moderada (0.46 y 0.29, respectivamente), indicando que las viviendas de mayor precio tienden a ubicarse en estos sectores. Además, el número de baños presenta una relación moderadamente positiva con el precio (0.61), lo que sugiere que este factor influye significativamente en el valor de las propiedades. Por otro lado, el número de habitaciones tiene una correlación más débil (0.38), lo que indica que su impacto en el precio es menor en comparación con el área o los baños.

PASO 3 : Estimación modelo de regresión


Call:
lm(formula = preciom ~ areaconst + estrato3 + estrato4 + estrato5 + 
    habitaciones + parqueaderos + banios, data = trainData)

Residuals:
    Min      1Q  Median      3Q     Max 
-531.61  -57.47  -14.46   45.55  392.34 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)   285.52302   34.42287   8.295 2.16e-15 ***
areaconst       0.48467    0.04607  10.520  < 2e-16 ***
estrato3     -220.65934   30.07682  -7.337 1.45e-12 ***
estrato4     -125.02371   29.12668  -4.292 2.27e-05 ***
estrato5      -82.24778   28.04943  -2.932  0.00358 ** 
habitaciones    2.24132    4.39692   0.510  0.61054    
parqueaderos   12.49942    3.85860   3.239  0.00131 ** 
banios         25.97878    5.46830   4.751 2.92e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 99.06 on 363 degrees of freedom
Multiple R-squared:  0.7062,    Adjusted R-squared:  0.7006 
F-statistic: 124.7 on 7 and 363 DF,  p-value: < 2.2e-16

El modelo de regresión lineal ajustado para predecir el precio de las viviendas (“preciom”) en función de diversas variables explica aproximadamente el 70.6% de la variabilidad en los precios (R² = 0.7062), lo que indica un buen ajuste. El coeficiente del área construida (“areaconst”) es positivo y significativo (0.48467, p < 2e-16), lo que confirma que el precio aumenta con el tamaño de la vivienda. Los estratos 3, 4 y 5 presentan coeficientes negativos y significativos, siendo el estrato 3 el que más reduce el precio (-220.66), seguido por el estrato 4 (-125.02) y el estrato 5 (-82.25), lo que sugiere que, en comparación con el estrato 6 (referencia), las propiedades en estos estratos tienden a ser más económicas. El número de baños y la cantidad de parqueaderos también tienen un efecto positivo y significativo sobre el precio (25.98 y 12.50, respectivamente), lo que indica que estos factores contribuyen al valor de la propiedad. Sin embargo, el número de habitaciones no resulta significativo (p = 0.61054), lo que sugiere que su impacto en el precio no es relevante cuando se consideran otras variables en el modelo. En general, el modelo es robusto, con una F-estadística altamente significativa (p < 2.2e-16), aunque la dispersión de los residuos sugiere que aún hay variabilidad en los precios no explicada por estas variables.

Para mejorar el modelo de regresión lineal y aumentar su capacidad predictiva, se pueden considerar varias estrategias. En primer lugar, la inclusión de nuevas variables relevantes, como la antigüedad de la vivienda, su estado de conservación o su ubicación exacta, podría aportar información valiosa. Asimismo, explorar interacciones entre variables, como el efecto combinado del área construida y el estrato socioeconómico, podría capturar relaciones más complejas. También es recomendable aplicar transformaciones logarítmicas al precio y a variables con alta dispersión para mejorar la linealidad y estabilizar la varianza

PASO 4 : Validación de supuestos del modelo


    Shapiro-Wilk normality test

data:  modelo$residuals
W = 0.93073, p-value = 4.22e-12

    Anderson-Darling normality test

data:  modelo$residuals
A = 6.8089, p-value < 2.2e-16


    studentized Breusch-Pagan test

data:  modelo
BP = 83.638, df = 7, p-value = 2.49e-15

    Durbin-Watson test

data:  modelo
DW = 1.5998, p-value = 3.738e-05
alternative hypothesis: true autocorrelation is greater than 0
Multicolinealidad (VIF) 
   areaconst     estrato3     estrato4     estrato5 habitaciones parqueaderos 
    1.685548     7.670978     5.375790     7.194260     1.841466     1.319396 
      banios 
    2.195818 

La validación de los supuestos del modelo revela varios aspectos que deben abordarse para mejorar su confiabilidad. En cuanto a la normalidad de los residuos, tanto la prueba de Shapiro-Wilk (p < 4.22e-12) como la de Anderson-Darling (p < 2.2e-16) indican que los residuos no siguen una distribución normal, lo que podría afectar la inferencia estadística del modelo. Para corregir esto, se podría probar una transformación logarítmica del precio o aplicar modelos más flexibles. Respecto a la homocedasticidad, la prueba de Breusch-Pagan (p = 2.49e-15) sugiere la presencia de heterocedasticidad, lo que indica que la variabilidad de los errores no es constante. Esto podría solucionarse mediante el uso de errores estándar robustos o transformaciones en las variables. En cuanto a la autocorrelación, la prueba de Durbin-Watson (DW = 1.60, p < 3.738e-05) señala una autocorrelación positiva en los residuos, lo que sugiere que el modelo no captura completamente la estructura de los datos, problema que podría abordarse incluyendo variables adicionales o empleando modelos de series temporales si los datos tienen un componente secuencial. Finalmente, la evaluación de la multicolinealidad mediante el VIF indica que los estratos 3, 4 y 5 tienen valores relativamente altos (> 5), lo que sugiere que están fuertemente correlacionados y podrían afectar la estabilidad del modelo. Para mitigar este problema, se podría considerar combinar estos estratos en una sola variable categórica o utilizar técnicas de reducción de dimensionalidad como el Análisis de Componentes Principales (PCA). En general, estos resultados indican que el modelo requiere ajustes para cumplir mejor con los supuestos de la regresión lineal y mejorar su precisión predictiva.

PASO 5 : Predicción modelo con las características solicitadas

# Mostrar resultados
precio_estrato4norte
       1 
330.8549 
precio_estrato5norte
       1 
373.6308 

Como resultado de las predicciones, se concluye que una casa en la zona norte de la ciudad de cali con las características mencionadas cuesta aproximadamente 330 millones de pesos cuando es estrato 4 y 373 millones cuando es estrato 5.

PASO 6 : Potenciales ofertas

CASO 2

PASO 1 : FILTRADO DE DATOS

        zona piso estrato preciom areaconst parqueaderos banios habitaciones
24  Zona Sur    5       4     290        96            1      2            3
164 Zona Sur    2       3      78        40            1      1            2
284 Zona Sur    4       3     135       117            0      2            3
           tipo     barrio  longitud latitud estrato3 estrato4 estrato5
24  Apartamento      acopi -76.53464 3.44987        0        1        0
164 Apartamento aguablanca -76.50100 3.40000        1        0        0
284 Apartamento    alameda -76.51400 3.44100        1        0        0
    estrato6
24         0
164        0
284        0

PASO 2 : Análisis exploratorio

     zona                piso        estrato     preciom        areaconst     
 Length:2723        Min.   : 1.000   3: 200   Min.   : 75.0   Min.   : 40.00  
 Class :character   1st Qu.: 3.000   4:1086   1st Qu.:170.0   1st Qu.: 65.00  
 Mode  :character   Median : 4.000   5:1029   Median :243.0   Median : 84.00  
                    Mean   : 4.362   6: 408   Mean   :280.7   Mean   : 94.03  
                    3rd Qu.: 5.000            3rd Qu.:328.5   3rd Qu.:108.00  
                    Max.   :12.000            Max.   :850.0   Max.   :932.00  
  parqueaderos       banios      habitaciones       tipo          
 Min.   : 0.00   Min.   :1.00   Min.   :1.000   Length:2723       
 1st Qu.: 1.00   1st Qu.:2.00   1st Qu.:3.000   Class :character  
 Median : 1.00   Median :2.00   Median :3.000   Mode  :character  
 Mean   : 1.17   Mean   :2.45   Mean   :2.962                     
 3rd Qu.: 2.00   3rd Qu.:3.00   3rd Qu.:3.000                     
 Max.   :10.00   Max.   :8.00   Max.   :6.000                     
    barrio             longitud         latitud         estrato3      
 Length:2723        Min.   :-76.57   Min.   :3.334   Min.   :0.00000  
 Class :character   1st Qu.:-76.54   1st Qu.:3.371   1st Qu.:0.00000  
 Mode  :character   Median :-76.53   Median :3.383   Median :0.00000  
                    Mean   :-76.53   Mean   :3.390   Mean   :0.07345  
                    3rd Qu.:-76.52   3rd Qu.:3.406   3rd Qu.:0.00000  
                    Max.   :-76.46   Max.   :3.497   Max.   :1.00000  
    estrato4         estrato5         estrato6     
 Min.   :0.0000   Min.   :0.0000   Min.   :0.0000  
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000  
 Median :0.0000   Median :0.0000   Median :0.0000  
 Mean   :0.3988   Mean   :0.3779   Mean   :0.1498  
 3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:0.0000  
 Max.   :1.0000   Max.   :1.0000   Max.   :1.0000  

PASO 3 : Estimación modelo de regresión


Call:
lm(formula = preciom ~ areaconst + estrato3 + estrato4 + estrato5 + 
    habitaciones + parqueaderos + banios, data = trainDatasur)

Residuals:
    Min      1Q  Median      3Q     Max 
-346.40  -39.99   -3.10   32.39  265.83 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)   118.2914    22.9313   5.159 4.10e-07 ***
areaconst       2.0151     0.1483  13.588  < 2e-16 ***
estrato3     -108.6003    17.6264  -6.161 1.92e-09 ***
estrato4     -107.9898    12.0421  -8.968  < 2e-16 ***
estrato5      -98.5662    11.1039  -8.877  < 2e-16 ***
habitaciones  -26.5860     7.6539  -3.474 0.000576 ***
parqueaderos   35.4153     7.1066   4.983 9.69e-07 ***
banios         42.0874     6.9979   6.014 4.41e-09 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 74.85 on 363 degrees of freedom
Multiple R-squared:  0.8356,    Adjusted R-squared:  0.8324 
F-statistic: 263.6 on 7 and 363 DF,  p-value: < 2.2e-16

PASO 4 : Validación de supuestos del modelo


    Shapiro-Wilk normality test

data:  modelosur$residuals
W = 0.9472, p-value = 3.066e-10

    Anderson-Darling normality test

data:  modelosur$residuals
A = 4.8792, p-value = 4.294e-12


    studentized Breusch-Pagan test

data:  modelosur
BP = 105.72, df = 7, p-value < 2.2e-16

    Durbin-Watson test

data:  modelosur
DW = 1.6834, p-value = 0.0007594
alternative hypothesis: true autocorrelation is greater than 0
Multicolinealidad (VIF) 
   areaconst     estrato3     estrato4     estrato5 habitaciones parqueaderos 
    2.744490     1.979202     2.082955     1.477374     1.405387     2.047546 
      banios 
    2.825750 

PASO 5 : Predicción modelo con las características solicitadas

# Mostrar resultados

precio_estrato5sur
      1 
723.829 

PASO 6 : Potenciales ofertas