CASO 2 C&A

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

Ayude a María a responder la solicitud, mediante técnicas modelación que usted conoce.

#devtools::install_github("centromagis/paqueteMODELOS", force = TRUE)
#devtools::install_github("centromagis/paqueteMODELOS", force =TRUE)
#library(paqueteMODELOS)
#data("vivienda")

BASE DE DATOS GENERAL

##     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
##   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

BASE DE DATOS FILTRADA POR ZONA NORTE

##     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

Cantidad de registros corresondientes a Zona Norte, de acuerdo con la variable Zona:

## [1] 2787

Resumen de Estadísticas descriptivas:

## 'data.frame':    2787 obs. of  13 variables:
##  $ id          : int  5098 698 8199 1241 5370 6975 5615 6262 7396 6949 ...
##  $ zona        : chr  "Zona Sur" "Zona Sur" "Zona Sur" "Zona Sur" ...
##  $ piso        : int  5 2 NA NA NA 6 8 NA NA NA ...
##  $ estrato     : int  4 3 6 3 3 4 3 3 3 4 ...
##  $ preciom     : int  290 78 875 135 135 220 210 105 115 220 ...
##  $ areaconst   : num  96 40 194 117 78 75 72 68 58 84 ...
##  $ parqueaderos: int  1 1 2 NA NA 1 2 NA 1 NA ...
##  $ banios      : int  2 1 5 2 1 2 2 2 2 2 ...
##  $ habitaciones: int  3 2 3 3 3 3 3 3 2 3 ...
##  $ tipo        : chr  "Apartamento" "Apartamento" "Apartamento" "Apartamento" ...
##  $ barrio      : chr  "acopi" "aguablanca" "aguacatal" "alameda" ...
##  $ longitud    : num  -76.5 -76.5 -76.6 -76.5 -76.5 ...
##  $ latitud     : num  3.45 3.4 3.46 3.44 3.44 ...

Cantidad de datos faltantes por variable:

##           id         zona         piso      estrato      preciom    areaconst 
##            0            0          622            0            0            0 
## parqueaderos       banios habitaciones         tipo       barrio     longitud 
##          406            0            0            0            0            0 
##      latitud 
##            0

Porcentaje de datos faltantes por variable:

##           id         zona         piso      estrato      preciom    areaconst 
##      0.00000      0.00000     22.31790      0.00000      0.00000      0.00000 
## parqueaderos       banios habitaciones         tipo       barrio     longitud 
##     14.56764      0.00000      0.00000      0.00000      0.00000      0.00000 
##      latitud 
##      0.00000

Resumen de Estadísticas descriptivas base de datos filtrada por Zona Norte:

  • Cantidad de registros filtrados: 2787
  • Tipo de datos por columna:
    • id: entero
    • zona: carácter
    • piso: entero (con 622 valores faltantes)
    • estrato: entero
    • preciom: entero
    • areaconst: numérico
    • parqueaderos: entero (con 406 valores faltantes)
    • banios: entero
    • habitaciones: entero
    • tipo: carácter
    • barrio: carácter
    • longitud: numérico
    • latitud: numérico
  • Datos faltantes:
    • piso: 622 valores faltantes
    • parqueaderos: 406 valores faltantes

Visualización de la Ubicación de los Predios

Verificación de Ubicación

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 Norte de Cali"
## 
## attr(,"class")
## [1] "labels"

Evidenciamos que existen registros ubicados fuera de la zona esperada.

Discusión sobre Posibles Inconsistencias

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

Resumen estadístico

##    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 norte a partir de la organización de los datos vamos a establecer en que latitud mínima se encuentran el 80% de los datos y comparamos con mapas oficiales de Cali (https://www.cali.gov.co/planeacion/publicaciones/169423/zonas_geograficas_idesc/). de esta forma establecemos los datos de los predios que se encuentran fuera de la zona norte.

## Límites de latitud:
## Percentil 20% (latitud mínima):  3.36845
##     id     zona piso estrato preciom areaconst parqueaderos banios habitaciones
## 1 5534 Zona Sur    1       4     175        69            1      2            3
## 2 2405 Zona Sur    3       4     155        62            1      2            2
## 3 5368 Zona Sur    6       4     226        64            1      2            3
## 4 3740 Zona Sur   10       4     147        60           NA      2            2
## 5 2406 Zona Sur   NA       4     215        72           NA      2            3
## 6 3408 Zona Sur   NA       5     280        90            1      2            3
##          tipo    barrio longitud latitud
## 1 Apartamento bochalema  -76.537   3.416
## 2 Apartamento bochalema  -76.520   3.367
## 3 Apartamento bochalema  -76.536   3.364
## 4 Apartamento bochalema  -76.528   3.426
## 5 Apartamento bochalema  -76.520   3.365
## 6 Apartamento bochalema  -76.526   3.434

