1. Descripción

María es propietaria de la agencia inmobiliaria C&A (Casas y Apartamentos) ubicada en la ciudad de Cali. Actualmente, el mercado de bienes raíces en la ciudad ha presentado una desaceleración debido a factores económicos y sociales, lo que ha reducido la actividad de compra y venta de viviendas. Sin embargo, se espera que esta situación mejore en el futuro cercano gracias a la disponibilidad de crédito por parte de instituciones financieras que están impulsando el sector de la construcción y la adquisición de vivienda.

En este contexto, una empresa internacional ha solicitado a la agencia asesoría para la compra de dos viviendas destinadas a alojar a dos de sus empleados y sus respectivas familias en la ciudad. Para cada caso se han especificado ciertas características deseadas de las viviendas, tales como el tipo de propiedad, área construida, número de parqueaderos, número de baños, número de habitaciones, estrato socioeconómico y zona de ubicación. Además, se cuenta con un monto de crédito preaprobado para cada vivienda, el cual establece una restricción presupuestal para la selección de las propiedades.

Con el fin de brindar una recomendación informada, se utilizarán técnicas de modelación estadística basadas en regresión lineal múltiple para analizar la relación entre el precio de las viviendas y sus características estructurales y de ubicación. Para ello se empleará una base de datos de viviendas comercializadas recientemente en la ciudad, la cual contiene información relevante como área construida, número de habitaciones, baños, parqueaderos, estrato, zona y tipo de vivienda, entre otras variables.

A partir de este análisis se buscará estimar modelos que permitan explicar y predecir el precio de las viviendas en función de sus características. Con base en estos resultados se evaluará si las condiciones solicitadas por la empresa internacional son coherentes con los montos de crédito disponibles y se formularán recomendaciones sobre el tipo de vivienda que podría ajustarse mejor a cada caso.

2.Variables

Tabla 1.1 - Resumen descriptivo de las variables dataset vivienda
Nombre Descripción Clasificación por naturaleza
id Llave registro único Cuantitativa discreta
zona ubicación de la vivienda : Zona Centro, Zona Norte,… Cualitativa nominal
piso piso que ocupa la vivienda : primer piso, segundo piso… Cuantitativa discreta
estrato estrato socio-económico : 3,4,5,6 Cualitativa ordinal
preciom precio de la vivienda en millones de pesos Cuantitativa continua
areaconst área construida Cuantitativa continua
parqueaderos número de parqueaderos Cuantitativa discreta
banios número de baños Cuantitativa discreta
habitaciones número de habitaciones Cuantitativa discreta
tipo tipo de vivienda : Casa, Apartamento Cualitativa nominal
barrio barrio de ubicación de la vivienda : 20 de Julio, alamos,.. Cualitativa nominal
longitud coordenada geográfica Cuantitativa continua
latitud coordenada geográfica Cuantitativa continua

3. EDA - ANALISIS EXPLORATRIO DE DATOS GENARAL

3.1 Forma Dataset

## [1] 8322   13

Se cuenta con un dataset de 8322 registros y 13 variables o atributos.

3.2 Duplicados

El primer paso en el procesamiento y limpieza de los datos fue identificar los registros duplicados. Partiendo de un total de 8322 registros, aplicamos la función ‘duplicated’ de R. se encontraron un total de 1 registro duplicados, los cuales son removidos para quedar con 8321 registros.

3.3 Errores y datos atípicos

Los errores en los datos y valores atípicos se identificaron a partir de gráficas y tablas que permiten tener una visión completa y complementaria para evitar que se omitan datos que deben ser tratados; para esto se debe asegurar que se aplica el gráfico correcto por cada tipo de variable; por lo tanto, se hace división del análisis entre variables Cualitativas o categóricas (incluyendo las cuantitativas discretas de pocos valores) y las variables Cuantitativas continuas y discretas (con muchos valores).

3.3.1 Variables Cualitativas y Cuantitativas (pocos valores)

Para este tipo de variables se escogen las gráficas de barras al ser por excelencia la mejor forma de representarlas.

En la Figura 1, se pueden observar las gráficas de la 1.1 a la 1.6, donde aparentemente las variables parecen presentar valores dentro del rango esperado según el contexto de cada variable; solo se observa en algunas graficas la etiqueta “NA” que será tratada más adelante. La variable “barrio” no fue considerada dentro de estas graficas ya que presenta demasiadas categorías (>400) y no se hace legible su interpretación.

Figura 1: Gráficas de barras

3.3.2 Variables Cuantitativas

Para las variables cuantitativas, si bien se pueden representar con histogramas, no son tan buenas para identificar datos atípicos, por lo que se utilizaron mejor graficas de cajas.

En la Figura 2, se pueden observar las gráficas de la 2.1 y 2.2, donde estas variables presentan una gran cantidad de datos atípicos que se remontan unos con otros (para más detalle ver tabla 2.1), dificultando identificar la cantidad de estos. Analizando la lógica de los valores para estas variables, si bien valores altos para “preciom” o “areaconst” son poco comunes, siguen siendo valores posibles, por lo que no se observan inconsistencias en los valores o rango que estos están tomando.

Figura 2: Graficas de Cajas

Tabla 2.1
Num_Inconsistencias Num_Atipicos
preciom 0 552
areaconst 0 382

NOTA IMPORTANTE: como se está trabajando con el mismo dataset de la actividad pasada, el detalle profundo del análisis exploratorio de los datos AED se relaciona al detalle en el Anexo 4

4. MODELAD CASO 1

4.1 Filtro Caso - Vivienda 1 - Credito 350 Millones

## # A tibble: 3 × 10
##   zona  estrato preciom areaconst parqueaderos banios habitaciones tipo  latitud
##   <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl> <chr>   <dbl>
## 1 Zona…       5     320       150            2      4            6 Casa     3.48
## 2 Zona…       5     780       380            2      3            3 Casa     3.49
## 3 Zona…       6     750       445            4      7            6 Casa     3.39
## # ℹ 1 more variable: longitud <dbl>

