El presente informe analiza el mercado inmobiliario de la ciudad de Cali utilizando técnicas de regresión lineal múltiple con el objetivo de estimar el precio de viviendas a partir de sus características estructurales.
Se analizaron dos escenarios. El primero corresponde a una vivienda tipo casa ubicada en la zona norte de la ciudad, mientras que el segundo corresponde a un apartamento en la zona sur. A partir de la base de datos disponible se realizó un análisis exploratorio de los datos, seguido por la estimación de modelos de regresión lineal que permiten explicar el precio de las viviendas en función de variables como el área construida, el estrato socioeconómico, el número de habitaciones, el número de baños y el número de parqueaderos.
Los resultados muestran que el área construida es uno de los principales determinantes del precio de las viviendas, seguido por el estrato socioeconómico y el número de parqueaderos. Los modelos estimados presentan un buen nivel de ajuste, lo que permite realizar predicciones razonables sobre el valor de las viviendas analizadas.
Finalmente, utilizando las predicciones del modelo se identificaron posibles ofertas dentro del mercado inmobiliario que cumplen con las restricciones financieras definidas en cada solicitud. Este ejercicio ilustra cómo las herramientas estadísticas pueden apoyar la toma de decisiones en el mercado inmobiliario.
El objetivo de este análisis es apoyar la toma de decisiones de la empresa de María C&A (Casas y Apartamentos) mediante el uso de técnicas de regresión lineal múltiple. A partir de una base de datos de viviendas en la ciudad de Cali, se busca modelar el precio de las viviendas en función de diferentes características estructurales.
El análisis permitirá:
Este estudio permitirá generar recomendaciones basadas en evidencia para apoyar el proceso de selección de viviendas.
library(devtools)
library(paqueteMODELOS)
library(dplyr)
library(ggplot2)
library(plotly)
library(leaflet)
data("vivienda")
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 utilizada corresponde a información de viviendas ubicadas en la ciudad de Cali. Cada observación representa una vivienda ofertada en el mercado inmobiliario y contiene variables relacionadas con sus características estructurales y ubicación geográfica.
Entre las variables más relevantes se encuentran:
Esta información permite analizar cómo diferentes características físicas y de ubicación influyen en el precio de las viviendas.
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>
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
La base de datos contiene 8322 observaciones y 13 variables relacionadas con características estructurales y de ubicación de viviendas en la ciudad de Cali. Entre las variables más relevantes se encuentran el precio de la vivienda (preciom), el área construida (areaconst), el estrato socioeconómico, el número de baños, habitaciones y parqueaderos.
El análisis descriptivo muestra que el precio de las viviendas oscila entre 58 y 1999 millones de pesos, con un valor promedio cercano a los 434 millones. Asimismo, el área construida presenta valores entre 30 y 1745 metros cuadrados, lo que sugiere la posible presencia de viviendas de gran tamaño que podrían comportarse como valores atípicos dentro del análisis.
En cuanto a la calidad de los datos, se identifican algunos valores faltantes en variables como parqueaderos, estrato y área construida, aunque en la mayoría de los casos el número de registros faltantes es reducido. La variable parqueaderos presenta un mayor número de valores faltantes, lo cual podría indicar viviendas que no cuentan con este tipo de espacio o registros incompletos en la base.
Las coordenadas geográficas presentan rangos coherentes con la ubicación de la ciudad de Cali, lo que permitirá posteriormente realizar representaciones espaciales de las viviendas en mapas.
vivienda$estrato <- as.factor(vivienda$estrato)
str(vivienda$estrato)
## Factor w/ 4 levels "3","4","5","6": 1 1 1 2 3 3 2 3 3 3 ...
La variable estrato fue convertida a una variable
categórica utilizando la función as.factor(). Aunque en la
base de datos se encontraba registrada como variable numérica,
conceptualmente corresponde a una variable cualitativa ordinal que
representa el nivel socioeconómico de la vivienda.
Al tratarla como variable categórica, el modelo de regresión podrá capturar diferencias en el precio promedio entre los distintos niveles de estrato.
La variable estrato presenta cuatro categorías en la base de datos: 3, 4, 5 y 6. No se observan registros correspondientes a los estratos 1 y 2, lo cual es consistente con el tipo de viviendas analizadas, que corresponden principalmente a propiedades de estratos medios y altos dentro del mercado inmobiliario.
unique(vivienda$zona)
## [1] "Zona Oriente" "Zona Sur" "Zona Norte" "Zona Oeste" "Zona Centro"
## [6] NA
Se realizó un proceso de filtrado sobre la base de datos original con el objetivo de seleccionar únicamente las viviendas que corresponden a casas ubicadas en la Zona Norte de la ciudad.
Para ello se aplicó un filtro sobre las variables tipo y
zona, manteniendo únicamente las observaciones donde el
tipo de vivienda corresponde a Casa y la ubicación pertenece a
la Zona Norte. Adicionalmente se excluyeron registros con
valores faltantes en la variable zona.
El resultado de este proceso permitió construir la base denominada base1, la cual será utilizada para los análisis posteriores.
base1 <- vivienda %>%
filter(tipo == "Casa", zona == "Zona Norte")
base1 <- vivienda %>%
filter(!is.na(zona), tipo == "Casa", zona == "Zona Norte")
head(base1,3)
## # A tibble: 3 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <fct> <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>
table(base1$tipo)
##
## Casa
## 722
table(base1$zona)
##
## Zona Norte
## 722
Para verificar la correcta aplicación del filtro se construyeron
tablas de frecuencia para las variables tipo y
zona. Los resultados muestran que las 722 observaciones
presentes en la base filtrada corresponden exclusivamente a viviendas de
tipo Casa ubicadas en la Zona Norte,
lo que confirma que el proceso de selección se realizó
correctamente.
leaflet(base1) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitud,
lat = ~latitud,
radius = 4,
color = "blue",
popup = ~paste("Precio:", preciom, "millones")
)
El mapa muestra la distribución geográfica de las viviendas de tipo casa ubicadas en la Zona Norte según la clasificación de la base de datos.
Se observa que, aunque la mayoría de los puntos se concentran en el sector norte de la ciudad, algunos registros aparecen ubicados visualmente en otras zonas dentro del mapa. Este comportamiento puede explicarse por varias razones. En primer lugar, la clasificación de la variable “zona” puede basarse en criterios administrativos o comerciales del mercado inmobiliario que no necesariamente coinciden con los límites geográficos exactos de la ciudad.
Adicionalmente, es posible que algunas coordenadas geográficas presenten pequeñas imprecisiones debido a errores de georreferenciación o a la forma en que fueron registradas en la base de datos. Por esta razón, algunos puntos pueden aparecer visualmente fuera de la zona esperada, aun cuando en la base estén clasificados como pertenecientes a la Zona Norte.
Dado que la variable “zona” corresponde a la clasificación oficial incluida en la base de datos original, los registros no serán eliminados del análisis. En este estudio se asumirá que las discrepancias observadas corresponden a pequeñas imprecisiones en la georreferenciación, por lo que se mantendrán todas las observaciones que cumplen con el criterio de selección establecido.
p_area <- ggplot(base1, aes(x = areaconst, y = preciom)) +
geom_point(color="darkblue", alpha=0.6) +
geom_smooth(method="lm", color="red") +
labs(
title="Relación entre área construida y precio de la vivienda",
x="Área construida (m2)",
y="Precio (millones de pesos)"
)
ggplotly(p_area)
El gráfico muestra la relación entre el área construida de la vivienda y su precio. Se observa una tendencia positiva clara, lo que indica que a medida que aumenta el tamaño de la vivienda, el precio tiende a incrementarse. Este comportamiento es consistente con la lógica del mercado inmobiliario, donde propiedades con mayor área construida suelen tener un mayor valor comercial.
La nube de puntos muestra una concentración importante de observaciones en áreas entre aproximadamente 100 y 500 metros cuadrados, con precios que oscilan principalmente entre 200 y 700 millones de pesos. Esto sugiere que gran parte de la oferta de viviendas en la zona norte corresponde a propiedades de tamaño medio dentro del mercado.
También se observan algunos puntos alejados de la tendencia general, particularmente en áreas superiores a los 800 metros cuadrados y precios cercanos o superiores a los 1500 millones de pesos. Estos casos podrían corresponder a viviendas de lujo o propiedades con características especiales dentro del mercado inmobiliario. Sin embargo, estos valores no se eliminarán del análisis en esta etapa, ya que pueden representar segmentos reales del mercado.
p_estrato <- ggplot(base1, aes(x = estrato, y = preciom)) +
geom_boxplot(fill="lightblue") +
labs(
title="Precio de la vivienda según estrato",
x="Estrato",
y="Precio (millones de pesos)"
)
ggplotly(p_estrato)
El gráfico muestra la distribución del precio de las viviendas según el estrato socioeconómico. Se observa una tendencia clara de incremento en los precios a medida que aumenta el nivel de estrato.
Las viviendas ubicadas en estratos más altos presentan medianas de precio superiores, lo cual es consistente con la estructura del mercado inmobiliario, ya que los estratos más altos suelen corresponder a sectores con mejores condiciones urbanísticas, mayor acceso a servicios y mayor valorización del suelo.
Asimismo, se observa que la dispersión de los precios aumenta en los estratos más altos, especialmente en los estratos 5 y 6. Esto sugiere que en estos segmentos del mercado existe una mayor heterogeneidad en las características de las viviendas, incluyendo propiedades de alto valor que se reflejan en los puntos extremos observados en el gráfico.
Estos resultados respaldan la inclusión de la variable estrato como una variable explicativa relevante dentro del modelo de regresión lineal múltiple que se estimará posteriormente.
p_banios <- ggplot(base1, aes(x = banios, y = preciom)) +
geom_point(color="darkgreen", alpha=0.6) +
geom_smooth(method="lm", color="red") +
labs(
title="Relación entre número de baños y precio",
x="Número de baños",
y="Precio (millones de pesos)"
)
ggplotly(p_banios)
El gráfico muestra la relación entre el número de baños y el precio de las viviendas. Se observa una tendencia positiva moderada, lo que sugiere que las viviendas con mayor número de baños tienden a presentar precios más elevados.
Este comportamiento es consistente con la lógica del mercado inmobiliario, ya que un mayor número de baños suele asociarse con viviendas de mayor tamaño o con mejores características habitacionales.
Sin embargo, también se observa una alta dispersión de los precios para un mismo número de baños, lo que indica que esta variable por sí sola no explica completamente el valor de la vivienda. Es probable que otras características, como el área construida, el estrato socioeconómico o el número de habitaciones, influyan de manera importante en la determinación del precio.
Asimismo, se identifican algunos valores extremos en precios elevados, que podrían corresponder a viviendas de lujo dentro del mercado inmobiliario analizado.
p_habitaciones <- ggplot(base1, aes(x = habitaciones, y = preciom)) +
geom_point(color="purple", alpha=0.6) +
geom_smooth(method="lm", color="red") +
labs(
title="Relación entre número de habitaciones y precio",
x="Número de habitaciones",
y="Precio (millones de pesos)"
)
ggplotly(p_habitaciones)
El gráfico muestra la relación entre el número de habitaciones y el precio de las viviendas. Se observa una tendencia positiva moderada, lo que indica que, en general, las viviendas con mayor número de habitaciones tienden a presentar precios más elevados.
Este comportamiento es consistente con la lógica del mercado inmobiliario, ya que un mayor número de habitaciones suele asociarse con viviendas de mayor tamaño y con mayores niveles de confort para los hogares.
Sin embargo, al igual que en el caso de la variable número de baños, se observa una dispersión considerable en los precios para un mismo número de habitaciones. Esto sugiere que el precio de la vivienda no depende únicamente de esta característica, sino también de otros factores relevantes como el área construida, el estrato socioeconómico y la ubicación.
Asimismo, se identifican algunos valores extremos correspondientes a viviendas con un número elevado de habitaciones y precios considerablemente altos, lo cual podría reflejar la presencia de propiedades de lujo dentro del mercado analizado.
p_parqueaderos <- ggplot(base1, aes(x = parqueaderos, y = preciom)) +
geom_point(color="orange", alpha=0.6) +
geom_smooth(method="lm", color="red") +
labs(
title="Relación entre número de parqueaderos y precio",
x="Número de parqueaderos",
y="Precio (millones de pesos)"
)
ggplotly(p_parqueaderos)
El gráfico muestra la relación entre el número de parqueaderos y el precio de las viviendas. Se observa una tendencia positiva moderada, lo que sugiere que las viviendas con mayor número de parqueaderos tienden a presentar precios más elevados.
Este comportamiento es consistente con el mercado inmobiliario, ya que la disponibilidad de parqueaderos representa una característica adicional de valor para los compradores, especialmente en zonas urbanas donde el espacio para estacionamiento es limitado.
Sin embargo, también se observa una dispersión considerable de precios para un mismo número de parqueaderos. Esto indica que esta variable por sí sola no explica completamente el valor de las viviendas y que el precio depende de la interacción de múltiples características de la propiedad, como el área construida, el estrato socioeconómico y el número de habitaciones.
Adicionalmente, se identifican algunos valores extremos de precio asociados a viviendas con varios parqueaderos, lo cual podría corresponder a propiedades de mayor tamaño o viviendas de alto valor dentro del mercado analizado.
cor(base1[,c("preciom","areaconst","banios","habitaciones","parqueaderos")],
use="complete.obs")
## preciom areaconst banios habitaciones parqueaderos
## preciom 1.0000000 0.6853915 0.5086427 0.3650859 0.4116620
## areaconst 0.6853915 1.0000000 0.4574766 0.4206897 0.3069709
## banios 0.5086427 0.4574766 1.0000000 0.5903821 0.3918638
## habitaciones 0.3650859 0.4206897 0.5903821 1.0000000 0.2413962
## parqueaderos 0.4116620 0.3069709 0.3918638 0.2413962 1.0000000
La matriz de correlaciones permite analizar la relación lineal entre el precio de la vivienda y las principales variables explicativas consideradas en el estudio.
Los resultados muestran que la variable área construida presenta la mayor correlación con el precio de la vivienda (0.685), lo que sugiere que esta es una de las características más influyentes en la determinación del valor de las propiedades. Este resultado es consistente con lo observado previamente en el análisis gráfico, donde se identificó una relación positiva clara entre el tamaño de la vivienda y su precio.
La variable número de baños también presenta una correlación moderada con el precio (0.509), lo que indica que las viviendas con mayor número de baños tienden a presentar precios más elevados.
Por su parte, las variables parqueaderos (0.412) y habitaciones (0.365) muestran una correlación positiva con el precio, aunque de menor magnitud. Esto sugiere que estas características influyen en el valor de la vivienda, pero en menor medida que el área construida.
Adicionalmente, se observa una correlación relativamente alta entre las variables baños y habitaciones (0.590), lo cual es lógico ya que ambas características suelen estar asociadas al tamaño y distribución de la vivienda. Este resultado podría indicar la presencia de cierta relación entre variables explicativas, lo cual será tenido en cuenta al interpretar los resultados del modelo de regresión.
Con el objetivo de explicar el comportamiento del precio de las viviendas en la zona norte de Cali, se estimó un modelo de regresión lineal múltiple utilizando como variable dependiente el precio de la vivienda (preciom) y como variables explicativas el área construida, el estrato socioeconómico, el número de habitaciones, el número de baños y el número de parqueaderos.
El modelo estimado puede representarse de la siguiente forma:
Precio = β0 + β1(Área construida) + β2(Estrato) + β3(Habitaciones) + β4(Parqueaderos) + β5(Baños) + ε
Este modelo permite evaluar el efecto marginal de cada característica de la vivienda sobre el precio, manteniendo constantes las demás variables. ### 3.1 Especificación del modelo
Con base en el análisis exploratorio realizado previamente, se propone estimar un modelo de regresión lineal múltiple con el objetivo de explicar el comportamiento del precio de las viviendas en la zona norte de Cali a partir de sus principales características estructurales.
La variable dependiente del modelo corresponde al precio de la vivienda (preciom), expresado en millones de pesos. Como variables explicativas se incluyen el área construida, el estrato socioeconómico, el número de habitaciones, el número de parqueaderos y el número de baños.
El modelo puede expresarse de la siguiente manera:
Precio_i = β₀ + β₁ Área_i + β₂ Estrato_i + β₃ Habitaciones_i + β₄ Parqueaderos_i + β₅ Baños_i + ε_i
donde:
Este modelo permite evaluar el efecto marginal de cada una de las características de la vivienda sobre su precio, manteniendo constantes las demás variables incluidas en el análisis.
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
## -790.71 -74.72 -18.93 46.54 991.70
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11.71883 27.15751 0.432 0.66631
## areaconst 0.68098 0.05283 12.890 < 2e-16 ***
## estrato4 80.91006 24.55085 3.296 0.00106 **
## estrato5 147.53872 22.70871 6.497 2.29e-10 ***
## estrato6 281.68942 37.33161 7.546 2.74e-13 ***
## habitaciones 7.17906 5.69802 1.260 0.20839
## parqueaderos 24.22922 5.86635 4.130 4.36e-05 ***
## banios 18.09024 7.62857 2.371 0.01816 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 154.9 on 427 degrees of freedom
## (287 observations deleted due to missingness)
## Multiple R-squared: 0.607, Adjusted R-squared: 0.6006
## F-statistic: 94.24 on 7 and 427 DF, p-value: < 2.2e-16
La estimación del modelo de regresión lineal múltiple permite analizar cómo diferentes características estructurales de las viviendas influyen en su precio dentro del mercado inmobiliario de la zona norte de Cali.
Los resultados muestran que el modelo es estadísticamente significativo en su conjunto, como lo indica el estadístico F (94.24) con un valor p menor a 0.001. Esto sugiere que las variables incluidas en el modelo explican de manera conjunta una parte importante de la variabilidad en el precio de las viviendas.
El coeficiente de determinación (R²) es de 0.607, lo que indica que aproximadamente el 60.7% de la variabilidad del precio de las viviendas es explicada por las variables incluidas en el modelo. El R² ajustado presenta un valor de 0.6006, lo cual sugiere que el modelo mantiene una buena capacidad explicativa incluso después de ajustar por el número de variables incluidas.
Es importante señalar que durante la estimación del modelo el software eliminó automáticamente 287 observaciones debido a la presencia de valores faltantes en algunas de las variables utilizadas en el análisis. Como resultado, el modelo fue estimado utilizando únicamente las observaciones completas disponibles en la base de datos. Este procedimiento es estándar en la estimación de modelos de regresión en R cuando se emplea la función lm().
El coeficiente asociado al área construida es positivo y altamente significativo (p < 0.001). El valor estimado de 0.681 indica que, manteniendo constantes las demás variables del modelo, un incremento de un metro cuadrado 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 teoría del mercado inmobiliario, donde el tamaño de la vivienda representa uno de los principales determinantes de su valor.
Las variables correspondientes a los estratos socioeconómicos presentan coeficientes positivos y estadísticamente significativos. En comparación con viviendas ubicadas en estrato 3, se observa que:
Estos resultados reflejan el efecto del entorno urbano y las condiciones socioeconómicas del sector sobre el valor de las viviendas, siendo los estratos más altos asociados a mayores niveles de valorización del suelo.
La variable número de habitaciones presenta un coeficiente positivo, lo que sugiere que viviendas con mayor número de habitaciones tienden a tener precios más altos. Sin embargo, el coeficiente no resulta estadísticamente significativo al nivel convencional del 5% (p = 0.208).
Esto podría explicarse porque el efecto del número de habitaciones ya está parcialmente capturado por otras variables del modelo, particularmente el área construida y el número de baños, lo que reduce su capacidad explicativa individual.
El número de parqueaderos presenta un coeficiente positivo y estadísticamente significativo (p < 0.001). El valor estimado indica que cada parqueadero adicional se asocia con un incremento promedio de aproximadamente 24.2 millones de pesos en el precio de la vivienda, manteniendo constantes las demás variables del modelo.
Este resultado refleja el valor adicional que representa la disponibilidad de espacios de estacionamiento en el mercado inmobiliario urbano.
El número de baños también presenta un coeficiente positivo y estadísticamente significativo (p = 0.018). El resultado indica que cada baño adicional se asocia con un incremento promedio de aproximadamente 18 millones de pesos en el precio de la vivienda, manteniendo constantes las demás características incluidas en el modelo.
Esto es consistente con el hecho de que un mayor número de baños suele estar asociado con viviendas de mayor tamaño y mejores condiciones de habitabilidad.
En términos generales, los resultados del modelo son coherentes con la lógica económica del mercado inmobiliario. Variables estructurales como el área construida, el estrato socioeconómico, el número de baños y el número de parqueaderos muestran efectos positivos y estadísticamente significativos sobre el precio de las viviendas.
El área construida se identifica como una de las variables más influyentes en la determinación del precio, lo cual también fue evidenciado en el análisis exploratorio de los datos.
Asimismo, el efecto creciente de los diferentes niveles de estrato confirma la importancia de las condiciones del entorno urbano en la valorización de las propiedades.
El modelo logra explicar aproximadamente el 60% de la variabilidad en los precios de las viviendas, lo cual puede considerarse un nivel de ajuste razonable para datos del mercado inmobiliario, donde existen múltiples factores no observados que también pueden influir en el valor de las propiedades.
Para evaluar el cumplimiento de los supuestos del modelo de regresión lineal se analizaron los gráficos de diagnóstico de los residuos generados por el modelo estimado.
par(mfrow=c(2,2))
plot(modelo1)
El gráfico de residuos vs valores ajustados permite
evaluar el supuesto de linealidad y homocedasticidad. En general, los
residuos se distribuyen alrededor de cero, lo que sugiere que el modelo
captura adecuadamente la relación promedio entre las variables. No
obstante, se observa una ligera expansión en la dispersión de los
residuos para valores ajustados más altos, lo cual podría indicar cierta
presencia de heterocedasticidad en el modelo.
El gráfico Q-Q de los residuos permite evaluar la normalidad de los errores. La mayoría de los puntos se ubican cerca de la línea teórica, lo que sugiere que la distribución de los residuos es aproximadamente normal. Sin embargo, se observan algunas desviaciones en los extremos, lo cual podría estar asociado a la presencia de algunas observaciones con valores atípicos.
El gráfico Scale-Location también permite evaluar la homocedasticidad de los residuos. Se observa una ligera tendencia creciente en la dispersión de los residuos a medida que aumentan los valores ajustados, lo que sugiere que la varianza de los errores podría no ser completamente constante a lo largo del rango de predicciones.
Finalmente, el gráfico Residuals vs Leverage permite identificar observaciones potencialmente influyentes en el modelo. La mayoría de los puntos presentan valores de leverage relativamente bajos, lo que indica que no existen observaciones con una influencia excesiva sobre la estimación del modelo, aunque algunos puntos aislados podrían requerir una revisión adicional.
En general, los resultados de los gráficos de diagnóstico sugieren que los supuestos del modelo de regresión lineal se cumplen de manera razonable. Aunque se observan ligeras desviaciones respecto a la homocedasticidad y algunos valores atípicos, estos comportamientos son relativamente comunes en datos del mercado inmobiliario y no parecen afectar de manera crítica la estabilidad del modelo estimado.
Con el fin de ilustrar el uso del modelo estimado para la toma de decisiones en el mercado inmobiliario, se realizará la predicción del precio esperado de dos viviendas con características específicas.
Las características de las viviendas evaluadas se presentan a continuación:
Por lo anterior debemos hacer dos predicciones, una para estrato cuatro y otra para estrato 5
vivienda1_e4 <- data.frame(
areaconst = 200,
estrato = factor(4, levels = levels(base1$estrato)),
habitaciones = 4,
parqueaderos = 1,
banios = 2
)
predict(modelo1, vivienda1_e4, interval = "prediction")
## fit lwr upr
## 1 317.9507 11.07692 624.8244
Utilizando el modelo de regresión estimado se realizó la predicción del precio esperado para la Vivienda 1 considerando inicialmente que se encuentra ubicada en estrato 4.
El modelo estima un precio aproximado de 317.95 millones de pesos para una vivienda con las características analizadas. Adicionalmente, el intervalo de predicción sugiere que el precio de mercado podría ubicarse aproximadamente entre 11.08 millones y 624.82 millones de pesos.
Este intervalo refleja la variabilidad presente en el mercado inmobiliario y la incertidumbre inherente al proceso de predicción, especialmente cuando se consideran viviendas con características diversas dentro del conjunto de datos analizado.
Comparando el precio estimado con el crédito preaprobado de 350 millones de pesos, se observa que el valor esperado de la vivienda se encuentra dentro del rango financiable, lo que sugiere que la adquisición podría ser viable desde el punto de vista financiero.
vivienda1_e5 <- data.frame(
areaconst = 200,
estrato = factor(5, levels = levels(base1$estrato)),
habitaciones = 4,
parqueaderos = 1,
banios = 2
)
predict(modelo1, vivienda1_e5, interval = "prediction")
## fit lwr upr
## 1 384.5793 78.334 690.8247
Utilizando el modelo de regresión estimado se realizó la predicción del precio esperado para la Vivienda 1 suponiendo que se encuentra ubicada en estrato 5, considerando las siguientes características: área construida de 200 metros cuadrados, 4 habitaciones, 2 baños y 1 parqueadero.
El modelo estima un precio aproximado de 384.58 millones de pesos para una vivienda con estas características. Adicionalmente, el intervalo de predicción sugiere que el precio de mercado podría ubicarse aproximadamente entre 78.33 millones y 690.82 millones de pesos.
Este resultado refleja la influencia que tiene el estrato socioeconómico sobre el valor de las viviendas, ya que el modelo indica que propiedades ubicadas en estratos más altos tienden a presentar precios mayores, manteniendo constantes las demás características estructurales.
Al comparar este valor estimado con el crédito preaprobado de 350 millones de pesos, se observa que el precio esperado de la vivienda supera ligeramente la capacidad de financiamiento disponible, lo que sugiere que la adquisición de la vivienda podría requerir recursos adicionales o una negociación en el precio de compra.
Debido a que la información disponible indica que la vivienda podría pertenecer al estrato 4 o 5, se realizó una comparación entre ambos escenarios utilizando el modelo de regresión estimado.
Cuando se asume que la vivienda se encuentra en estrato 4, el modelo estima un precio aproximado de 317.95 millones de pesos. En cambio, al considerar que la vivienda pertenece al estrato 5, el precio estimado aumenta a 384.58 millones de pesos.
La diferencia entre ambos escenarios es de aproximadamente 66.6 millones de pesos, lo que evidencia el impacto significativo que tiene el estrato socioeconómico en la valorización de las viviendas dentro del mercado inmobiliario.
Desde el punto de vista de la toma de decisiones, si la vivienda corresponde al estrato 4, el precio estimado se encuentra dentro del monto del crédito preaprobado de 350 millones de pesos, lo que sugiere que la compra sería financieramente viable.
Por el contrario, si la vivienda pertenece al estrato 5, el precio esperado supera el monto del crédito disponible, lo que implicaría la necesidad de contar con recursos adicionales o negociar el precio de compra.
Este ejercicio ilustra cómo los modelos de regresión pueden utilizarse como herramientas de apoyo en la toma de decisiones dentro del mercado inmobiliario, permitiendo evaluar diferentes escenarios y estimar rangos de precios esperados a partir de las características de las viviendas.
Con base en las características de la Vivienda 1 y en los resultados del modelo de regresión estimado, se procedió a identificar posibles viviendas dentro de la base de datos que podrían representar alternativas de compra.
Para la selección de estas viviendas se consideraron los siguientes criterios:
A partir de estos criterios se identificaron varias viviendas potenciales dentro de la base de datos que podrían representar opciones viables de compra.
# 1. Filtrar viviendas dentro del presupuesto disponible
ofertas <- base1 %>%
filter(preciom <= 350)
# 2. Filtrar viviendas comparables con la Vivienda 1
ofertas2 <- ofertas %>%
filter(
estrato %in% c("4","5"),
between(areaconst, 200, 240),
habitaciones >= 4,
banios >= 2,
parqueaderos >= 1
)
# 3. Seleccionar al menos 5 ofertas potenciales
ofertas_final <- ofertas2 %>%
slice(1:5)
# 4. Mostrar las ofertas seleccionadas
ofertas_final
## # A tibble: 5 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 4210 Zona N… 01 5 350 200 3 3 4
## 2 4267 Zona N… 01 5 335 202 1 4 5
## 3 4422 Zona N… 02 5 350 240 2 3 6
## 4 1270 Zona N… <NA> 5 350 203 2 2 5
## 5 3453 Zona N… <NA> 5 340 240 2 5 6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
A partir de los criterios definidos previamente se identificaron cinco viviendas potenciales dentro de la base de datos que podrían representar alternativas de compra para la empresa, considerando el crédito preaprobado máximo de 350 millones de pesos.
Inicialmente se buscó identificar viviendas con características lo más similares posible a la Vivienda 1, la cual presenta un área construida de aproximadamente 200 metros cuadrados, 1 parqueadero, 2 baños y 4 habitaciones, ubicada en estrato 4 o 5 dentro de la zona norte de la ciudad.
Sin embargo, al aplicar criterios demasiado estrictos no fue posible encontrar suficientes alternativas en la base de datos. Por esta razón, se decidió flexibilizar algunos criterios de selección para poder identificar al menos cinco opciones comparables dentro del mercado inmobiliario analizado.
En particular, se consideraron viviendas que cumplieran con las siguientes condiciones:
Estos criterios permitieron identificar cinco viviendas que presentan características relativamente similares a la vivienda objetivo y que se encuentran dentro del rango de precios financiable.
Las viviendas seleccionadas pertenecen al estrato 5, lo cual es consistente con uno de los escenarios evaluados previamente en el modelo de regresión. Sus áreas construidas oscilan entre 200 y 240 metros cuadrados, lo que las convierte en alternativas comparables en términos de tamaño. Asimismo, todas cuentan con al menos un parqueadero y dos baños, características relevantes para la habitabilidad y el valor de mercado de las propiedades.
Desde la perspectiva de la toma de decisiones, estas viviendas representan alternativas potenciales de compra, ya que cumplen con las restricciones financieras de la empresa y presentan características estructurales comparables con la vivienda analizada inicialmente.
leaflet(ofertas_final) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitud,
lat = ~latitud,
radius = 6,
color = "red",
popup = ~paste(
"Precio:", preciom, "millones",
"<br>Área:", areaconst,
"<br>Habitaciones:", habitaciones,
"<br>Baños:", banios,
"<br>Parqueaderos:", parqueaderos
)
)
Con el fin de complementar el análisis de las ofertas potenciales identificadas, se realizó una visualización geográfica de las viviendas seleccionadas utilizando un mapa interactivo. En este mapa se representan las cinco propiedades que cumplen con los criterios definidos previamente en términos de precio, área construida y características estructurales.
La visualización permite observar que las viviendas seleccionadas se encuentran ubicadas dentro de la zona norte de la ciudad de Cali, lo cual mantiene coherencia con la base de datos utilizada para estimar el modelo de regresión. Adicionalmente, se aprecia que varias de las propiedades se encuentran relativamente cercanas entre sí, particularmente en sectores residenciales cercanos a áreas de interés urbano como la Loma La Perla y zonas aledañas al Ecoparque Cerro de las Tres Cruces.
Esta concentración geográfica sugiere que estas áreas presentan una oferta inmobiliaria consistente con las características analizadas en el modelo y con el rango de precios considerado. Desde la perspectiva de la toma de decisiones, la visualización espacial facilita la identificación de sectores donde podrían existir oportunidades de compra dentro del presupuesto disponible.
En conjunto, las viviendas identificadas representan alternativas potenciales que cumplen con las restricciones financieras de la empresa y presentan características estructurales comparables con la vivienda analizada inicialmente. Estas propiedades podrían ser evaluadas con mayor detalle considerando factores adicionales como el estado del inmueble, la antigüedad de la construcción y las condiciones específicas del entorno urbano.
La segunda solicitud corresponde a una vivienda con características diferentes a la anterior. En este caso se trata de un apartamento ubicado en la zona sur de la ciudad, con las siguientes características: área construida de 300 metros cuadrados, 3 parqueaderos, 3 baños y 5 habitaciones.
Adicionalmente, la vivienda podría pertenecer a estrato 5 o estrato 6, y la empresa cuenta con un crédito preaprobado de 850 millones de pesos para su adquisición.
Para analizar la segunda solicitud se construyó una nueva base de datos a partir del conjunto original, seleccionando únicamente apartamentos ubicados en la zona sur de la ciudad. Este filtrado permite trabajar con viviendas comparables con las características de la solicitud analizada.
La base resultante contiene únicamente observaciones correspondientes a apartamentos en esta zona, lo cual permite realizar un análisis específico del comportamiento del mercado inmobiliario en este segmento.
base2 <- vivienda %>%
filter(tipo == "Apartamento", zona == "Zona Sur")
table(base2$tipo)
##
## Apartamento
## 2787
table(base2$zona)
##
## Zona Sur
## 2787
head(base2)
## # A tibble: 6 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <fct> <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 1241 Zona S… <NA> 3 135 117 NA 2 3
## 5 5370 Zona S… <NA> 3 135 78 NA 1 3
## 6 6975 Zona S… 06 4 220 75 1 2 3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
El filtrado resultó en una base de datos con 2787 observaciones, lo cual permite analizar el comportamiento del mercado inmobiliario para este tipo de viviendas en dicha zona.
Las variables disponibles incluyen información sobre el precio de la vivienda, área construida, número de parqueaderos, número de baños, número de habitaciones, estrato socioeconómico y coordenadas geográficas de cada propiedad.
leaflet(base2) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitud,
lat = ~latitud,
radius = 4,
color = "blue",
popup = ~paste("Precio:", preciom, "millones")
)
El mapa presenta la distribución geográfica de los apartamentos ubicados en la Zona Sur de Cali incluidos en la base de datos. Cada punto representa una vivienda disponible en el mercado inmobiliario dentro de esta zona.
Se observa una concentración importante de observaciones en el sector sur de la ciudad, particularmente en áreas residenciales cercanas a barrios y conjuntos habitacionales característicos de esta zona. Esto confirma que la mayoría de los registros corresponden efectivamente a apartamentos ubicados en la Zona Sur.
Sin embargo, al igual que en el escenario analizado previamente para casas en la zona norte, se observa que algunos puntos aparecen visualmente ubicados fuera de los límites esperados de la zona sur. Esta situación puede explicarse por varias razones. En primer lugar, la variable “zona” en la base de datos puede estar definida a partir de criterios administrativos o comerciales del mercado inmobiliario que no necesariamente coinciden con los límites geográficos exactos.
Adicionalmente, es posible que algunas coordenadas geográficas presenten imprecisiones debido a errores de georreferenciación o a la forma en que fueron registradas en la base de datos. Por esta razón, algunos registros pueden aparecer en el mapa fuera de la zona esperada aun cuando estén clasificados como pertenecientes a la Zona Sur en la base original.
p_area2 <- ggplot(base2, aes(x = areaconst, y = preciom)) +
geom_point(color="darkblue", alpha=0.6) +
geom_smooth(method="lm", color="red") +
labs(
title="Relación entre área construida y precio (Zona Sur)",
x="Área construida (m2)",
y="Precio (millones de pesos)"
)
ggplotly(p_area2)
El gráfico muestra la relación entre el área construida y el precio de los apartamentos ubicados en la zona sur de la ciudad. Al igual que en el escenario analizado previamente para casas en la zona norte, se observa una relación positiva entre el área construida y el precio de la vivienda, lo cual indica que apartamentos de mayor tamaño tienden a presentar precios más altos.
Sin embargo, en este caso la nube de puntos presenta una mayor dispersión en comparación con el análisis realizado para las casas en la zona norte. Esto sugiere que, aunque el área construida continúa siendo un determinante importante del precio, existen otros factores que también influyen significativamente en el valor de los apartamentos en esta zona de la ciudad.
Entre estos factores podrían encontrarse características como la ubicación específica dentro de la zona sur, el tipo de conjunto residencial, la antigüedad del edificio, los acabados del inmueble o las amenidades del conjunto.
Adicionalmente, se observan algunos valores atípicos correspondientes a apartamentos con áreas construidas considerablemente mayores o precios significativamente distintos al patrón general. Estos casos podrían corresponder a propiedades de lujo o a registros particulares dentro del mercado inmobiliario analizado.
####7.2.2 Relación entre el precio y el estrato
p_estrato2 <- ggplot(base2, aes(x = estrato, y = preciom)) +
geom_boxplot(fill="lightblue") +
labs(
title="Precio de apartamentos según estrato (Zona Sur)",
x="Estrato",
y="Precio (millones de pesos)"
)
ggplotly(p_estrato2)
El gráfico presenta la distribución del precio de los apartamentos en función del estrato socioeconómico en la zona sur de la ciudad. A partir del diagrama de cajas se observa una relación clara entre el estrato y el valor de las viviendas.
En general, se evidencia que a medida que aumenta el estrato socioeconómico también aumenta el precio de los apartamentos. Los apartamentos ubicados en estrato 3 presentan los valores más bajos del mercado, mientras que los estratos 5 y 6 muestran precios considerablemente más altos.
Particularmente, el estrato 6 presenta tanto una mediana de precio mayor como una mayor dispersión de los valores, lo que sugiere la presencia de apartamentos de alto valor dentro de este segmento del mercado inmobiliario. Esto es consistente con la estructura del mercado de vivienda en la zona sur de la ciudad, donde los estratos más altos suelen concentrar propiedades con mejores ubicaciones, mayores áreas construidas o mayores niveles de calidad en acabados y amenidades.
Adicionalmente, se observan algunos valores atípicos en todos los estratos, especialmente en los estratos más altos. Estos puntos podrían corresponder a apartamentos con características particulares que incrementan significativamente su valor de mercado.
En el contexto de la solicitud analizada, este resultado es relevante dado que la vivienda evaluada podría pertenecer a estrato 5 o estrato 6, lo que implica que el valor esperado de la propiedad podría ubicarse dentro de los rangos más altos observados en el mercado de apartamentos de la zona sur.
p_banios2 <- ggplot(base2, aes(x = banios, y = preciom)) +
geom_point(color="darkgreen", alpha=0.6) +
geom_smooth(method="lm", color="red") +
labs(
title="Relación entre número de baños y precio (Zona Sur)",
x="Número de baños",
y="Precio (millones de pesos)"
)
ggplotly(p_banios2)
El gráfico presenta la relación entre el número de baños y el precio de los apartamentos ubicados en la zona sur de la ciudad. Se observa una tendencia positiva, lo que indica que los apartamentos con un mayor número de baños tienden a presentar precios más altos.
Este comportamiento es lógico dentro del mercado inmobiliario, ya que un mayor número de baños generalmente está asociado con viviendas de mayor tamaño, mayor número de habitaciones o con un mayor nivel de comodidad para los residentes. Por esta razón, esta variable suele estar relacionada con el valor de mercado de las propiedades.
No obstante, la nube de puntos presenta cierta dispersión para un mismo número de baños, lo que sugiere que el precio de los apartamentos no depende únicamente de esta característica. Factores como el área construida, el estrato socioeconómico, la ubicación específica dentro de la zona sur o las características del conjunto residencial también pueden influir en el valor final de la vivienda.
Adicionalmente, se observan algunos valores atípicos correspondientes a apartamentos con precios considerablemente más altos que el promedio para un número determinado de baños. Estos casos podrían corresponder a apartamentos de mayor tamaño o con características de lujo dentro del mercado analizado.
p_habit2 <- ggplot(base2, aes(x = habitaciones, y = preciom)) +
geom_point(color="purple", alpha=0.6) +
geom_smooth(method="lm", color="red") +
labs(
title="Relación entre número de habitaciones y precio (Zona Sur)",
x="Número de habitaciones",
y="Precio (millones de pesos)"
)
ggplotly(p_habit2)
El gráfico muestra la relación entre el número de habitaciones y el precio de los apartamentos en la zona sur de la ciudad. Se observa una tendencia positiva, lo que indica que los apartamentos con un mayor número de habitaciones tienden a presentar precios más altos.
Sin embargo, también se observa una dispersión considerable de los datos para un mismo número de habitaciones, lo que sugiere que esta variable por sí sola no explica completamente el precio de los apartamentos. Otros factores como el área construida, el estrato socioeconómico o las características del inmueble también influyen en el valor de mercado de las viviendas.
p_parq2 <- ggplot(base2, aes(x = parqueaderos, y = preciom)) +
geom_point(color="orange", alpha=0.6) +
geom_smooth(method="lm", color="red") +
labs(
title="Relación entre número de parqueaderos y precio (Zona Sur)",
x="Número de parqueaderos",
y="Precio (millones de pesos)"
)
ggplotly(p_parq2)
El gráfico muestra la relación entre el número de parqueaderos y el precio de los apartamentos en la zona sur. Se observa una tendencia positiva, lo que sugiere que los apartamentos con más parqueaderos tienden a tener precios más altos.
No obstante, también se aprecia una dispersión considerable de los datos, lo que indica que el número de parqueaderos no determina por sí solo el precio de los apartamentos. Esta variable probablemente está asociada con otras características de la vivienda, como el área construida o el estrato socioeconómico.
vars_cor2 <- base2 %>%
select(preciom, areaconst, banios, habitaciones, parqueaderos)
ggpairs(vars_cor2)
La matriz de correlación permite analizar la relación entre las variables cuantitativas incluidas en el estudio. En general se observa que el precio de los apartamentos presenta correlaciones positivas con todas las variables consideradas.
En particular, el área construida presenta la relación más fuerte con el precio (0.758), lo que indica que apartamentos de mayor tamaño tienden a tener valores más altos en el mercado. De forma similar, el número de baños (0.720) y el número de parqueaderos (0.693) también muestran correlaciones relativamente altas con el precio.
Por otro lado, el número de habitaciones presenta una correlación positiva más moderada (0.332), lo que sugiere que esta variable tiene una menor capacidad explicativa del precio en comparación con las demás características.
En conjunto, estos resultados sugieren que variables relacionadas con el tamaño y la funcionalidad de la vivienda, como el área construida y el número de baños, son factores importantes en la determinación del precio de los apartamentos en la zona sur de la ciudad.
modelo2 <- lm(preciom ~ areaconst + estrato + habitaciones + parqueaderos + banios,
data = base2)
summary(modelo2)
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos +
## banios, data = base2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1058.69 -39.21 0.38 36.96 898.14
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -28.38462 12.93336 -2.195 0.02828 *
## areaconst 1.28595 0.05105 25.189 < 2e-16 ***
## estrato4 30.40026 9.55717 3.181 0.00149 **
## estrato5 50.88889 9.61940 5.290 1.33e-07 ***
## estrato6 204.40443 11.17300 18.294 < 2e-16 ***
## habitaciones -17.10675 3.70357 -4.619 4.06e-06 ***
## parqueaderos 62.13696 3.79229 16.385 < 2e-16 ***
## banios 41.95467 3.24893 12.913 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 92.52 on 2373 degrees of freedom
## (406 observations deleted due to missingness)
## Multiple R-squared: 0.7762, Adjusted R-squared: 0.7755
## F-statistic: 1175 on 7 and 2373 DF, p-value: < 2.2e-16
El modelo de regresión lineal múltiple permite analizar el efecto de distintas características de la vivienda sobre el precio de los apartamentos en la zona sur de la ciudad.
Los resultados muestran que la mayoría de las variables incluidas en el modelo son estadísticamente significativas al 5%, lo que indica que tienen una relación relevante con el precio de los apartamentos.
En particular, el área construida presenta un coeficiente positivo y altamente significativo. El modelo estima que, manteniendo constantes las demás variables, un incremento de un metro cuadrado en el área construida aumenta el precio del apartamento en aproximadamente 1.29 millones de pesos. Este resultado es consistente con la teoría del mercado inmobiliario, donde el tamaño de la vivienda es uno de los principales determinantes del valor de mercado.
El estrato socioeconómico también presenta un efecto positivo sobre el precio. En comparación con el estrato base, los apartamentos en estrato 4 presentan en promedio un precio 30 millones de pesos mayor, mientras que los apartamentos en estrato 5 presentan un incremento aproximado de 50 millones de pesos. El efecto es aún más fuerte en el estrato 6, donde el precio aumenta en promedio 204 millones de pesos, lo que refleja el mayor valor de las propiedades ubicadas en los estratos más altos.
El número de parqueaderos también tiene un impacto importante en el precio. El modelo estima que cada parqueadero adicional incrementa el valor del apartamento en aproximadamente 62 millones de pesos, lo cual es coherente con la alta demanda de espacios de estacionamiento en zonas urbanas.
De forma similar, el número de baños presenta un efecto positivo, aumentando el precio en aproximadamente 42 millones de pesos por cada baño adicional, lo que refleja la importancia de esta característica en la comodidad y funcionalidad de la vivienda.
Por otro lado, el número de habitaciones presenta un coeficiente negativo. Esto puede interpretarse como un efecto asociado al tamaño promedio de las habitaciones: manteniendo constante el área construida, un mayor número de habitaciones podría implicar espacios más pequeños, lo cual podría reducir el valor percibido del apartamento.
El modelo presenta un coeficiente de determinación (R²) de 0.776, lo que indica que aproximadamente el 77.6% de la variabilidad del precio de los apartamentos es explicada por las variables incluidas en el modelo: área construida, estrato, número de habitaciones, número de parqueaderos y número de baños.
El R² ajustado (0.7755) es muy similar al R², lo que sugiere que las variables incluidas en el modelo contribuyen de manera relevante a explicar el precio de las viviendas y que no se están incluyendo variables innecesarias.
Adicionalmente, el estadístico F del modelo es altamente significativo (p-value < 2.2e-16), lo que indica que el conjunto de variables explicativas incluidas en el modelo tiene una relación estadísticamente significativa con el precio de los apartamentos.
En general, estos resultados sugieren que el modelo presenta un buen nivel de ajuste para explicar el comportamiento del precio de los apartamentos en la zona sur de la ciudad. No obstante, aún podrían existir factores adicionales que influyan en el valor de las viviendas, tales como la ubicación específica dentro de la zona, la antigüedad del edificio, la calidad de los acabados o las amenidades del conjunto residencial.
Es importante señalar que algunas observaciones fueron eliminadas automáticamente del análisis debido a la presencia de valores faltantes en algunas de las variables utilizadas en el modelo.Para ser especificos 406 valores.
par(mfrow=c(2,2))
plot(modelo2)
Para evaluar la validez del modelo de regresión estimado se analizaron
los gráficos de diagnóstico estándar del modelo, los cuales permiten
revisar los supuestos de linealidad, normalidad de los residuos,
homocedasticidad y presencia de observaciones influyentes.
En el gráfico Residuals vs Fitted se observa que los residuos se distribuyen alrededor de cero sin presentar patrones claramente sistemáticos, lo que sugiere que la relación entre las variables explicativas y el precio puede aproximarse razonablemente mediante un modelo lineal. No obstante, se aprecia una ligera mayor dispersión de los residuos para valores altos del precio estimado.
El gráfico Q-Q Plot muestra que la mayoría de los residuos siguen aproximadamente la línea teórica de normalidad, aunque se presentan algunas desviaciones en los extremos. Esto sugiere que la normalidad de los residuos se cumple de manera aproximada, pero existen algunos valores atípicos.
En el gráfico Scale-Location se observa una ligera tendencia creciente en la dispersión de los residuos a medida que aumentan los valores ajustados, lo cual podría indicar cierta presencia de heterocedasticidad. Sin embargo, este comportamiento no parece ser extremadamente pronunciado.
Finalmente, el gráfico Residuals vs Leverage permite identificar posibles observaciones influyentes. Se observan algunos puntos con mayor leverage, aunque en general la mayoría de las observaciones se encuentran dentro de los límites esperados.
En conjunto, los gráficos sugieren que el modelo cumple de manera razonable con los supuestos básicos de la regresión lineal, aunque podrían explorarse mejoras como transformaciones de variables o modelos alternativos para reducir la posible heterocedasticidad o la influencia de valores extremos.
Utilizando el modelo de regresión estimado se realizó la predicción del precio esperado para la Vivienda 2 considerando las características descritas en la solicitud: un apartamento con 300 metros cuadrados de área construida, 5 habitaciones, 3 baños y 3 parqueaderos ubicado en la zona sur de la ciudad.
Dado que la vivienda podría pertenecer a estrato 5 o estrato 6, se realizaron predicciones para ambos escenarios.
vivienda2_e5 <- data.frame(
areaconst = 300,
estrato = factor(5, levels = levels(base2$estrato)),
habitaciones = 5,
parqueaderos = 3,
banios = 3
)
predict(modelo2, vivienda2_e5, interval="prediction")
## fit lwr upr
## 1 635.0311 452.2703 817.7919
Para el caso de estrato 5, el modelo estima un precio aproximado de 635 millones de pesos, con un intervalo de predicción que se encuentra aproximadamente entre 452 millones y 818 millones de pesos.
vivienda2_e6 <- data.frame(
areaconst = 300,
estrato = factor(6, levels = levels(base2$estrato)),
habitaciones = 5,
parqueaderos = 3,
banios = 3
)
predict(modelo2, vivienda2_e6, interval="prediction")
## fit lwr upr
## 1 788.5467 605.7037 971.3896
Por otro lado, si la vivienda pertenece a estrato 6, el precio estimado aumenta a aproximadamente 789 millones de pesos, con un intervalo de predicción que se ubica entre 606 millones y 971 millones de pesos.
Al comparar estas estimaciones con el crédito preaprobado de 850 millones de pesos, se observa que el valor estimado de la vivienda se encuentra dentro de la capacidad de financiamiento disponible en ambos escenarios. En el caso del estrato 5, el precio estimado se encuentra claramente por debajo del límite del crédito, mientras que en el estrato 6 el precio esperado también se mantiene dentro del rango financiable, aunque el límite superior del intervalo de predicción supera ligeramente el monto disponible.
En consecuencia, desde una perspectiva financiera, la empresa tendría la capacidad de adquirir una vivienda con estas características dentro del rango de precios estimado por el modelo.
ofertas_sur <- base2 %>%
filter(
preciom <= 850,
estrato %in% c("5","6"),
between(areaconst, 240, 600),
habitaciones >= 5,
banios >= 3,
parqueaderos >= 3
)
ofertas_sur_final <- ofertas_sur %>%
arrange(preciom) %>%
slice(1:5)
ofertas_sur_final
## # A tibble: 3 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 8036 Zona S… <NA> 5 530 256 3 5 5
## 2 7512 Zona S… <NA> 5 670 300 3 5 6
## 3 7182 Zona S… <NA> 5 730 573 3 8 5
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
Con el fin de identificar posibles alternativas de compra para la segunda solicitud, se realizó una búsqueda dentro de la base de datos de apartamentos ubicados en la zona sur de la ciudad. Inicialmente se intentó encontrar viviendas con características lo más similares posible a la vivienda analizada, la cual corresponde a un apartamento de aproximadamente 300 metros cuadrados, con 5 habitaciones, 3 baños y 3 parqueaderos.
Sin embargo, al aplicar criterios muy estrictos no se encontraron suficientes alternativas dentro de la base de datos. Por esta razón se decidió ampliar ligeramente los criterios de búsqueda con el objetivo de identificar apartamentos comparables dentro del mercado inmobiliario de la zona sur.
En particular, se consideraron apartamentos que cumplieran con las siguientes condiciones:
Bajo estos criterios se identificaron tres apartamentos potenciales dentro de la base de datos que podrían representar alternativas de compra.
Los apartamentos encontrados presentan precios entre 530 y 730 millones de pesos, lo que se encuentra dentro del rango de financiamiento disponible. Además, las áreas construidas varían entre 256 y 573 metros cuadrados, lo que indica que se trata de viviendas de gran tamaño dentro del mercado de apartamentos de la zona sur.
Estas propiedades representan alternativas potenciales de compra que cumplen con las restricciones financieras de la empresa y presentan características estructurales comparables con la vivienda solicitada.
El mapa muestra la ubicación geográfica de los apartamentos identificados como posibles alternativas de compra dentro de la zona sur de la ciudad. Cada punto representa una de las viviendas seleccionadas a partir de los criterios definidos previamente.
leaflet(ofertas_sur_final) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitud,
lat = ~latitud,
radius = 7,
color = "blue",
popup = ~paste(
"Precio:", preciom, "millones",
"<br>Área:", areaconst,
"<br>Habitaciones:", habitaciones,
"<br>Baños:", banios,
"<br>Parqueaderos:", parqueaderos
)
)
Se observa que las propiedades se encuentran ubicadas en sectores residenciales del sur de Cali, en zonas cercanas a corredores urbanos importantes y áreas residenciales consolidadas. Esta localización es consistente con el tipo de viviendas analizadas, ya que los apartamentos de mayor tamaño y valor suelen concentrarse en sectores específicos de esta zona de la ciudad.
La visualización espacial facilita la identificación de las alternativas disponibles y permite analizar su localización dentro del contexto urbano. En conjunto, estas propiedades representan opciones potenciales de compra que cumplen con las restricciones financieras y las características estructurales establecidas para la segunda solicitud.
El análisis realizado permitió identificar los principales factores que influyen en el precio de las viviendas en la ciudad de Cali utilizando modelos de regresión lineal múltiple. En ambos escenarios se observó que variables como el área construida, el estrato socioeconómico, el número de baños y el número de parqueaderos tienen una influencia importante sobre el valor de mercado de las propiedades.
Las predicciones realizadas con el modelo permitieron estimar rangos de precios para las viviendas analizadas y evaluar la viabilidad de su adquisición considerando los créditos preaprobados disponibles. Asimismo, se identificaron posibles alternativas de compra dentro del mercado inmobiliario utilizando criterios comparables con las características de las solicitudes analizadas.
En general, los resultados muestran que los modelos estadísticos pueden ser herramientas útiles para apoyar la toma de decisiones en el mercado inmobiliario, permitiendo evaluar diferentes escenarios y analizar opciones de compra dentro de restricciones financieras específicas.