Graficamos los puntos seleccionados como zona sur para identificar que se hayan seleccionado los correctos.

## 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 Predios Fuera de la Zona Norte de Cali"
## 
## attr(,"class")
## [1] "labels"

En la grafica podemos observa que se han excluido los predios que aúnque estan etiquetados con Zona sur, los datos de ubicación reflejan otras zonas, por lo cual podemos establecer que han sido etiquetados incorrectamente.

##     id     zona piso estrato preciom areaconst parqueaderos banios habitaciones
## 1 5534 Zona Sur    1       4     175        69            1      2            3
## 2 2405 Zona Sur    3       4     155        62            1      2            2
## 3 5368 Zona Sur    6       4     226        64            1      2            3
##          tipo    barrio longitud latitud
## 1 Apartamento bochalema  -76.537   3.416
## 2 Apartamento bochalema  -76.520   3.367
## 3 Apartamento bochalema  -76.536   3.364

Resultados tras la depuración

Después de excluir viviendas fuera de la Zona Sur de Cali, según los límites oficiales, quedaron 2057 registros en la base de datos.

## [1] 2057

Resumen estadístico de las viviendas filtradas

  • Precio mínimo: 75 millones
  • Precio máximo: 1750 millones
  • Área construida promedio: 98.7 m²
  • Número medio de parqueaderos: 1.43
  • Número medio de baños: 2.51
  • Número medio de habitaciones: 2.96
  • Datos faltantes:
    • piso: 447 valores faltantes (21.7% de los datos)
    • parqueaderos: 280 valores faltantes (13.6% de los datos).

Análisis Exploratorio de Datos

Análisis de las Distribuciones Observadas

A partir de los gráficos, podemos analizar distintos elementos clave de las variables Precio (preciom), Área Construida (areaconst), Parqueaderos y Baños.

  1. Distribución del Precio de las Viviendas:

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.

  1. Distribución del Área Construida

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.

  1. Distribución del Número de Parqueaderos

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.

  1. Distribución del Número de Baños

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.

Imputación de valores faltantes

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

Análisis de los Resultados tras la Imputación de Datos

La mayoría de las viviendas tienen 1 o 2 parqueaderos. La distribución sigue siendo asimétrica a la derecha, lo cual es esperable en este tipo de datos. Se observa una presencia menor de valores altos La imputación con la moda para parqueaderos fue adecuada, ya que respetó la distribución original y no introdujo valores extraños.

La imputación con la mediana en piso también fue apropiada, manteniendo la concentración en el valor más común sin generar sesgos significativos.

Transformación de variables y Tratamiento de Valores Atípicos

Los gráficos muestran que las Transformaciones Logarítmicas aplicadas en preciom y areaconst, han mejorado la normalidad de las variables, especialmente en log_preciom y log_areaconst.

Ahora, procederemos con la detección y tratamiento más detallado de valores atípicos.

Para identificar valores atípicos, utilizaremos boxplots y los estadísticos de Tukey (IQR - rango intercuartil).

Para verificar que las eliminaciones no han afectado la estructura de los datos, generaremos nuevos gráficos de distribución:

Análisis Exploratorio de Datos: Correlació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.

Matriz de correlación

log_preciom log_areaconst banios habitaciones
log_preciom 1.00 0.87 0.73 0.36
log_areaconst 0.87 1.00 0.75 0.48
banios 0.73 0.75 1.00 0.48
habitaciones 0.36 0.48 0.48 1.00

Estimación del modelo de regresión lineal múltiple

#install.packages("caTools")

Division de los datos 70% entrenamiento y 30% prueba