En este 1er paso se realiza el filtro al dataset de viviendas para quedar solo con los registros correspondientes a “Casa” en la variable “tipo” y a “Zona Norte” en la variable “zona”. Se presenta tabla donde se observa el top 3 de los registros de la información filtrada base1

table(base1$tipo)
## 
## Casa 
##  722
table(base1$zona)
## 
## Zona Norte 
##        722

con el código table(base1$[nombre_variable]) podemos comprobar cuantos registros hay por cada una de las categorías de la variable seleccionada. para los siguientes casos, se observa que solo hay 722 registros tanto para para “zona” como para “tipo” donde solo hay categorías únicas de “casa” y “Zona Norte”

Figura 4.1 - Ubicación Viviendas

En la figura 4.1 se puede observar que las viviendas filtradas para la Zona Norte, si bien están ubicadas en su mayoría en esta zona, se observan casos en los que no necesariamente están dentro de dicha zona; esto puede deberse a varios motivos, por ejemplo ya sea por la imprecisión a la hora de registrar los datos de coordenadas, diferencia en los límites establecidos para cada uno de las zona o por ejemplo al manejo interno de la compañía en la nomenclatura de zonas Vs los establecidos realmente en bases de datos de la ciudad.

4.2 EDA + correlación entre target y predictoras

A continuación se presenta un análisis exploratorio de datos de la variable respuesta (precio de la vivienda) en función de las diversas variables predictoras utilizando gráficos interactivos:

4.2.1 Precio Vs Area Construida

4.2.2 Precio Vs Estrato

4.2.3 Precio Vs Nro Baños

4.2.4 Precio Vs Nro Habitaciones

4.2.4 Precio Vs Zona

Resumen estadístico del precio de viviendas por zona
zona n precio_promedio precio_min Q1 precio_mediana Q3 precio_max desviacion_estandar coef_var
Zona Norte 722 445.91 89 261.25 390 550 1940 268.36 0.6

En general este análisis exploratorio muestra que el precio de venta de las viviendas tiene mayor asociación positiva con variables como Area Construida y Estrato, presentando coeficientes de 0.687 y 0.61 respectivamente, los cuales se pueden considerar como moderados, lo que significa que estas variables pueden aportar más para la predicción del precio en el modelo de rlm; otras variables como numero de baños y numero de habitaciones presentan un coeficiente de correlación débil o muy bajo de 0.264 para ambas variables, los cual no son tan significativas en describir el comportamiento del precio de venta.

Con respecto a la relación del precio y la zona, se observan datos no muy dispersos (coef var de 60%), la vivienda más barata cuesta 89 (unidad de dinero), donde el 25% de las viviendas presentan un precio de al menos 261.25 (unidad de dinero), el 50% de las viviendas presentan un precio de 390 (unidad de dinero), sin embargo la media es 445.91 (unidad de dinero), por lo que en este segmento se pueden encontrar viviendas con precios de ventas atipicos o outliers tal como se ve en la gráfica. el 75% de las viviendas valen 550 (unidad de dinero) y la vivienda más costosa cuesta 1940 (unidad de dinero), en parte confirmando porque la media es más alta que la mediana.

4.3 Modelo Regresión Lineal Múltiple MRLM

A continuación se implementa un modelo de regresión lineal múltiple para predecir la variable respuesta “precio de la vivienda” en función de otras variables como son:

  • área construida
  • estrato
  • numero de habitaciones
  • numero parqueaderos
  • numero baños

de forma general quedaría así:

\[ precio=f(area,estrato,num habitaciones,num parqueaderos,num banños) \]

Luego de correr el modelo, se obtienen el siguiente cuadro resumen:

## 
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + 
##     banios, data = base1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -863.38  -79.63  -15.77   44.20 1028.48 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -229.92058   28.98531  -7.932 8.28e-15 ***
## areaconst       0.76550    0.04353  17.585  < 2e-16 ***
## estrato        78.62555    7.12646  11.033  < 2e-16 ***
## habitaciones    1.12658    4.02604   0.280 0.779693    
## parqueaderos   33.14104    5.44883   6.082 1.93e-09 ***
## banios         20.17681    5.31167   3.799 0.000158 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 155.2 on 716 degrees of freedom
## Multiple R-squared:  0.6679, Adjusted R-squared:  0.6656 
## F-statistic:   288 on 5 and 716 DF,  p-value: < 2.2e-16

4.3.1 Significancia estadística de los coeficientes

se parte de la siguiente regla:

  • p-value < 0.05 → variable significativa

  • p-value ≥ 0.05 → variable no significativa

Partiendo de esta regla y según la tabla anterior, todas las variables menos “numero de habitaciones” son significativas para el modelo ya que tienen un p-value menos a 0.05.

Para el caso de la variable “numero de habitaciones”, cuyo p-value es 0.779, esto es > 0.05, podemos concluir que no es estadísticamente significativa en el modelo, esto significa que no aporta información adicional al modelo cuando consideramos las otras variables. Es puede tener sentido en este contexto, ya que “generalmente” el número de habitaciones suele estar correlacionada con el área construida.

4.3.2 interpretación de los coeficientes

Area Construida

Coeficinte 0.7655

A partir de los resultados anteriores, podemos interpretar que si mantuviéramos constantes las otras variables predictoras, un incremento de una unidad en el área construida está asociado con un aumento promedio de 0.77 millones (unidades de dinero) en el precio de la vivienda. esto puede tener sentido porque las viviendas más grandes suelen ser más costosas.

Estrato

Coeficiente 78.63

A partir de los resultados anteriores, podemos interpretar que si mantuviéramos constantes las otras variables predictoras, un incremento de una unidad en el estrato socioeconómico, está asociado con un aumento promedio de 78.63 millones (unidades de dinero) en el precio de la vivienda. esto puede tener sentido porque es coherente con lo que se observa en el mercado inmobiliario.

Numero Habitaciones

Coeficiente 1.126 (pero no significativo)

El número de habitaciones no resulta estadísticamente significativo en este modelo, lo que nos indica que incluyendo las otras variables, esta variable, no aporta información adicional relevante para explicar el precio de la vivienda. cómo se mencionó anteriormente, esto tiene sentido ya que el número de habitaciones está relacionado con el área construida

