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:
El mercado inmobiliario se caracteriza por la influencia de múltiples factores que determinan el valor de una vivienda. Variables como el área construida, el estrato socioeconómico, el número de habitaciones, la cantidad de baños y la ubicación geográfica suelen desempeñar un papel importante en la formación del precio de los inmuebles. Debido a la interacción entre estas variables, resulta necesario utilizar herramientas de análisis estadístico que permitan comprender mejor su relación con el precio de las propiedades.
En este trabajo se analiza una base de datos de viviendas con el propósito de construir un modelo de regresión lineal múltiple que permita estimar el precio de los inmuebles a partir de sus principales características. Este tipo de modelo resulta útil para identificar cuáles variables tienen mayor influencia en la valoración de las propiedades y para generar estimaciones del precio esperado de una vivienda bajo determinadas condiciones.
El análisis se desarrolla en el contexto del caso de estudio de la empresa inmobiliaria C&A (Casas y Apartamentos), la cual ha recibido una solicitud de asesoría para la compra de dos viviendas destinadas a empleados de una compañía internacional. Con el fin de apoyar la toma de decisiones, se realiza un análisis exploratorio de los datos, la estimación de un modelo de regresión lineal múltiple, la validación de los supuestos del modelo y la predicción del precio de viviendas con características específicas. A partir de estos resultados, se identifican posibles ofertas disponibles en el mercado que puedan ajustarse a los requerimientos y al presupuesto de los clientes.
Los datos utilizados en este análisis provienen del paquete de GitHub denominado paqueteMODELOS, el cual contiene una base de datos con información relacionada con características físicas, ubicación y precio de diferentes viviendas registradas en la ciudad. Esta base de datos permite analizar la relación entre las características estructurales de los inmuebles y su valor en el mercado inmobiliario.
library(paqueteMODELOS)
## Loading required package: boot
## Loading required package: broom
## Loading required package: GGally
## Loading required package: ggplot2
## Loading required package: gridExtra
## Warning: package 'gridExtra' was built under R version 4.3.3
## Loading required package: knitr
## Warning: package 'knitr' was built under R version 4.3.3
## Loading required package: summarytools
data("vivienda")
str(vivienda)
## spc_tbl_ [8,322 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ id : num [1:8322] 1147 1169 1350 5992 1212 ...
## $ zona : chr [1:8322] "Zona Oriente" "Zona Oriente" "Zona Oriente" "Zona Sur" ...
## $ piso : chr [1:8322] NA NA NA "02" ...
## $ estrato : num [1:8322] 3 3 3 4 5 5 4 5 5 5 ...
## $ preciom : num [1:8322] 250 320 350 400 260 240 220 310 320 780 ...
## $ areaconst : num [1:8322] 70 120 220 280 90 87 52 137 150 380 ...
## $ parqueaderos: num [1:8322] 1 1 2 3 1 1 2 2 2 2 ...
## $ banios : num [1:8322] 3 2 2 5 2 3 2 3 4 3 ...
## $ habitaciones: num [1:8322] 6 3 4 3 3 3 3 4 6 3 ...
## $ tipo : chr [1:8322] "Casa" "Casa" "Casa" "Casa" ...
## $ barrio : chr [1:8322] "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
## $ longitud : num [1:8322] -76.5 -76.5 -76.5 -76.5 -76.5 ...
## $ latitud : num [1:8322] 3.43 3.43 3.44 3.44 3.46 ...
## - attr(*, "spec")=List of 3
## ..$ cols :List of 13
## .. ..$ id : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ zona : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ piso : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ estrato : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ preciom : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ areaconst : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ parqueaderos: list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ banios : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ habitaciones: list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ tipo : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ barrio : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ longitud : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ latitud : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## ..$ default: list()
## .. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
## ..$ delim : chr ";"
## ..- attr(*, "class")= chr "col_spec"
## - attr(*, "problems")=<externalptr>
head(vivienda)
## # A tibble: 6 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1147 Zona O… <NA> 3 250 70 1 3 6
## 2 1169 Zona O… <NA> 3 320 120 1 2 3
## 3 1350 Zona O… <NA> 3 350 220 2 2 4
## 4 5992 Zona S… 02 4 400 280 3 5 3
## 5 1212 Zona N… 01 5 260 90 1 2 3
## 6 1724 Zona N… 01 5 240 87 1 3 3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
La base de datos contiene información de 8322 viviendas registradas en distintas zonas de la ciudad. Las variables incluidas describen características estructurales de los inmuebles, tales como el área construida, el número de habitaciones, el número de baños y la cantidad de parqueaderos, así como variables socioeconómicas y de ubicación como el estrato y la zona geográfica. En particular, la variable precio se encuentra expresada en millones de pesos y será utilizada como variable respuesta en los modelos de regresión que se estimarán posteriormente. Las demás variables se consideran potenciales variables explicativas, ya que representan atributos que pueden influir en el valor de mercado de las viviendas. Este conjunto de datos constituye la base para realizar el análisis exploratorio, la estimación del modelo de regresión lineal múltiple y la posterior predicción del precio de viviendas con características específicas, en el marco del caso de estudio planteado para la empresa inmobiliaria C&A.
En esta sección se realiza un análisis descriptivo de la base de datos de viviendas con el objetivo de comprender las características generales del conjunto de observaciones antes de proceder con la estimación del modelo de regresión lineal múltiple. Este análisis permite explorar la distribución de las principales variables relacionadas con el precio de las viviendas, tales como el área construida, el estrato socioeconómico, el número de baños, parqueaderos y habitaciones, así como su distribución según la zona y el tipo de vivienda. De acuerdo con el caso de estudio planteado, el precio de la vivienda constituye la variable respuesta, mientras que las demás variables representan posibles factores explicativos que pueden influir en su valor dentro del mercado inmobiliario..
summary(vivienda)
## id zona piso estrato
## Min. : 1 Length:8322 Length:8322 Min. :3.000
## 1st Qu.:2080 Class :character Class :character 1st Qu.:4.000
## Median :4160 Mode :character Mode :character Median :5.000
## Mean :4160 Mean :4.634
## 3rd Qu.:6240 3rd Qu.:5.000
## Max. :8319 Max. :6.000
## NA's :3 NA's :3
## preciom areaconst parqueaderos banios
## Min. : 58.0 Min. : 30.0 Min. : 1.000 Min. : 0.000
## 1st Qu.: 220.0 1st Qu.: 80.0 1st Qu.: 1.000 1st Qu.: 2.000
## Median : 330.0 Median : 123.0 Median : 2.000 Median : 3.000
## Mean : 433.9 Mean : 174.9 Mean : 1.835 Mean : 3.111
## 3rd Qu.: 540.0 3rd Qu.: 229.0 3rd Qu.: 2.000 3rd Qu.: 4.000
## Max. :1999.0 Max. :1745.0 Max. :10.000 Max. :10.000
## NA's :2 NA's :3 NA's :1605 NA's :3
## habitaciones tipo barrio longitud
## Min. : 0.000 Length:8322 Length:8322 Min. :-76.59
## 1st Qu.: 3.000 Class :character Class :character 1st Qu.:-76.54
## Median : 3.000 Mode :character Mode :character Median :-76.53
## Mean : 3.605 Mean :-76.53
## 3rd Qu.: 4.000 3rd Qu.:-76.52
## Max. :10.000 Max. :-76.46
## NA's :3 NA's :3
## latitud
## Min. :3.333
## 1st Qu.:3.381
## Median :3.416
## Mean :3.418
## 3rd Qu.:3.452
## Max. :3.498
## NA's :3
table(vivienda$zona)
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## 124 1920 1198 351 4726
table(vivienda$tipo)
##
## Apartamento Casa
## 5100 3219
A partir del resumen estadístico de la base de datos se observa que el conjunto contiene 8322 registros de viviendas, lo que representa una muestra suficientemente amplia para analizar el comportamiento del mercado inmobiliario en la ciudad.
En relación con el precio de las viviendas, se observa una alta variabilidad en los valores registrados. Los precios oscilan aproximadamente entre 58 millones y 1999 millones de pesos, con un precio promedio cercano a 433.9 millones de pesos y una mediana de 330 millones. Esta diferencia entre la media y la mediana sugiere la presencia de algunas viviendas de alto valor que elevan el promedio general, lo cual es común en bases de datos del mercado inmobiliario.
En cuanto al área construida, el promedio es de aproximadamente 174.9 metros cuadrados, aunque se observan viviendas considerablemente más grandes que alcanzan hasta 1745 m². Esta amplia dispersión indica la coexistencia de viviendas de diferentes tamaños, desde propiedades relativamente compactas hasta inmuebles de gran extensión, lo cual puede tener un impacto significativo en el precio final.
Respecto a las características estructurales de las viviendas, el número promedio de baños es cercano a 3, mientras que el número promedio de parqueaderos se sitúa alrededor de 1.8, lo que indica que muchas viviendas cuentan con al menos uno o dos espacios de estacionamiento. De manera similar, el número promedio de habitaciones es cercano a 3.6, lo que corresponde a configuraciones típicas de viviendas familiares.
En cuanto a la distribución geográfica de las viviendas, la mayor cantidad de registros se encuentra en la zona sur (4726 viviendas), seguida por la zona norte (1920 viviendas) y la zona oeste (1198 viviendas). En contraste, la zona centro presenta un número considerablemente menor de observaciones. Esta distribución sugiere que la oferta inmobiliaria se concentra principalmente en determinadas áreas de la ciudad, lo cual puede reflejar patrones de expansión urbana y desarrollo residencial.
Finalmente, al analizar el tipo de vivienda, se observa que predominan los apartamentos (5100 registros) frente a las casas (3219 registros). Este resultado podría reflejar las dinámicas actuales del desarrollo urbano, donde los proyectos de vivienda multifamiliar han adquirido mayor relevancia debido al crecimiento de la población urbana y a la optimización del uso del suelo.
En conjunto, estos resultados permiten obtener una primera aproximación al comportamiento de las variables analizadas y constituyen un paso fundamental antes de estimar el modelo de regresión lineal múltiple que permitirá analizar con mayor detalle los factores que influyen en el precio de las viviendas
Con el objetivo de analizar las viviendas que cumplen con las condiciones establecidas en la primera solicitud del caso de estudio, se realiza un proceso de filtrado sobre la base de datos original. En particular, se seleccionan únicamente aquellas viviendas que corresponden al tipo casa y que se encuentran ubicadas en la zona norte de la ciudad. Este procedimiento permite centrar el análisis en un subconjunto específico de propiedades que cumplen con los criterios definidos para el primer escenario de compra planteado por la empresa inmobiliaria C&A.
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
##
## combine
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
base1 <- vivienda %>%
filter(tipo == "Casa", zona == "Zona Norte")
head(base1,3)
## # A tibble: 3 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1209 Zona N… 02 5 320 150 2 4 6
## 2 1592 Zona N… 02 5 780 380 2 3 3
## 3 4057 Zona N… 02 6 750 445 NA 7 6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
Para comprobar que el proceso de filtrado se aplicó correctamente, se revisa la distribución de las variables tipo de vivienda y zona dentro del nuevo subconjunto de datos.
table(base1$tipo)
##
## Casa
## 722
table(base1$zona)
##
## Zona Norte
## 722
Los resultados muestran que el subconjunto obtenido contiene 722 observaciones, todas correspondientes a viviendas tipo casa ubicadas en la zona norte. Esto confirma que el filtrado se aplicó correctamente y que el nuevo conjunto de datos incluye únicamente las propiedades relevantes para el análisis del primer caso de estudio. Este subconjunto será utilizado en las siguientes etapas del análisis, incluyendo la exploración gráfica de los datos y la estimación del modelo de regresión.
library(leaflet)
leaflet(base1) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitud,
lat = ~latitud,
popup = ~preciom
)
El mapa permite visualizar la distribución espacial de las viviendas tipo casa ubicadas en la zona norte de la ciudad según el filtro aplicado previamente. En general, se observa una concentración importante de viviendas en el sector norte y nororiental de la ciudad, lo cual resulta consistente con la clasificación de la variable zona presente en la base de datos.
No obstante, también se identifican algunos puntos que aparentemente se ubican fuera de la zona norte, particularmente hacia sectores más centrales o incluso hacia el sur de la ciudad. Este comportamiento puede explicarse por diferentes razones. En primer lugar, la variable zona puede corresponder a una clasificación administrativa o comercial utilizada en el mercado inmobiliario, la cual no necesariamente coincide de manera exacta con los límites geográficos visibles en el mapa. En segundo lugar, también pueden existir pequeñas imprecisiones en la georreferenciación de algunos registros, ya sea por errores en la captura de las coordenadas o por procesos de geocodificación aproximada.
En términos generales, la mayor parte de las observaciones se concentra en áreas que corresponden razonablemente a la zona norte de la ciudad, por lo que el subconjunto de datos obtenido resulta adecuado para continuar con el análisis exploratorio y la modelación estadística correspondiente al primer caso de estudio.
Con el fin de identificar posibles relaciones entre el precio de las viviendas y sus características estructurales, se realiza un análisis exploratorio de datos. En particular, se examina la relación entre el precio de la vivienda y variables como el área construida, el estrato socioeconómico, el número de baños y el número de habitaciones. Para este análisis se utilizan gráficos interactivos mediante el paquete plotly, lo cual permite explorar visualmente la posible correlación entre las variables.
#Precio vs área construida
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
plot_ly(base1,
x = ~areaconst,
y = ~preciom,
type = "scatter",
mode = "markers",
marker = list(color = 'blue')) %>%
layout(title = "Relación entre precio y área construida",
xaxis = list(title = "Área construida"),
yaxis = list(title = "Precio (millones)"))
El gráfico de dispersión entre el precio de la vivienda y el área construida muestra una clara tendencia positiva. A medida que aumenta el área construida de la vivienda, el precio tiende a incrementarse. Esto resulta coherente con la lógica del mercado inmobiliario, donde las propiedades con mayor superficie construida suelen tener un mayor valor comercial. También se observa una mayor dispersión en los precios a partir de áreas superiores a 400 m², lo cual sugiere que en viviendas de mayor tamaño intervienen otros factores adicionales que influyen en su valoración.
# Precio vs estrato
plot_ly(base1,
x = ~estrato,
y = ~preciom,
type = "scatter",
mode = "markers",
marker = list(color = 'darkgreen')) %>%
layout(title = "Relación entre precio y estrato",
xaxis = list(title = "Estrato"),
yaxis = list(title = "Precio (millones)"))
En el gráfico correspondiente al estrato socioeconómico se observa que las viviendas ubicadas en estratos más altos presentan, en general, precios más elevados. Las viviendas de estrato 3 se concentran principalmente en rangos de precio más bajos, mientras que en los estratos 5 y 6 se observan precios considerablemente mayores. Este comportamiento es consistente con las características del mercado inmobiliario, ya que los estratos más altos suelen estar asociados con mejores condiciones urbanísticas, mayor valorización del suelo y mayor demanda.
# Precio vs baños
plot_ly(base1,
x = ~banios,
y = ~preciom,
type = "scatter",
mode = "markers",
marker = list(color = 'purple')) %>%
layout(title = "Relación entre precio y número de baños",
xaxis = list(title = "Número de baños"),
yaxis = list(title = "Precio (millones)"))
El análisis de la relación entre el número de baños y el precio de la vivienda muestra una tendencia creciente, aunque con una dispersión considerable. En general, las viviendas con mayor número de baños tienden a presentar precios más altos, lo cual refleja que este atributo puede ser un indicador del tamaño y nivel de confort de la vivienda. Sin embargo, la dispersión observada indica que el número de baños por sí solo no determina completamente el valor de la propiedad, sino que interactúa con otras variables como el área construida o el estrato.
# Precio vs habitaciones
plot_ly(base1,
x = ~habitaciones,
y = ~preciom,
type = "scatter",
mode = "markers",
marker = list(color = 'orange')) %>%
layout(title = "Relación entre precio y número de habitaciones",
xaxis = list(title = "Número de habitaciones"),
yaxis = list(title = "Precio (millones)"))
El gráfico que relaciona el número de habitaciones con el precio de la vivienda también muestra una tendencia positiva. A medida que aumenta el número de habitaciones, el precio tiende a incrementarse, lo cual es coherente con el hecho de que las viviendas con mayor número de espacios habitables suelen tener mayor tamaño y, por lo tanto, mayor valor en el mercado. No obstante, también se observa una variabilidad importante en los precios para un mismo número de habitaciones, lo que indica que existen otros factores relevantes que influyen en el valor final de las viviendas.
En conjunto, los resultados del análisis exploratorio sugieren que variables como el área construida, el estrato socioeconómico, el número de baños y el número de habitaciones presentan una relación positiva con el precio de las viviendas. En general, los gráficos de dispersión permiten observar que, a medida que aumentan estas características estructurales o socioeconómicas, el precio de los inmuebles tiende a incrementarse, aunque con distintos niveles de dispersión entre las observaciones.
Particularmente, el área construida parece mostrar una relación más clara con el precio, lo cual resulta consistente con la lógica del mercado inmobiliario, donde las viviendas de mayor tamaño suelen tener un mayor valor comercial. De manera similar, el estrato socioeconómico también evidencia una tendencia creciente en los precios, lo cual refleja las diferencias en valorización entre zonas con distintos niveles socioeconómicos. Por su parte, variables como el número de baños y el número de habitaciones muestran una relación positiva con el precio, aunque con mayor variabilidad entre las viviendas analizadas.
Si bien este análisis no permite establecer relaciones causales definitivas, sí ofrece una primera aproximación a las asociaciones existentes entre las variables del conjunto de datos. Estos resultados preliminares respaldan la inclusión de estas variables como predictores potenciales en el modelo de regresión lineal múltiple, el cual permitirá analizar de manera más formal el efecto de cada una de ellas sobre el precio de las viviendas.
Con el objetivo de explicar el comportamiento del precio de las viviendas, se estimó un modelo de regresión lineal múltiple en el que el precio de la vivienda (variable preciom, expresada en millones de pesos) se modela como función del área construida, el estrato socioeconómico, el número de habitaciones, el número de parqueaderos y el número de baños. Este tipo de modelo permite analizar simultáneamente el efecto de varias variables explicativas sobre el precio de los inmuebles, lo cual resulta especialmente útil en el contexto del mercado inmobiliario, donde el valor de una propiedad suele depender de múltiples características estructurales y socioeconómicas. De manera general, el modelo estimado puede expresarse de la siguiente forma:
# Modelo de regresión lineal múltiple
modelo1 <- lm(preciom ~ areaconst + estrato + habitaciones + parqueaderos + banios,
data = base1)
summary(modelo1)
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos +
## banios, data = base1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -784.29 -77.56 -16.03 47.67 978.61
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -238.17090 44.40551 -5.364 1.34e-07 ***
## areaconst 0.67673 0.05281 12.814 < 2e-16 ***
## estrato 80.63495 9.82632 8.206 2.70e-15 ***
## habitaciones 7.64511 5.65873 1.351 0.177
## parqueaderos 24.00598 5.86889 4.090 5.14e-05 ***
## banios 18.89938 7.48800 2.524 0.012 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 155.1 on 429 degrees of freedom
## (287 observations deleted due to missingness)
## Multiple R-squared: 0.6041, Adjusted R-squared: 0.5995
## F-statistic: 130.9 on 5 and 429 DF, p-value: < 2.2e-16
El coeficiente asociado al área construida es positivo (0.6767) y estadísticamente significativo (p < 0.001). Esto indica que, manteniendo constantes las demás variables del modelo, un incremento de una unidad en el área construida se asocia con un aumento promedio de aproximadamente 0.68 millones de pesos en el precio de la vivienda. Este resultado es consistente con la lógica del mercado inmobiliario, ya que las viviendas con mayor superficie construida suelen tener un mayor valor comercial.
El coeficiente estimado para el estrato socioeconómico es positivo (80.63) y altamente significativo estadísticamente (p < 0.001). Esto sugiere que, manteniendo constantes las demás variables, un aumento de un nivel en el estrato se asocia con un incremento promedio de aproximadamente 80.6 millones de pesos en el precio de la vivienda. Este resultado refleja la fuerte influencia que tiene el nivel socioeconómico del sector en la valorización de los inmuebles.
El coeficiente asociado al número de habitaciones es positivo (7.64), lo que indicaría que viviendas con más habitaciones tienden a presentar precios más elevados. Sin embargo, el valor p asociado a esta variable (0.177) indica que no resulta estadísticamente significativa al nivel de significancia del 5%. Esto sugiere que, una vez controladas las demás variables del modelo, el número de habitaciones no presenta un efecto claro sobre el precio de la vivienda dentro del conjunto de datos analizado.
El número de parqueaderos presenta un coeficiente positivo (24.01) y estadísticamente significativo (p < 0.001). Esto indica que cada parqueadero adicional se asocia, en promedio, con un incremento aproximado de 24 millones de pesos en el precio de la vivienda, manteniendo constantes las demás variables del modelo.
El coeficiente estimado para el número de baños es positivo (18.90) y significativo al nivel del 5% (p = 0.012). Esto sugiere que las viviendas con mayor número de baños tienden a presentar precios más elevados, lo cual es consistente con la relación entre el nivel de confort de una vivienda y su valor en el mercado inmobiliario.
El coeficiente de determinación del modelo (R² = 0.604) indica que aproximadamente el 60.4% de la variabilidad observada en el precio de las viviendas puede ser explicada por las variables incluidas en el modelo. Este nivel de ajuste puede considerarse razonablemente alto para datos del mercado inmobiliario, donde intervienen múltiples factores adicionales que no siempre están disponibles en la base de datos. Asimismo, el estadístico F del modelo es altamente significativo (p < 2.2e-16), lo que indica que el conjunto de variables explicativas incluidas en el modelo tiene, en conjunto, un efecto significativo sobre el precio de las viviendas.
En general, los resultados obtenidos son coherentes con el comportamiento esperado del mercado inmobiliario. Variables como el área construida, el estrato socioeconómico, el número de parqueaderos y el número de baños presentan efectos positivos y estadísticamente significativos sobre el precio de las viviendas. Por otra parte, el número de habitaciones no resultó estadísticamente significativo, lo que podría indicar que su efecto sobre el precio se encuentra parcialmente capturado por otras variables relacionadas con el tamaño o la calidad de la vivienda, como el área construida.
El modelo podría mejorarse incorporando otras variables que también influyen en el valor de los inmuebles, tales como la ubicación específica del barrio, la antigüedad de la construcción, el estado de conservación del inmueble o la cercanía a servicios urbanos. Asimismo, podrían explorarse transformaciones de variables o modelos alternativos que permitan capturar relaciones no lineales entre las características de las viviendas y su precio.
Para evaluar la validez del modelo estimado, es necesario analizar si se cumplen algunos de los supuestos fundamentales de la regresión lineal. En particular, se revisan la linealidad de la relación entre variables, la normalidad de los residuos, la homocedasticidad (varianza constante de los residuos) y la posible presencia de observaciones influyentes o atípicas.
# 6. Validación de supuestos del modelo
par(mfrow = c(2,2))
plot(modelo1)
El gráfico de residuos versus valores ajustados permite evaluar la presencia de patrones sistemáticos en los residuos. En este caso se observa que los residuos se distribuyen de manera relativamente aleatoria alrededor de la línea horizontal, lo cual sugiere que la relación entre las variables explicativas y el precio de la vivienda puede aproximarse razonablemente mediante un modelo lineal. No obstante, se aprecia una ligera tendencia creciente en la dispersión de los residuos a medida que aumentan los valores ajustados, lo cual podría indicar una leve presencia de heterocedasticidad, es decir, una variabilidad mayor de los errores en viviendas de mayor precio.
El gráfico Q-Q compara la distribución de los residuos estandarizados con una distribución normal teórica. En la parte central del gráfico, los puntos se alinean relativamente bien con la línea de referencia, lo que indica que la mayoría de los residuos siguen aproximadamente una distribución normal. Sin embargo, en los extremos se observan algunas desviaciones respecto a la línea teórica, lo cual puede sugerir la presencia de algunos valores atípicos o colas ligeramente más pesadas de lo esperado bajo una normalidad perfecta.
Este gráfico permite evaluar la homocedasticidad del modelo, es decir, si la varianza de los residuos se mantiene aproximadamente constante a lo largo de los valores ajustados. En este caso se observa una ligera tendencia creciente en la línea suavizada, lo cual sugiere que la variabilidad de los residuos aumenta moderadamente para viviendas con precios más altos. Este comportamiento es consistente con lo observado en el gráfico de residuos y podría indicar la presencia de heterocedasticidad moderada en el modelo.
Este gráfico permite identificar observaciones potencialmente influyentes que podrían tener un impacto significativo en la estimación del modelo. En general, la mayoría de las observaciones presentan valores de leverage bajos, lo cual indica que no tienen una influencia excesiva sobre los resultados del modelo. No obstante, se identifican algunos puntos que se aproximan a las líneas de distancia de Cook, lo que sugiere la presencia de algunas observaciones potencialmente influyentes que podrían analizarse con mayor detalle.
En general, los diagnósticos sugieren que el modelo de regresión lineal múltiple proporciona una aproximación razonable para explicar el comportamiento del precio de las viviendas. Aunque se observan algunas desviaciones leves respecto a los supuestos de normalidad y homocedasticidad, estas no parecen ser lo suficientemente severas como para invalidar el modelo. En futuros análisis podría considerarse la aplicación de transformaciones en la variable respuesta o la utilización de modelos alternativos que permitan manejar de forma más adecuada posibles problemas de heterocedasticidad o la presencia de valores atípicos.
Una vez estimado y validado el modelo de regresión lineal múltiple, se procede a utilizarlo para realizar predicciones del precio de viviendas con características específicas. En particular, se analiza el primer caso planteado en el enunciado, correspondiente a una vivienda tipo casa ubicada en la zona norte de la ciudad. De acuerdo con la información proporcionada, esta vivienda cuenta con un área construida de 200 m², cuatro habitaciones, dos baños y un parqueadero, y se encuentra en un estrato socioeconómico entre 4 y 5. Como primer escenario de análisis, se realiza la predicción del precio considerando estrato 4, con el objetivo de obtener una estimación inicial del valor esperado de la propiedad a partir del modelo estimado.
# 7. Predicción del precio de la vivienda 1
vivienda1 <- data.frame(
areaconst = 200,
estrato = 4,
habitaciones = 4,
parqueaderos = 1,
banios = 2
)
predict(modelo1, vivienda1)
## 1
## 312.101
El modelo de regresión lineal múltiple estima que una vivienda con las características descritas tendría un precio aproximado de 312.1 millones de pesos. Este valor se encuentra dentro del rango de presupuesto disponible para el primer caso de estudio, el cual establece un crédito preaprobado máximo de 350 millones de pesos. En este sentido, la estimación obtenida sugiere que una vivienda con estas características podría ser una alternativa viable dentro de las opciones disponibles en el mercado. Además, el resultado es consistente con los patrones identificados previamente en el análisis exploratorio y en la estimación del modelo, donde variables como el área construida, el estrato socioeconómico y el número de baños mostraron una relación positiva con el precio de las viviendas. A partir de esta estimación, se procede a identificar dentro de la base de datos aquellas viviendas que presentan características similares y cuyo precio se encuentra dentro del presupuesto disponible, con el fin de sugerir posibles ofertas que puedan satisfacer la solicitud planteada.
A partir del modelo estimado y considerando el presupuesto máximo disponible de 350 millones de pesos, se procede a identificar dentro de la base de datos aquellas viviendas que cumplen con esta restricción.
# 8. Búsqueda de ofertas potenciales
ofertas1 <- base1 %>%
filter(preciom <= 350)
head(ofertas1,5)
## # A tibble: 5 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1209 Zona N… 02 5 320 150 2 4 6
## 2 141 Zona N… <NA> 3 230 160 NA 2 3
## 3 243 Zona N… <NA> 3 190 435 NA 0 0
## 4 504 Zona N… <NA> 3 180 120 NA 3 3
## 5 1276 Zona N… <NA> 4 305 117 NA 3 4
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
Como resultado del filtrado se encontraron 314 propiedades que corresponden a viviendas tipo casa ubicadas en la zona norte y cuyo precio se encuentra dentro del rango establecido. La tabla anterior presenta una muestra de cinco de estas viviendas potenciales, las cuales ilustran la diversidad de características presentes dentro del conjunto de ofertas disponibles. Se observa que estas propiedades presentan variaciones en el área construida, el número de habitaciones y el número de baños, lo cual refleja la heterogeneidad propia del mercado inmobiliario incluso dentro de un mismo rango de precios. En términos generales, el número relativamente amplio de opciones disponibles sugiere que el presupuesto estimado resulta razonable y permite identificar múltiples alternativas que podrían satisfacer las condiciones planteadas en la solicitud.
Con el fin de proporcionar alternativas concretas que respondan a la solicitud del primer caso de estudio, se seleccionaron cinco viviendas representativas dentro del conjunto de propiedades que cumplen con el presupuesto máximo de 350 millones de pesos. Estas viviendas se escogieron como una muestra ilustrativa de las opciones disponibles en la base de datos para casas ubicadas en la zona norte. El objetivo de esta selección es analizar sus características principales y visualizar su localización geográfica, lo cual facilita la identificación de posibles alternativas que podrían ajustarse a las necesidades del cliente.
# Selección de 5 ofertas representativas
ofertas_seleccion <- ofertas1 %>%
slice(1:5)
ofertas_seleccion
## # A tibble: 5 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1209 Zona N… 02 5 320 150 2 4 6
## 2 141 Zona N… <NA> 3 230 160 NA 2 3
## 3 243 Zona N… <NA> 3 190 435 NA 0 0
## 4 504 Zona N… <NA> 3 180 120 NA 3 3
## 5 1276 Zona N… <NA> 4 305 117 NA 3 4
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
Las viviendas seleccionadas presentan precios que oscilan aproximadamente entre 180 y 320 millones de pesos, lo cual las ubica dentro del rango presupuestal establecido para la primera solicitud. Asimismo, se observa que las viviendas seleccionadas presentan características diversas en términos de área construida, número de habitaciones y número de baños. Por ejemplo, algunas viviendas ofrecen áreas construidas relativamente amplias, mientras que otras destacan por contar con un mayor número de habitaciones o baños, lo cual puede representar ventajas dependiendo de las necesidades específicas del comprador.
library(leaflet)
leaflet(ofertas_seleccion) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitud,
lat = ~latitud,
popup = ~preciom
)
El mapa permite visualizar la ubicación geográfica de las cinco ofertas seleccionadas dentro de la ciudad. Se observa que estas viviendas se distribuyen en diferentes sectores del área norte de Cali, lo cual confirma que las propiedades identificadas corresponden efectivamente a la zona definida en el análisis. Esta representación espacial resulta útil para complementar el análisis estadístico, ya que permite considerar factores asociados a la ubicación, tales como accesibilidad, cercanía a centros urbanos o características del entorno. En conjunto, estas viviendas representan alternativas viables que podrían ser evaluadas por el cliente dentro del presupuesto disponible.
Para el segundo caso de estudio se requiere identificar apartamentos ubicados en la zona sur de la ciudad que puedan ajustarse a las características solicitadas por el cliente. Con este propósito, se realiza nuevamente un proceso de filtrado sobre la base de datos original, seleccionando únicamente las observaciones correspondientes a apartamentos localizados en la zona sur. Este procedimiento permite construir un subconjunto de datos más específico que servirá como base para el análisis del segundo escenario de compra.
# 9. Filtrado de datos para la vivienda 2
base2 <- vivienda %>%
filter(tipo == "Apartamento", zona == "Zona Sur")
head(base2,3)
## # A tibble: 3 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 5098 Zona S… 05 4 290 96 1 2 3
## 2 698 Zona S… 02 3 78 40 1 1 2
## 3 8199 Zona S… <NA> 6 875 194 2 5 3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
Para comprobar que el proceso de filtrado se aplicó correctamente, se revisa la distribución de las variables tipo de vivienda y zona geográfica dentro del nuevo subconjunto de datos.
table(base2$tipo)
##
## Apartamento
## 2787
table(base2$zona)
##
## Zona Sur
## 2787
Los resultados muestran que el subconjunto obtenido contiene 2787 observaciones, todas correspondientes a apartamentos ubicados en la zona sur de la ciudad. Esto confirma que el filtro se aplicó correctamente y que el nuevo conjunto de datos incluye únicamente las propiedades relevantes para el segundo caso de estudio. Este subconjunto servirá como base para realizar el análisis exploratorio, la predicción del precio y la búsqueda de posibles ofertas que cumplan con las condiciones planteadas por el cliente.
leaflet(base2) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitud,
lat = ~latitud,
popup = ~preciom
)
El mapa permite visualizar la distribución geográfica de los apartamentos ubicados en la zona sur de la ciudad. Se observa una concentración importante de propiedades en diferentes sectores de esta zona, lo cual refleja la presencia de una oferta considerable de apartamentos dentro del mercado inmobiliario local. La visualización espacial facilita identificar cómo se distribuyen las propiedades dentro del área urbana y permite tener una idea general de la densidad de viviendas disponibles en distintos sectores de la zona sur. Esta información resulta útil para complementar el análisis estadístico, ya que la ubicación geográfica es un factor relevante en la valoración de los inmuebles.
Una vez identificado el subconjunto de apartamentos ubicados en la zona sur, se procede a utilizar el modelo de regresión previamente estimado para predecir el precio esperado de una vivienda con las características especificadas en la segunda solicitud. En este caso se considera un apartamento con 300 m² de área construida, cinco habitaciones, tres baños y tres parqueaderos, ubicado inicialmente en estrato 5.
# Predicción vivienda 2
vivienda2 <- data.frame(
areaconst = 300,
estrato = 5,
habitaciones = 5,
parqueaderos = 3,
banios = 3
)
predict(modelo1, vivienda2)
## 1
## 534.9658
El modelo de regresión estima que una vivienda con estas características tendría un precio aproximado de 534.97 millones de pesos. Este valor se encuentra considerablemente por debajo del presupuesto máximo disponible, el cual corresponde a 850 millones de pesos. Este resultado sugiere que el presupuesto disponible para esta segunda solicitud permite acceder a una amplia gama de opciones dentro del mercado de apartamentos en la zona sur. En otras palabras, el presupuesto no solo cubriría el precio estimado para una vivienda con estas características, sino que también permitiría explorar propiedades con características adicionales o ubicaciones particularmente atractivas dentro de la zona.
Considerando que el presupuesto máximo disponible para esta solicitud es de 850 millones de pesos, se procede a identificar dentro del conjunto de apartamentos ubicados en la zona sur aquellas propiedades cuyo precio se encuentra dentro de este rango. Este filtrado permite determinar las posibles alternativas disponibles en el mercado que podrían ajustarse a las necesidades del cliente.
ofertas2 <- base2 %>%
filter(preciom <= 850)
head(ofertas2,5)
## # A tibble: 5 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 5098 Zona S… 05 4 290 96 1 2 3
## 2 698 Zona S… 02 3 78 40 1 1 2
## 3 1241 Zona S… <NA> 3 135 117 NA 2 3
## 4 5370 Zona S… <NA> 3 135 78 NA 1 3
## 5 6975 Zona S… 06 4 220 75 1 2 3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
La tabla anterior presenta una muestra de apartamentos disponibles dentro del rango de precio definido. Se observa que las propiedades incluidas presentan una diversidad de características en términos de área construida, número de habitaciones y número de baños, lo cual refleja la heterogeneidad de la oferta inmobiliaria incluso dentro de un mismo rango presupuestal. El hecho de encontrar múltiples opciones dentro del presupuesto disponible indica que el cliente cuenta con un margen amplio para evaluar diferentes alternativas, considerando tanto las características estructurales de los apartamentos como su ubicación específica dentro de la zona sur.
Con el objetivo de presentar algunas alternativas concretas al cliente, se seleccionaron cinco apartamentos representativos dentro del conjunto de propiedades identificadas en el paso anterior. Estas viviendas se escogieron como una muestra ilustrativa de las opciones disponibles en la base de datos.
ofertas2_seleccion <- ofertas2 %>%
slice(1:5)
ofertas2_seleccion
## # A tibble: 5 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 5098 Zona S… 05 4 290 96 1 2 3
## 2 698 Zona S… 02 3 78 40 1 1 2
## 3 1241 Zona S… <NA> 3 135 117 NA 2 3
## 4 5370 Zona S… <NA> 3 135 78 NA 1 3
## 5 6975 Zona S… 06 4 220 75 1 2 3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
Las propiedades seleccionadas presentan características variadas en términos de tamaño, número de habitaciones y número de baños, lo que permite mostrar diferentes tipos de opciones disponibles dentro del presupuesto establecido. Esta diversidad resulta útil para que el cliente pueda evaluar distintas alternativas de acuerdo con sus preferencias y necesidades particulares.
leaflet(ofertas2_seleccion) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitud,
lat = ~latitud,
popup = ~preciom
)
El mapa permite visualizar la ubicación geográfica de los apartamentos seleccionados dentro de la ciudad. Se observa que las propiedades se distribuyen en diferentes sectores de la zona sur de Cali, lo cual confirma que corresponden efectivamente al área definida en el análisis. Esta representación espacial complementa el análisis estadístico al permitir considerar factores asociados a la ubicación, como la accesibilidad, la cercanía a servicios urbanos o las características del entorno. En conjunto, estas viviendas representan alternativas viables que podrían ser evaluadas por el cliente dentro del presupuesto disponible.
El modelo de regresión lineal múltiple permitió identificar que variables como el área construida, el estrato socioeconómico, el número de parqueaderos y el número de baños presentan una relación positiva y estadísticamente significativa con el precio de las viviendas. En particular, el modelo alcanzó un coeficiente de determinación (R²) cercano al 60%, lo que indica que una proporción importante de la variabilidad observada en el precio puede explicarse a partir de estas características estructurales y socioeconómicas consideradas en el análisis.
El modelo estimado permitió predecir el precio esperado de viviendas con características específicas. Para la vivienda 1, considerando un escenario con estrato 4, se obtuvo un valor aproximado de 312 millones de pesos, el cual se encuentra dentro del presupuesto disponible de 350 millones. Para la vivienda 2, el modelo estimó un precio cercano a 535 millones de pesos, considerando un escenario con estrato 5. Este valor se encuentra por debajo del presupuesto disponible de 850 millones, lo que sugiere que el cliente dispone de un margen amplio para evaluar distintas alternativas dentro del mercado.
A partir de las estimaciones del modelo y del filtrado de la base de datos según los presupuestos definidos, fue posible identificar diversas alternativas de vivienda que cumplen con las condiciones planteadas en cada caso. En particular, se encontraron varias propiedades dentro de los rangos de precio establecidos tanto para casas en la zona norte como para apartamentos en la zona sur. Esto demuestra que el modelo y el análisis exploratorio permiten apoyar de manera efectiva la identificación de opciones viables dentro del mercado inmobiliario, facilitando el proceso de evaluación y selección de viviendas que se ajusten a las necesidades del cliente.