## [1] 1423
## [1] 580
## 
## Call:
## lm(formula = log_preciom ~ log_areaconst + parqueaderos + banios + 
##     habitaciones + estrato, data = train_data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.85955 -0.10921  0.00864  0.12141  0.82986 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    1.964008   0.098110  20.018  < 2e-16 ***
## log_areaconst  0.702767   0.025611  27.440  < 2e-16 ***
## parqueaderos   0.112022   0.009494  11.799  < 2e-16 ***
## banios         0.051341   0.009107   5.638 2.08e-08 ***
## habitaciones  -0.038891   0.010014  -3.884 0.000108 ***
## estrato4       0.194854   0.023936   8.141 8.53e-16 ***
## estrato5       0.335775   0.024968  13.448  < 2e-16 ***
## estrato6       0.557230   0.029964  18.596  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1831 on 1415 degrees of freedom
## Multiple R-squared:  0.8492, Adjusted R-squared:  0.8485 
## F-statistic:  1138 on 7 and 1415 DF,  p-value: < 2.2e-16
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.964 0.098 20.018 0
log_areaconst 0.703 0.026 27.440 0
parqueaderos 0.112 0.009 11.799 0
banios 0.051 0.009 5.638 0
habitaciones -0.039 0.010 -3.884 0
estrato4 0.195 0.024 8.141 0
estrato5 0.336 0.025 13.448 0
estrato6 0.557 0.030 18.596 0

Evaluación del modelo de entrenamiento

## R²:  0.849
## R² Ajustado:  0.848

Evaluación de modelo con el conjunto de prueba

Para evaluar el rendimiento del modelo se usaran metricas como:

Error cuadrático medio R²

## RMSE en el conjunto de prueba: 0.1728
## R² en el conjunto de prueba: 0.8621

R² = 0.8621 El modelo explica 86.2% de la variabilidad en los precios de las viviendas, El R² en prueba es cercano al de entrenamiento, por lo cual el modelo generaliza bien. El RMSE los valores se desvian un 17,2% de la escala original.

Análisis de Significancia de los Coeficientes

  • Área Construida (log_areaconst): Un aumento del 1% en el área construida está asociado con un incremento del 0.703% en el precio de la vivienda, manteniendo las demás variables constantes.
  • Número de Parqueaderos (parqueaderos): Cada parqueadero adicional se asocia con un incremento del 1.1% en el precio de la vivienda.
  • Número de Baños (banios): Cada baño adicional aumenta el precio de la vivienda en aproximadamente 5.1%.
  • Número de Habitaciones (habitaciones): No tiene un impacto estadísticamente significativo en el precio de la vivienda, ya que otras características (como área construida y baños) pueden ser más relevantes.
  • Estrato (estrato): Viviendas en estrato 4 tienen un precio 19.5% mayor que las de estrato 3, manteniendo todo lo demás constante, Viviendas en estrato 5 son 33.6% más costosas que las de estrato 3. Viviendas en estrato 6 son 55,7% más costosas que las de estrato 3.

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.

Validación del 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.

El intercepto (en este caso 1.964) es el valor de la variable dependiente (log(preciom)) cuando todas las demás variables explicativas (predictoras) son iguales a cero. al realizar la conversión:

Precio base=e Intercepto = e1.964 = 7.12.

Predicción del Precio de Vivienda para la Solicitud

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: 737.93 millones de pesos.
## El precio estimado para la vivienda 2 en estrato 6 es: 920.85 millones de pesos.

Interpretación:

  • Para estrato 5, el precio estimado de 737.93 millones está por debajo del crédito preaprobado, lo que indica que la compra es financieramente viable.
  • Para estrato 6, el precio estimado de 920.85 millones supera el crédito preaprobado, por lo que la compra podría requerir financiamiento adicional o una negociación en el precio.

Identificación de Ofertas Potenciales con las predicciones del modelo

barrio preciom areaconst parqueaderos banios habitaciones estrato
cataya real 560 141 3 5 4 6
ciudad jardín 570 130 2 4 4 6
ciudad jardín 460 127 2 4 4 6
ciudad jardín 850 187 3 5 4 6
ciudad jardín 410 142 2 3 4 5

Visualización de las Ofertas en un Mapa

Análisis:

  • Se han identificado que en la zona sur ninguna vivienda cumple con el requisito de área (300 m²) y 5 habitaciones.

  • En el barrio ciudad jardín hay la opción con mayor área construida (187 m²), 3 parqueaderos, 5 baños, 4 habitaciones estrato 6.

  • En el barrio ciudad jardín también encontramos la opción más económica (410 millones), 2 parqueaderos, área construida (142 m²), con 4 habitaciones y 3 baños.

  • cataya real tienen características intermedias, con precios entre 560 millones, 3 parqueaderos, área construida (141 m²), con 4 habitaciones y 5 baños.

Recomendación: - En el barrio ciudad jardín se encuentran las mejores opciones en referencia a precio y área,
- En el barrio cataya real se encuentran opciones con mayor cantidad de baños, habitaciones y estrato.