Numero Parqueaderos

Coeficiente 33.14

A partir de los resultados anteriores, podemos interpretar que si mantuviéramos constantes las otras variables predictoras, un incremento de una unidad en el número de parqueaderos, está asociado con un aumento promedio de 33.14 millones (unidades de dinero) en el precio de la vivienda. esto puede tener sentido principalmente en zonas urbanas, para este caso es la ciudad de Cali.

Numero Baños

Coeficiente 20.17

A partir de los resultados anteriores, podemos interpretar que si mantuviéramos constantes las otras variables predictoras, un incremento de una unidad en el número de baños, está asociado con un aumento promedio de 20.14 millones (unidades de dinero) en el precio de la vivienda. esto puede tener sentido ya que simplemente refleja la realidad del mercado.

4.3.3 interpretación R^2

el coeficiente R^2 de 0.6679 indica que aproximadamente el 66.8% de la variabilidad en el precio de las viviendas es explicada por las variables contempladas en este modelo.

El F-estadístico global de 288 con p-value < 0.05 (2.2e-16), el cual nos dice su el modelo completo tiene capacidad explicativa, permite concluir que el modelo tiene buena capacidad explicativa.

4.3.4 ¿Como podría mejorar el modelo?

Si se elimina la variable número de habitaciones, puede que el R2 se mantenga o incluso baje un poco, sin embargo, puede que el R2 ajustado si mejore, esto indicaría que el modelo sin la variable número de habitaciones es más eficiente.

Se puede dar una revisión más a profundidad al tema de “multicolinealidad” a variables como area construida, numero habitaciones y numero de baños, sin embargo, en el análisis exploratorio de los datos, se observa como ninguna variable presenta un coeficiente mayor a 0.8, por lo que no se puede afirmar que exista multicolinealidad fuerte

en general el modelo podría mejorarse evaluando diferentes escenarios y sobre todo validando los supuestos del modelo de regresión, tales como el mencionado anteriormente de multicolinealidad, evaluaciones alternativas eliminando variables no significativas, evaluar la capacidad predictiva del modelo mediante técnicas de validación cruzada. Asimismo, el análisis de residuos y la identificación de observaciones influyentes permiten verificar la validez de los supuestos del modelo y mejorar su capacidad explicativa.

4.4 Validación de Supuestos

A continuación se muestra el resultado de la evaluación de los supuestos básicos de un modelo de regresión lineal, donde si buen puede que alguno no se cumpla, no se entrara a hacer ajustes o transformaciones necesarias para que cumpla ya que no es el objetivo de este ejercicio.

4.4.1 Supuestos de linealidad

En este grafico se observa que los residuos están dispersos aleatoriamente alrededor de 0, (aunque es de resaltar que las dispersión de los residuos aumenta cuando el precio predicho aumenta, pero esto puede estar más relacionado con heterocedasticidad y no con falta de linealidad), no se presentan patrones sistemáticos y no se observa una curva clara, por lo que se puede concluir que el supuesto de linealidad parece razonablemente cumplirse, esto indica que la relación entre la variable respuesta y las variables explicativas es aproximadamente lineal.

4.4.2 Normalidad de residuos

En la validación de este supuesto, lo que espera verse en este grafico Q-Q de normalidad de residuos es que los puntos estén alineados aproximadamente sobre la línea diagonal sin descuacones fuertes en los extremos, sin embargo en este grafico se observa que en la parte central los puntos siguen muy bien la línea diagonal, sin embargo en los extremos o colas, espacialmente en la cola superior, los puntos se desvían de la línea. Se pueden observar algunos pintos marcados (208, 513 y 632) que corresponde a residuos grandes.

De lo anterior se concluye entonces que la normalidad se cumple aproximadamente en el centro de la distribución pero hay desviaciones en las colas, con valores atipicos más grandes de los que se esperaría en una desviación normal. Si bien se puede considerar una normalidad de residuos razonablemente aceptable, puede que para otros fines deba revisarse más a detalle dichos valores atipicos, aplicar transformaciones o utilizar otros modelos.

4.4.3 Supuesto de homocedasticidad

A simple vista, se puede observar en este grafico que el supuesto de homocedasticidad no se está cumpliendo completamente ya que en este tipo de grafico (Scale-Location) esperamos que los puntos estén dispersos de forma relativamente uniforme, que la línea roja sea aproximadamente horizontal y que no se observe aumento o disminución sistemática de la dispersión, de las cuales ninguno de estos 3 principios se cumple.

En esta grafica se observa que la línea roja tiene una pendiente positiva y a medida que aumentan los valores ajustados (precio estimado), aumenta la dispersión de los residuos. además los puntos están más concentrados en la parte izquierda y la dispersión se abre hacia la derecha. Por lo tanto, tal como se sospechaba en el supuesto anterior, se está presentando heterocedasticidad.

4.4.4 Identificación de observaciones influyentes

En este grafico se utiliza la distancia de Cook para detectar observaciones influyentes, donde se mide principalmente el impacto sobre el modelo si se eliminara determinada observación, o mejor dicho, identifica observaciones que tienen demasiada influencia en la estimación de los coeficientes del modelo.

Para este caso puntual se observan 3 registros que destacados (632,513 y 186) donde la observación 632 es a que tendría mayor impacto en el modelo. dichas observaciones podrían corresponder a viviendas con precios muy altos o muy bajos, viviendas con características poco comunes (Areas grandes con pocas habitaciones) o posibles valores atipicos.

4.4.5 Verificación de multicolinealidad

##    areaconst      estrato habitaciones parqueaderos       banios 
##     1.585075     1.468551     1.620809     1.381668     1.961217

Se parte de los resultados de VIF (Variance Inflation Factor) para evaluar de forma correcta la multicolinealidad, donde se tienen las siguientes reglas:

  • VIF ≈ 1 sin correlación entre variables
  • 1 < VIF < 5 multicolinealidad baja (aceptable)
  • 5 < VIF < 10 posible problema
  • VIF > 10 multicolinealidad severa

Con base en dichas reglas de interpretación, todas las variables están entre 1 y 5 VIF, por lo que en este supuesto se puede concluir que se presenta multicolinealidad baja o aceptable.

5. PREDICCION CASO 1

Con base en las características de la primera solicitud:

y el modelo previamente desarrollado:

\[ preciom=β0+β1areaconst+β2estrato+β3habitaciones+β4parqueaderos+β5banios \]

se procederá a predecir el valor del precio de la vivienda para ver si se ajusta con el valor del crédito aprobado.

## [1] "vivienda para Estrato 4"
##        1 
## 315.6817
## [1] "vivienda para Estrato 5"
##        1 
## 394.3072

Tal como se puede observar, cuando ingresamos al modelo las características de la vivienda, en este caso teniendo en cuenta que sea estrato 4, vemos que nos da como predicción del valor de la vivienda por 315.68 millones, es decir, que con las características que se solicita, se puede encontrar una vivienda con las condiciones deseadas donde se podrá comprar con el crédito preaprobado.

Para el caso donde hacemos la predicción del precio pero teniendo presente que sea estrato 5, se observa que la predicción del precio es 394.3 millones, superando el valor del crédito preaprobado, por lo que una vivienda con las características antes mencionadas en este estrato no será posible conseguirla.

6. SUGERENCIA OFERTAS CASO 1

A continuación se presentan las sugerencias de viviendas que se ajustan al monto preaprobado del crédito, teniendo en cuenta las siguientes condiciones:

tenemos como resultado una lista de 8 viviendas que cumplen con los requisitos detalladas en la siguiente tabla:

## # A tibble: 8 × 7
##   preciom precio_predicho areaconst habitaciones banios parqueaderos estrato
##     <dbl>           <dbl>     <dbl>        <dbl>  <dbl>        <dbl>   <dbl>
## 1     265            307.       162            4      3            1       4
## 2     275            307.       190            3      2            1       4
## 3     340            316.       158            3      2            2       4
## 4     600            327.       160            5      4            1       4
## 5     340            327.       162            4      4            1       4
## 6     330            329.       165            4      4            1       4
## 7     500            338.       160            4      3            2       4
## 8     260            350.       150            3      4            2       4

Para tener una mejor visual, se presenta la ubicación exacta de las viviendas de la tabla anterior con su ubicación exacta en el mapa y una breve descripción al pasar el mouse sobre cada opción.

7. MODELAD CASO 2

7.1 Filtro Caso - Vivienda 2 - Credito 850 Millones

## # A tibble: 3 × 10
##   zona  estrato preciom areaconst parqueaderos banios habitaciones tipo  latitud
##   <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl> <chr>   <dbl>
## 1 Zona…       4     290        96            1      2            3 Apar…    3.45
## 2 Zona…       3      78        40            1      1            2 Apar…    3.4 
## 3 Zona…       6     875       194            2      5            3 Apar…    3.46
## # ℹ 1 more variable: longitud <dbl>

En este 1er paso se realiza el filtro al dataset de viviendas para quedar solo con los registros correspondientes a “Apartamento” en la variable “tipo” y a “Zona Sur” en la variable “zona”. Se presenta tabla donde se observa el top 3 de los registros de la información filtrada base2

table(base2$tipo)
## 
## Apartamento 
##        2787
table(base2$zona)
## 
## Zona Sur 
##     2787

con el código table(base2$[nombre_variable]) podemos comprobar cuantos registros hay por cada una de las categorías de la variable seleccionada. para los siguientes casos, se observa que solo hay 2787 registros tanto para para “zona” como para “tipo” donde solo hay categorías únicas de “Apartamento” y “Zona Sur”

Figura 7.1 - Ubicación Viviendas

En la figura 7.1 se puede observar que las viviendas filtradas para la Zona Sur, si bien están ubicadas en su mayoría en esta zona, se observan casos en los que no necesariamente están dentro de dicha zona; esto puede deberse a varios motivos, por ejemplo ya sea por la imprecisión a la hora de registrar los datos de coordenadas, diferencia en los límites establecidos para cada uno de las zona o por ejemplo al manejo interno de la compañía en la nomenclatura de zonas Vs los establecidos realmente en bases de datos de la ciudad.

7.2 EDA + correlación entre target y predictoras

A continuación se presenta un análisis exploratorio de datos de la variable respuesta (precio de la vivienda) en función de las diversas variables predictoras utilizando gráficos interactivos:

7.2.1 Precio Vs Area Construida

7.2.2 Precio Vs Estrato

7.2.3 Precio Vs Nro Baños

7.2.4 Precio Vs Nro Habitaciones

7.2.5 Precio Vs Zona

Resumen estadístico del precio de viviendas por zona
zona n precio_promedio precio_min Q1 precio_mediana Q3 precio_max desviacion_estandar coef_var
Zona Sur 2787 297.29 75 175 245 335 1750 191.55 0.64

En general este análisis exploratorio muestra que el precio de venta de las viviendas tiene mayor asociación positiva con variables como Area Construida, Nro Baños y Estrato, presentando coeficientes de 0.758, 0.72 y 0.673 respectivamente, los cuales se pueden considerar como moderados-altos, lo que significa que estas variables pueden aportar más para la predicción del precio en el modelo de rlm; otras variables como numero de habitaciones presentan un coeficiente de correlación débil o muy bajo de 0.264, lo cual no son tan significativas en describir el comportamiento del precio de venta.

Con respecto a la relación del precio y la zona, se observan datos no muy dispersos (coef var de 64%), la vivienda más barata cuesta 75 millones (unidad de dinero), donde el 25% de las viviendas presentan un precio de al menos 175 millones (unidad de dinero), el 50% de las viviendas presentan un precio de 245 millones (unidad de dinero), sin embargo la media es 297 millones (unidad de dinero), por lo que en este segmento se pueden encontrar viviendas con precios de ventas atipicos o outliers tal como se ve en la gráfica. el 75% de las viviendas valen 335 millones (unidad de dinero) y la vivienda más costosa cuesta 1750 (unidad de dinero), en parte confirmando porque la media es más alta que la mediana.

7.3 Modelo Regresión Lineal Múltiple MRLM - Caso 2

A continuación se implementa un modelo de regresión lineal múltiple para predecir la variable respuesta “precio de la vivienda” en función de otras variables como son:

  • área construida
  • estrato
  • numero de habitaciones
  • numero parqueaderos
  • numero baños

de forma general quedaría así:

\[ precio=f(area,estrato,num habitaciones,num parqueaderos,num banños) \]

Luego de correr el modelo, se obtienen el siguiente cuadro resumen:

## 
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + 
##     banios, data = base2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1194.88   -38.40    -2.56    37.93   931.36 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -268.02884   13.08317 -20.487  < 2e-16 ***
## areaconst       1.40366    0.04897  28.664  < 2e-16 ***
## estrato        61.63779    2.69254  22.892  < 2e-16 ***
## habitaciones  -19.32758    3.37406  -5.728 1.12e-08 ***
## parqueaderos   57.86343    3.29687  17.551  < 2e-16 ***
## banios         48.54336    3.00716  16.143  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 94.37 on 2781 degrees of freedom
## Multiple R-squared:  0.7577, Adjusted R-squared:  0.7573 
## F-statistic:  1740 on 5 and 2781 DF,  p-value: < 2.2e-16

7.3.1 Significancia estadística de los coeficientes

se parte de la siguiente regla:

  • p-value < 0.05 → variable significativa

  • p-value ≥ 0.05 → variable no significativa

Partiendo de esta regla y según la tabla anterior, todas las variables son significativas para el modelo ya que tienen un p-value menos a 0.05.

A diferencia del modelo para el caso de vivienda 1, la variable Num habitaciones para el caso 2 si aporta informacion adicional al modelo cuando se consideran las otras variables.

7.3.2 interpretación de los coeficientes

Area Construida

Coeficinte 1.403

A partir de los resultados anteriores, podemos interpretar que si mantuviéramos constantes las otras variables predictoras, un incremento de una unidad en el área construida está asociado con un aumento promedio de 1.403 millones (unidades de dinero) en el precio de la vivienda. esto puede tener sentido porque las viviendas más grandes suelen ser más costosas.

Estrato

Coeficiente 61.63

A partir de los resultados anteriores, podemos interpretar que si mantuviéramos constantes las otras variables predictoras, un incremento de una unidad en el estrato socioeconómico, está asociado con un aumento promedio de 61.63 millones (unidades de dinero) en el precio de la vivienda. esto puede tener sentido porque es coherente con lo que se observa en el mercado inmobiliario.

Numero Habitaciones

Coeficiente -19.32

A partir de los resultados anteriores, podemos interpretar que si mantuviéramos constantes las otras variables predictoras, un incremento de una unidad en el estrato socioeconómico, está asociado con una disminucion promedio de 19.32 millones (unidades de dinero) en el precio de la vivienda. Esto se debera interpretar a la luz de un conocimiento mas detallado y especializado en el mercado inmobiliario, pero podria significar que personas que buscan casas grandes por ejemplo, quieren habitaciones grandes, entonces para un tamaño determinado de la vivienda, aumentar el numero de habitaciones conservando la misma area construida implicaria habitaciones mas pequeñas.

Numero Parqueaderos

Coeficiente 57.86

A partir de los resultados anteriores, podemos interpretar que si mantuviéramos constantes las otras variables predictoras, un incremento de una unidad en el número de parqueaderos, está asociado con un aumento promedio de 57.86 millones (unidades de dinero) en el precio de la vivienda. esto puede tener sentido principalmente en zonas urbanas, para este caso es la ciudad de Cali.

Numero Baños

Coeficiente 48.54

A partir de los resultados anteriores, podemos interpretar que si mantuviéramos constantes las otras variables predictoras, un incremento de una unidad en el número de baños, está asociado con un aumento promedio de 48.54 millones (unidades de dinero) en el precio de la vivienda. esto puede tener sentido ya que simplemente refleja la realidad del mercado.

7.3.3 interpretación R^2

el coeficiente R^2 de 0.7577 indica que aproximadamente el 75.77% de la variabilidad en el precio de las viviendas es explicada por las variables contempladas en este modelo.

El F-estadístico global de 1740 con p-value < 0.05 (2.2e-16), el cual nos dice que el modelo completo tiene capacidad explicativa.

7.3.4 ¿Como podría mejorar el modelo?

Si se elimina la variable número de habitaciones, puede que el R2 se mantenga o incluso baje un poco, sin embargo, puede que el R2 ajustado si mejore, esto indicaría que el modelo sin la variable número de habitaciones es más eficiente.

Se puede dar una revisión más a profundidad al tema de “multicolinealidad” a variables como area construida, numero habitaciones y numero de baños, sin embargo, en el análisis exploratorio de los datos, se observa como ninguna variable presenta un coeficiente mayor a 0.8, por lo que no se puede afirmar que exista multicolinealidad fuerte

en general el modelo podría mejorarse evaluando diferentes escenarios y sobre todo validando los supuestos del modelo de regresión, tales como el mencionado anteriormente de multicolinealidad, evaluaciones alternativas eliminando variables no significativas, evaluar la capacidad predictiva del modelo mediante técnicas de validación cruzada. Asimismo, el análisis de residuos y la identificación de observaciones influyentes permiten verificar la validez de los supuestos del modelo y mejorar su capacidad explicativa.

7.4 Validación de Supuestos

A continuación se muestra el resultado de la evaluación de los supuestos básicos de un modelo de regresión lineal, donde si buen puede que alguno no se cumpla, no se entrara a hacer ajustes o transformaciones necesarias para que cumpla ya que no es el objetivo de este ejercicio.

7.4.1 Supuestos de linealidad

En este grafico se observa que los residuos están dispersos aleatoriamente alrededor de 0, (aunque es de resaltar que las dispersión de los residuos aumenta cuando el precio predicho aumenta, pero esto puede estar más relacionado con heterocedasticidad y no con falta de linealidad), no se presentan patrones sistemáticos y no se observa una curva clara, por lo que se puede concluir que el supuesto de linealidad parece razonablemente cumplirse, esto indica que la relación entre la variable respuesta y las variables explicativas es aproximadamente lineal.

7.4.2 Normalidad de residuos

En la validación de este supuesto, lo que espera verse en este grafico Q-Q de normalidad de residuos es que los puntos estén alineados aproximadamente sobre la línea diagonal sin descuacones fuertes en los extremos, sin embargo en este grafico se observa que en la parte central los puntos siguen muy bien la línea diagonal, sin embargo en los extremos o colas, espacialmente en la cola superior, los puntos se desvían de la línea. Se pueden observar algunos pintos marcados (208, 513 y 632) que corresponde a residuos grandes.

De lo anterior se concluye entonces que la normalidad se cumple aproximadamente en el centro de la distribución pero hay desviaciones en las colas, con valores atipicos más grandes de los que se esperaría en una desviación normal. Si bien se puede considerar una normalidad de residuos razonablemente aceptable, puede que para otros fines deba revisarse más a detalle dichos valores atipicos, aplicar transformaciones o utilizar otros modelos.

7.4.3 Supuesto de homocedasticidad

A simple vista, se puede observar en este grafico que el supuesto de homocedasticidad no se está cumpliendo completamente ya que en este tipo de grafico (Scale-Location) esperamos que los puntos estén dispersos de forma relativamente uniforme, que la línea roja sea aproximadamente horizontal y que no se observe aumento o disminución sistemática de la dispersión, de las cuales ninguno de estos 3 principios se cumple.

En esta grafica se observa que la línea roja tiene una pendiente positiva y a medida que aumentan los valores ajustados (precio estimado), aumenta la dispersión de los residuos. además los puntos están más concentrados en la parte izquierda y la dispersión se abre hacia la derecha. Por lo tanto, tal como se sospechaba en el supuesto anterior, se está presentando heterocedasticidad.

7.4.4 Identificación de observaciones influyentes

En este grafico se utiliza la distancia de Cook para detectar observaciones influyentes, donde se mide principalmente el impacto sobre el modelo si se eliminara determinada observación, o mejor dicho, identifica observaciones que tienen demasiada influencia en la estimación de los coeficientes del modelo.

Para este caso puntual se observan 3 registros que destacados (632,513 y 186) donde la observación 632 es a que tendría mayor impacto en el modelo. dichas observaciones podrían corresponder a viviendas con precios muy altos o muy bajos, viviendas con características poco comunes (Areas grandes con pocas habitaciones) o posibles valores atipicos.

7.4.5 Verificación de multicolinealidad

##    areaconst      estrato habitaciones parqueaderos       banios 
##     2.073124     1.608360     1.425023     1.589392     2.470040

Se parte de los resultados de VIF (Variance Inflation Factor) para evaluar de forma correcta la multicolinealidad, donde se tienen las siguientes reglas:

  • VIF ≈ 1 sin correlación entre variables
  • 1 < VIF < 5 multicolinealidad baja (aceptable)
  • 5 < VIF < 10 posible problema
  • VIF > 10 multicolinealidad severa

Con base en dichas reglas de interpretación, todas las variables están entre 1 y 5 VIF, por lo que en este supuesto se puede concluir que se presenta multicolinealidad baja o aceptable.

8. PREDICCION CASO 2

Con base en las características de la primera solicitud:

y el modelo previamente desarrollado:

\[ preciom=β0+β1areaconst+β2estrato+β3habitaciones+β4parqueaderos+β5banios \]

se procederá a predecir el valor del precio de la vivienda para ver si se ajusta con el valor del crédito aprobado.

## [1] "vivienda para Estrato 4"
##        1 
## 683.8414
## [1] "vivienda para Estrato 5"
##        1 
## 745.4791

Tal como se puede observar, cuando ingresamos al modelo las características de la vivienda, en este caso teniendo en cuenta que sea estrato 4, vemos que nos da como predicción del valor de la vivienda por 315.68 millones, es decir, que con las características que se solicita, se puede encontrar una vivienda con las condiciones deseadas donde se podrá comprar con el crédito preaprobado.

Para el caso donde hacemos la predicción del precio pero teniendo presente que sea estrato 5, se observa que la predicción del precio es 394.3 millones, superando el valor del crédito preaprobado, por lo que una vivienda con las características antes mencionadas en este estrato no será posible conseguirla.

9. SUGERENCIA OFERTAS CASO 1

A continuación se presentan las sugerencias de viviendas que se ajustan al monto preaprobado del crédito, teniendo en cuenta las siguientes condiciones:

tenemos como resultado una lista de 8 viviendas que cumplen con los requisitos detalladas en la siguiente tabla:

## # A tibble: 2 × 7
##   preciom precio_predicho areaconst habitaciones banios parqueaderos estrato
##     <dbl>           <dbl>     <dbl>        <dbl>  <dbl>        <dbl>   <dbl>
## 1     530            719.       256            5      5            3       5
## 2     670            762.       300            6      5            3       5

Para tener una mejor visual, se presenta la ubicación exacta de las viviendas de la tabla anterior con su ubicación exacta en el mapa y una breve descripción al pasar el mouse sobre cada opción.

Anexos

Anexo 1

Código utilizado para revisar en consola las frecuencias de las variables cuantitativas

# Mostrar resultados de valores atípicos por variable
cat("Resultados del análisis multivariado:\n")
## Resultados del análisis multivariado:
for (var in names(resultados_multivariado)) {
  cat(paste("Variable: ", var, "\n"))
  cat("  Límites: ", resultados_multivariado[[var]]$Limites, "\n")
  cat("  Inconsistencias: ", resultados_multivariado[[var]]$Inconsistencias, "\n")
  cat("  Atípicos: ", resultados_multivariado[[var]]$Atipicos, "\n\n")
}
## Variable:  preciom 
##   Límites:  -260 1020 
##   Inconsistencias:   
##   Atípicos:  1400 1400 1150 1200 1100 1130 1850 1950 1050 1200 1400 1100 1190 1106 1300 1350 1350 1050 1250 1150 1050 1050 1300 1200 1220 1100 1090 1126 1100 1300 1700 1500 1700 1300 1200 1300 1200 1200 1350 1200 1200 1380 1850 1300 1200 1600 1200 1195 1200 1700 1400 1800 1200 1500 1300 1100 1125 1400 1400 1120 1200 1450 1450 1250 1380 1350 1450 1370 1250 1195 1200 1480 1100 1700 1700 1400 1750 1600 1150 1150 1550 1100 1561 1400 1700 1600 1550 1100 1050 1650 1100 1200 1680 1500 1250 1550 1100 1600 1150 1300 1800 1500 1500 1600 1100 1600 1200 1400 1240 1700 1350 1150 1150 1150 1600 1500 1280 1200 1100 1800 1800 1200 1500 1200 1200 1150 1200 1500 1200 1100 1800 1700 1800 1400 1700 1800 1650 1500 1200 1400 1900 1800 1200 1100 1400 1350 1700 1500 1100 1280 1250 1250 1250 1050 1200 1200 1250 1200 1255 1590 1100 1390 1350 1590 1350 1650 1090 1385 1150 1150 1200 1250 1400 1450 1250 1200 1300 1400 1250 1400 1100 1500 1150 1800 1100 1200 1050 1080 1100 1200 1250 1200 1100 1700 1650 1250 1800 1200 1400 1800 1500 1390 1385 1600 1440 1300 1133 1600 1077 1090 1100 1180 1250 1800 1500 1250 1200 1200 1200 1200 1250 1300 1400 1400 1400 1280 1750 1350 1100 1100 1200 1400 1400 1400 1400 1150 1100 1500 1050 1200 1320 1180 1400 1100 1400 1300 1200 1200 1200 1850 1100 1500 1370 1400 1250 1050 1350 1180 1850 1300 1400 1850 1200 1200 1850 1100 1300 1500 1400 1300 1300 1250 1650 1900 1600 1700 1700 1700 1200 1150 1250 1600 1600 1600 1800 1200 1398 1700 1250 1500 1400 1480 1650 1800 1300 1400 1300 1600 1500 1100 1550 1100 1200 1450 1450 1200 1300 1450 1300 1300 1200 1700 1100 1170 1200 1250 1200 1280 1200 1700 1800 1250 1300 1280 1160 1200 1100 1700 1850 1280 1350 1400 1150 1600 1700 1250 1300 1600 1750 1050 1050 1200 1100 1350 1250 1270 1900 1850 1400 1400 1300 1150 1250 1900 1580 1500 1200 1200 1280 1350 1350 1200 1900 1900 1400 1100 1150 1500 1300 1300 1300 1280 1590 1300 1800 1300 1300 1800 1400 1200 1300 1300 1700 1280 1700 1900 1350 1200 1350 1600 1200 1150 1680 1100 1360 1100 1300 1200 1500 1800 1100 1330 1200 1200 1900 1500 1300 1600 1700 1900 1500 1500 1100 1600 1999 1600 1350 1530 1650 1940 1950 1300 1051 1078 1200 1103 1580 1500 1100 1270 1100 1160 1350 1500 1900 1600 1800 1550 1300 1150 1830 1200 1200 1850 1584 1100 1500 1550 1100 1950 1400 1500 1300 1250 1250 1200 1150 1200 1350 1350 1150 1226 1150 1300 1150 1250 1250 1150 1450 1200 1220 1850 1900 1850 1800 1350 1200 1220 1250 1350 1800 1050 1100 1300 1800 1270 1149 1200 1200 1550 1250 1750 1600 1400 1300 1200 1150 1400 1090 1500 1400 1400 1583 1250 1150 1080 1200 1180 1250 1400 1350 1050 1400 1500 1290 1330 1330 1350 1801 1200 1800 1230 1110 1330 1200 1395 1100 1250 1200 1400 1600 1590 1400 1450 1200 1400 1400 1500 1500 1250 1650 1600 1200 1200 1400 1050 1100 1100 1550 1400 1650 1800 
## 
## Variable:  areaconst 
##   Límites:  -143.5 452.5 
##   Inconsistencias:   
##   Atípicos:  455 480 480 550 540 460 595 480 960 500 752 463 460 750 487 1365 520 900 700 660 600 1000 730 467 520 520 870 650 500 540 760 530 530 485 490 930 560 724 1000 520 960 500 530 800 520 505 619 1050 490 520 500 588 1040 500 910 540 600 460 480 500 480 630 836 500 464 510 500 610 640 520 534 900 1000 520 1586 535 850 480 620 600 590 500 540 550 800 600 600 600 600 480 800 660 600 600 600 550 600 530 530 542 470 517 780 700 1188 500 500 1000 500 500 500 550 500 460 616 600 750 486 600 1200 750 500 550 453 610 454 600 750 500 551 500 550 700 584 476 552 600 520 600 480 550 550 470 470 605 550 600 500 460 700 1745 455 607 500 520 495 573 728 850 460 650 736 468 736 463 920 480 503 503 503 500 500 600 600 536 500 560 470 457 460 490 640 455 520 520 838 550 500 597 474.63 500 500 460 600 530 460 500 590 495 500 800 487 700 489 800 483 670 600 510 510 530 806 537 540 600 1500 455 463 500 550 619 565 1500 619 461 619 600 720 596 570 1000 462 480 520 844 835 1000 575 500 500 469 1090 550 833 565 600 619 700 650 619 619 800 850 1100 465 700 619 1250 550 700 500 550 461 470 550 1000 619 650 503 980 480 740 980 480 900 1092 773 1600 500 500 765 700 510 472 500 800 500 583 560 759 480 510 502 900 500 700 530 500 776 850 734 734 500 490 624 792 552 520 454 1200 453 600 950 496 650 455 453 470 800 525 453 463 615 500 628 638 550 550 480 500 480 457 459 459 475 475 474 720 480 825 637 530 740 739 627 487 470 500 487 630 487 467 741 500 490 500 455 455 900 500 484 600 475 640 640 480 480 932 465 496 942 496 523.3 660 730 520 588 500 1440 537 507 460

Anexo 2

Código para realizar la prueba de Little a los faltantes

# datos_complemento3 <- dplyr::select(datos_limpio1, 
#                                     parqueaderos
#                                     ,preciom)
# 
# littles_test <- mcar_test(datos_complemento3)
littles_test <- mcar_test(datos_limpio1)
littles_test
## # A tibble: 1 × 4
##   statistic    df p.value missing.patterns
##       <dbl> <dbl>   <dbl>            <int>
## 1     2212.    36       0                6

Anexo 3

metodo mice - Multivariate Imputation by Chained Equations

# datos_original <- datos_limpio1

# imputacion <- mice(datos_limpio1, method = "pmm", m = 5)

# datos_imputados <- complete(imputacion)

Anexo 4

A4.1 Análisis de datos faltantes

La Grafica 3.1 permite visualizar que variables presentan datos faltantes y su proporción. En esta, a primera vista se observa que solo las variables piso y parqueadero presentan 2635 y 1602 registros respectivamente.

Grafica 3.1 Variables que tienen datos faltantes

Para comprobar y visualizar mejor estos datos, se utiliza la **Grafica 3.2* de matriz de patrones de faltantes, que muestra la cantidad y distribución de dichos faltantes entre las variables.

En esta grafica se puede evidenciar que en realidad todas las variables tienen al menos 1 faltante o en la mayoría de los casos 2 faltantes.

Grafica 3.2 Matriz de patrones de datos faltantes

En resumen, los datos faltantes y su frecuencia relativa se pueden observar más detalladamente en la tabla 3.3

Tabla 6.3 valores faltantes por variable
Faltantes Porcentaje %
piso 2637 31.69
parqueaderos 1604 19.28
id 2 0.02
zona 2 0.02
estrato 2 0.02
areaconst 2 0.02
banios 2 0.02
habitaciones 2 0.02
tipo 2 0.02
barrio 2 0.02
longitud 2 0.02
latitud 2 0.02
preciom 1 0.01

Se por las gráficas 3.2 y 3.3, se puede comprobar que los datos contienen 1 fila totalmente vacía y otra solo con un valor en preciom, por lo que al ser registros prácticamente vacíos, se procede a eliminarlos. Esto nos deja con un dataframe de 8319 registros y 13 variables.

## [1] 8319   13

A4.2 Determinación tipo de faltantes

Como se revisó anteriormente, la variable “piso” presenta una gran cantidad de datos faltantes (>30%), por lo que se determina no utilizar esta variable en adelante debido a que una imputación podría afectar fuertemente la variación real de los datos y segar el modelo.

Para la variable “parqueadero”, si bien un 19.28% sigue siendo un porcentaje alto de faltantes, se considera hacer una imputación de datos. Para eso, se hace en primer lugar, un análisis de correlación entre variables para tener un mejor entendimiento de los datos.

Figura 3.4 Matriz de correlación entre variables.

Se observa una asociación positiva alta (0.7) entre la variable parqueadero y la variable preciom, sin embargo, se considera hacer la prueba de little para asegurar que el comportamiento de los datos faltantes sigue un patro MCAR Ver anexo 2.

El resultado del valor - p de la prueba fue < a 0.0001, que es menor al límite 0.05, esto significa que se descarta la hipótesis nula de que los datos faltantes siguen un comportamiento MCAR para la variable parqueadero. Esto nos deja en el escenario que probablemente sean MAR debido a la correlación de 0.7 que tienen con preciom. Debido a lo anterior, no es correcto utilizar una imputación con media o mediana sino una imputación múltiple (mice)

A4.3 Manejo de datos faltantes

Partiendo de lo anterior, la prueba de Little indica que el patrón de datos faltantes no es completamente aleatorio (MCAR). Por lo tanto, se justifica el uso de imputación múltiple bajo el supuesto MAR. Revisar Anexo 3 para más detalle.

Una vez imputados los valores faltantes en la variable parqueadero, se revisar la distribución de densidad con el fin de corroborar que no se haya alterado su distribución inicial, para esto revisar

Finalmente, se quitan variables que no agregan valor para futuros modelos como id, tambien la variable barrio por tener tantas categorías (>400) y las variables de coordenadas (latitud y longitud). El resumen final de las variables es:

##      zona              estrato         preciom         areaconst     
##  Length:8319        Min.   :3.000   Min.   :  58.0   Min.   :  30.0  
##  Class :character   1st Qu.:4.000   1st Qu.: 220.0   1st Qu.:  80.0  
##  Mode  :character   Median :5.000   Median : 330.0   Median : 123.0  
##                     Mean   :4.634   Mean   : 433.9   Mean   : 174.9  
##                     3rd Qu.:5.000   3rd Qu.: 540.0   3rd Qu.: 229.0  
##                     Max.   :6.000   Max.   :1999.0   Max.   :1745.0  
##   parqueaderos       banios        habitaciones        tipo          
##  Min.   : 1.00   Min.   : 0.000   Min.   : 0.000   Length:8319       
##  1st Qu.: 1.00   1st Qu.: 2.000   1st Qu.: 3.000   Class :character  
##  Median : 1.00   Median : 3.000   Median : 3.000   Mode  :character  
##  Mean   : 1.76   Mean   : 3.111   Mean   : 3.605                     
##  3rd Qu.: 2.00   3rd Qu.: 4.000   3rd Qu.: 4.000                     
##  Max.   :10.00   Max.   :10.000   Max.   :10.000                     
##     latitud         longitud     
##  Min.   :3.333   Min.   :-76.59  
##  1st Qu.:3.381   1st Qu.:-76.54  
##  Median :3.416   Median :-76.53  
##  Mean   :3.418   Mean   :-76.53  
##  3rd Qu.:3.452   3rd Qu.:-76.52  
##  Max.   :3.498   Max.   :-76.46