Modelación Estadística

Con base en los datos de ofertas de vivienda descargadas del portal Fincaraiz para apartamento de estrato 4 con área construida menor a 200 m2 (vivienda4.RDS), se realiza la construcción de un modelo que lo oriente sobre los precios de inmuebles.

Por lo tanto, se ha diseñado los siguientes pasos para obtener un modelo y asi determinar los precios de los inmuebles a negociar en un futuro.

1. Análisis Exploratorio Univariado

Realice un análisis exploratorio de las variables precio de vivienda (millones de pesos COP) y área de la vivienda (metros cuadrados) - incluir gráficos e indicadores apropiados interpretados.

table(vivienda4$tipo)
## 
## Apartamento        Casa 
##        1363         343
aptos <- subset(vivienda4, vivienda4$tipo == "Apartamento")
summary(aptos)
##            zona      estrato     preciom        areaconst     
##  Zona Centro :   7   3:   0   Min.   :207.4   Min.   : 40.00  
##  Zona Norte  : 237   4:1363   1st Qu.:228.8   1st Qu.: 60.00  
##  Zona Oeste  :  52   5:   0   Median :236.1   Median : 70.00  
##  Zona Oriente:   2   6:   0   Mean   :237.7   Mean   : 75.48  
##  Zona Sur    :1065            3rd Qu.:243.6   3rd Qu.: 84.00  
##                               Max.   :305.2   Max.   :200.00  
##           tipo     
##  Apartamento:1363  
##  Casa       :   0  
##                    
##                    
##                    
## 
  • El precio mínimo de una vivienda tipo apartamento es de 207 millones, el máximo 305 millones, la media es de 237 millones y la mediana de 236 millones. El 50% de los apartamentos cuestan entre 228 y 243 millones de pesos. El 25% cuesta menos de 228 millones y el 25% cuesta más de 243 millones.

  • El apartamento con menor área construida tiene 40 m2, el mayor tiene 200m2, la media es de 75,48 m2 y la mediana de 70 m2. El 50% de los apartamentos tiene un área construída entre 60 y 84 m2. El 25% de los apartamentos tienen un área construída de menos de 60 metros cuadrados y el 25% de más de 84 m2.

A continuación estos datos los podemos ver gráficamente mediante un boxplot y verificamos si existen valores atípicos en cada variable:

par(mfrow = c(1, 2))
boxplot(aptos$preciom, main = "Precio de apartamentos", col = "skyblue")
boxplot(aptos$areaconst, main = "Área construida de apartamentos", col ="blue")

Con los gráficos de cajas podemos observar:

  • En los rectángulos los valores contenidos entre el cuartil 1 y 3 como se describió con los datos generados en la tabla anterior,

  • Las líneas dentro de las cajas nos dan indicios que los datos no son simétricos, pues no están en el centro de la caja sino desviadas hacia abajo,

  • Tanto la variable precio como el área construída tienen puntos de datos que sobresalen de los bigotes, por lo tanto vemos que ambas contienen datos outlier.

Ahora bien, podemos visualizar la distribución de los datos mediante histogramas:

par(mfrow = c(1, 2))
hist(aptos$preciom, main = "Histograma de precio", xlab = "Precio", col = "skyblue")
hist(aptos$areaconst, main = "Histograma de área construida", xlab = "Área construida", col ="blue")

Con los histogramas de precio y área construída, observamos que los datos no se distribuyen de forma normal, los datos para ambas variables están sesgados a la derecha.

Esta apreciación sobre la normalidad de los datos la podemos confirmar con la prueba estadística de Shapiro-Wilk:

library(stats)
shapiro.test(aptos$preciom)
## 
##  Shapiro-Wilk normality test
## 
## data:  aptos$preciom
## W = 0.9277, p-value < 2.2e-16
shapiro.test(aptos$areaconst)
## 
##  Shapiro-Wilk normality test
## 
## data:  aptos$areaconst
## W = 0.82347, p-value < 2.2e-16

Con los datos de la prueba de Shapiro para ambas variables, con valores p-value < 2.2e-16, no rechazamos la hipótesis nula y confirmamos que ninguna de las dos variables tienen una distribución normal.

2. Ánálisis exploratorio bivariado

Realice un análisis exploratorio bivariado de datos, enfocado en la relación entre la variable respuesta (precio) en función de la variable predictora (area construida) - incluir gráficos e indicadores apropiados interpretados.

Para explorar la relación entre precio y area construida, puedo utilizar métodos gráficos con un diagrama de dispersión:

plot(aptos$areaconst, aptos$preciom, main = "Diagrama de dispersión Precio - Área construida", xlab = "área construida", ylab = "precio", col="lightgreen", pch=16)

El gráfico sugiere una relación lineal entre ambas variables, a medida que aumenta el área construida, aumenta el precio de los apartamentos.

Podemos confirmarlo con una prueba estadística de correlación, al no contar con una distribución normal, no utilizaría una prueba paremétrica como pearson, sino que aplico Spearman, puedo comparar la diferencia de los resultados de las dos pruebas:

cor.test(aptos$areaconst, aptos$preciom)
## 
##  Pearson's product-moment correlation
## 
## data:  aptos$areaconst and aptos$preciom
## t = 58.616, df = 1361, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.8305531 0.8607445
## sample estimates:
##       cor 
## 0.8463271
cor.test(aptos$areaconst, aptos$preciom, method = "spearman")
## 
##  Spearman's rank correlation rho
## 
## data:  aptos$areaconst and aptos$preciom
## S = 109350121, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.7408906

El resultado de Pearson nos arroja una prueba de 0.84, significa que hay una correlación positiva, de igual manera con la prueba no paramétrica de Spearman, encontramos el coeficiente de 0.74, lo que nos da una correlacón positiva considerable con un p-value < 2.2e-16, siendo estadísticamente significativa.

En conclusión, los cambios en el precio en lo apartamentos se relacionan con los cambios en área construida, a medida que aumenta el área construída, aumenta el precio y esta relación es bastante fuerte. El valor P es muy bajo, por lo cual decimos que esta correlación es significativa y no se debe al azar.

3. Modelo de regresión lineal.

Estime el modelo de regresión lineal simple entre precio=f(area)+ε. Interprete los coeficientes del modelo β0, β1 en caso de ser correcto.

Como ya sabemos que hay una relación lineal entre el área construída y el precio de las viviendas, procedemos con el modelo de regresión lineal.

modelo1<- lm(aptos$preciom~aptos$areaconst)
resultado_prueba <- summary(modelo1)
resultado_prueba
## 
## Call:
## lm(formula = aptos$preciom ~ aptos$areaconst)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -26.5139  -5.0886  -0.0031   4.6406  24.3309 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.001e+02  6.698e-01  298.67   <2e-16 ***
## aptos$areaconst 4.984e-01  8.503e-03   58.62   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.081 on 1361 degrees of freedom
## Multiple R-squared:  0.7163, Adjusted R-squared:  0.7161 
## F-statistic:  3436 on 1 and 1361 DF,  p-value: < 2.2e-16

El coeficiente β1 es 0.4984, nos indica cuánto incrementa el precio de las viviendas por cada aumento de un metro de área construída. Es decir que por cada aumento en un metro cuadrado de los apartamentos, el precio incrementa 0.4984 millones. El valor P <2e-16 nos indica que es significativo.

El coeficiente β0 es 200.1, su interpretación sería que con 0 metros cuadrados, el precio promedio de las viviendas sería de 39 milloes, sin embargo, no es coherente, pues una vivienda de 0 metros no existe. Para poderlo interpretar, requeriríamos centrar la variable.

El coeficiente estimado de la variable de área construida es de 0.4984. Esto significa que, en promedio, por cada metro cuadrado adicional de área construida, se espera que el precio del apartamento aumente en 0.4984 millones de pesos COP. Este coeficiente es significativo estadísticamente con un valor p cercano a cero (p-value < 2.2e-16), lo que sugiere una relación lineal significativa entre el precio y el área construida.

Ahora centramos la variable área construída para interpretar mejor el resultado:

areac <- aptos$areaconst - mean(aptos$areaconst)
modelo1c<- lm(preciom~areac, data=aptos)
summary(modelo1c)
## 
## Call:
## lm(formula = preciom ~ areac, data = aptos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -26.5139  -5.0886  -0.0031   4.6406  24.3309 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 2.377e+02  1.918e-01 1239.23   <2e-16 ***
## areac       4.984e-01  8.503e-03   58.62   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.081 on 1361 degrees of freedom
## Multiple R-squared:  0.7163, Adjusted R-squared:  0.7161 
## F-statistic:  3436 on 1 and 1361 DF,  p-value: < 2.2e-16

El promedio del área construída es de 75,48 metros cuadrados. Con el modelo centrado tenemos los mismos resultados de β1 y del coeficiente R2, lo que ahora cambia es que podemos interpretar mejor el β0. Cuando el área de los apartamentos es el valor promedio, es decir 75,48 metros cuadrados, el precio promedio de es de 237.7 millones.

4. Intervalos de confianza

Construir un intervalo de confianza (95%) para el coeficiente β1, interpretar y concluir si el coeficiente es igual a cero o no. Compare este resultado con una prueba de hipótesis t.

intervalo_confianza <-confint(modelo1c, level = 0.95)
intervalo_confianza
##                   2.5 %     97.5 %
## (Intercept) 237.3068495 238.059357
## areac         0.4817357   0.515097

Con una confianza del 95%, podemos concluir que por cada metro cuadrado que incremente el apartamento, el precio puede incrementar entre 0,481 y 0,515 millones de pesos.

Para contrastar este resultado con una prueba de hipótesis, utilizamos la prueba t para β1 para determinar si el coeficiente es igual a cero. Hipótesis nula: β1=0. Esto implicaría que no hay una linealidad entre el precio y el área construida.

valor_p <- resultado_prueba$coefficients["aptos$areaconst", "Pr(>|t|)"]
valor_p
## [1] 0

El valor p obtenido es 0. Esto indica que el p-valor asociado al coeficiente de la variable areaconst en el modelo de regresión es extremadamente pequeño, prácticamente cero.

Cuando el valor p es tan pequeño, por lo general se interpreta como una evidencia sólida en contra de la hipótesis nula, que en este caso sería que el coeficiente de areaconst es igual a cero. En otras palabras, hay una evidencia muy significativa para afirmar que el área construida tiene un efecto significativo en el precio de los apartamentos.

Por lo tanto, podemos concluir que el área construida es un predictor significativo del precio de los apartamentos en el modelo de regresión.

5. Indicador de Bondad de ajuste

Calcule e interprete el indicador de bondad R2.

r_cuadrado <- summary(modelo1c)$r.squared
r_cuadrado
## [1] 0.7162696

El coeficiente de determinación R2 o de bondad de ajuste es una medida importante en modelos de regresión que indica cuánta variación en la variable dependiente Y ( precio) es explicada por las variables independientes X (área construída) en el modelo. El R2 varía de 0 a 1, donde 1 indica que el modelo explica toda la variación en la variable dependiente.

6. Predicción de precio de apartamentos

¿Cuál sería el precio promedio estimado para un apartamento de 110 metros cuadrados? Considera entonces con este resultado que un apartamento en la misma zona con 110 metros cuadrados en un precio de 200 millones sería una atractiva esta oferta? ¿Qué consideraciones adicionales se deben tener?.

nuevos_datos <- data.frame(areac=110)

predict (modelo1c, nuevos_datos, interval = "confidence", level = 0.95)
##        fit      lwr     upr
## 1 292.5089 290.6359 294.382

Según los cálculos de predicción teniendo en cuenta el modelo centrado, con una confianza del 95%, cuando se tenga un apartamento con un área construída de 110 metros, el precio del mismo sería 292 millones y puede variar entre 290 y 294 millones de pesos.

Esto significa que estamos 95% seguros de que el precio real del apartamento cae dentro del rango de 290.6359 a 294.382 millones de pesos COP, con un valor predicho de 292.5089 millones de pesos COP. Es importante tener en cuenta que este intervalo de confianza se basa en el modelo de regresión y las suposiciones asociadas con él.

7. Validación de supuestos

Realice la validación de los supuestos del modelo por medio de gráficos apropiados, interpretarlos y sugerir posibles soluciones si se violan algunos de ellos. Utilice las pruebas de hipótesis para la validación de supuestos y compare los resultados con lo observado en los gráficos asociados.

Podemos validar supuestos mediante las siguientes gráficas:

par (mfrow=c(2,2))
plot(modelo1c)

8. Transformación.

De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.

A continuación se realizarán las transformaciones con sus gráficas de supuestos, las cuales serán descritas en más detalle en el numeral 9. Lo que esperamos con estas transformaciones es mejorar el cumplimiento de los supuestos sobre los errores del modelo original.

8.1. Transformación Lin-Log

modeloLilo=lm(preciom ~ log(areaconst), data=aptos)      
summary(modeloLilo)
## 
## Call:
## lm(formula = preciom ~ log(areaconst), data = aptos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -22.9725  -5.4109  -0.1832   4.9141  24.1899 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     53.8202     3.4091   15.79   <2e-16 ***
## log(areaconst)  42.8778     0.7936   54.03   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.496 on 1361 degrees of freedom
## Multiple R-squared:  0.682,  Adjusted R-squared:  0.6818 
## F-statistic:  2919 on 1 and 1361 DF,  p-value: < 2.2e-16
par (mfrow=c(2,2))
plot(modeloLilo)

8.2.Transformación Log-Lin

En este caso aplico la transformación logaritmo a Y:

modeloLoli=lm(log(preciom) ~ areaconst, data=aptos)      
summary(modeloLoli)
## 
## Call:
## lm(formula = log(preciom) ~ areaconst, data = aptos)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.104645 -0.020942  0.000593  0.019371  0.099110 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 5.318e+00  2.835e-03 1876.11   <2e-16 ***
## areaconst   2.007e-03  3.598e-05   55.77   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02996 on 1361 degrees of freedom
## Multiple R-squared:  0.6956, Adjusted R-squared:  0.6954 
## F-statistic:  3110 on 1 and 1361 DF,  p-value: < 2.2e-16
par (mfrow=c(2,2))
plot(modeloLoli)

8.3. Transformación Log-Log

Aplicamos la transformación de logaritmo tanto a X como a Y:

modeloLolo=lm(log(preciom) ~ log(areaconst), data=aptos) 
summary(modeloLolo)
## 
## Call:
## lm(formula = log(preciom) ~ log(areaconst), data = aptos)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.104277 -0.022240  0.000027  0.020782  0.093359 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    4.722680   0.014102  334.91   <2e-16 ***
## log(areaconst) 0.174148   0.003283   53.05   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03101 on 1361 degrees of freedom
## Multiple R-squared:  0.674,  Adjusted R-squared:  0.6738 
## F-statistic:  2814 on 1 and 1361 DF,  p-value: < 2.2e-16
par (mfrow=c(2,2))
plot(modeloLolo)

lmtest::bptest(modeloLolo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modeloLolo
## BP = 0.11855, df = 1, p-value = 0.7306

8.5. Transformación Box-Cox

Se realiza sobre la variable Y y usualmente se utiliza para dar solución a problemas tanto de validación de suspuesto como también de mejoras en el nivel de ajuste del modelo.

modeloboxcox=lm(preciom ~ areaconst, data=aptos)
summary(modeloboxcox)
## 
## Call:
## lm(formula = preciom ~ areaconst, data = aptos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -26.5139  -5.0886  -0.0031   4.6406  24.3309 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 2.001e+02  6.698e-01  298.67   <2e-16 ***
## areaconst   4.984e-01  8.503e-03   58.62   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.081 on 1361 degrees of freedom
## Multiple R-squared:  0.7163, Adjusted R-squared:  0.7161 
## F-statistic:  3436 on 1 and 1361 DF,  p-value: < 2.2e-16
par(mfrow = c(1,2))
boxcox(lm(aptos$preciom ~ aptos$areaconst, data=aptos), lambda = -3:3)
bc<-boxcox(lm(aptos$preciom ~ aptos$areaconst, data=aptos), lambda = -1:1)

(lambda <- bc$x[which.max(bc$y)])
## [1] 1

El resultado indica el valor de lambda que maximiza la medida de rendimiento (en este caso, la estadística Box-Cox), que es 1.

La transformación Box-Cox se utiliza a menudo para estabilizar la varianza y hacer que los datos se ajusten mejor a los supuestos de la regresión lineal. Cuando lambda es igual a 1, implica que no se necesita ninguna transformación de los datos originales, ya que lambda = 1 indica que la transformación es logarítmica. Esto sugiere que la relación entre las variables en el modelo original ya está bien aproximada por una relación lineal y no se requiere ninguna transformación adicional.

9. Comparación de modelos.

De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.

9.1. Coeficientes de determinación:

r_cuadrado_Lilo <- summary(modeloLilo)$r.squared
r_cuadrado_Loli <- summary(modeloLoli)$r.squared
r_cuadrado_Lolo <- summary(modeloLolo)$r.squared
r_cuadrado_Box <- summary(modeloboxcox)$r.squared

# Comparar R^2^ de los modelos
print(paste("Coeficiente de determinación Modelo Lilo: ", r_cuadrado_Lilo))
## [1] "Coeficiente de determinación Modelo Lilo:  0.682015883494923"
print(paste("Coeficiente de determinación Modelo Loli: ", r_cuadrado_Loli))
## [1] "Coeficiente de determinación Modelo Loli:  0.695595795224558"
print(paste("Coeficiente de determinación Modelo Lolo: ", r_cuadrado_Lolo))
## [1] "Coeficiente de determinación Modelo Lolo:  0.674036237107077"
print(paste("Coeficiente de determinación Modelo Box: ", r_cuadrado_Box))
## [1] "Coeficiente de determinación Modelo Box:  0.716269634034037"

Los resultados muestran los coeficientes de determinación 𝑅2R2 para cuatro modelos diferentes:

  1. Modelo Lilo: 𝑅2=0.682R2=0.682

  2. Modelo Loli: 𝑅2=0.696R2=0.696

  3. Modelo Lolo: 𝑅2=0.674R2=0.674

  4. Modelo Box: 𝑅2=0.716R2=0.716

El coeficiente de determinación, 𝑅2, indica la proporción de la variación en la variable dependiente que es explicada por el modelo. En este caso, cuanto más cercano sea 𝑅2 a 1, mejor será el ajuste del modelo a los datos.

Comparando los valores de 𝑅2, observamos que el modelo Box tiene el mayor 𝑅2, lo que sugiere que se ajusta mejor a los datos en comparación con los otros modelos. Esto indica que la transformación de Box-Cox aplicada al modelo ha mejorado su capacidad para explicar la variabilidad en la variable dependiente en comparación con los otros modelos.

9.2. Supuestos

Normalidad:

par (mfrow=c(2,3))
qqnorm(modelo1c$residuals, main = "Q-Q Modelo original", col = "blue")
qqline(modelo1c$residuals)
qqnorm(modeloLilo$residuals, main = "Q-Q Modelo Lin-Log", col = "gray")
qqline(modeloLilo$residuals)
qqnorm(modeloLoli$residuals, main = "Q-Q Modelo Log-Lin", col = "red")
qqline(modeloLoli$residuals)
qqnorm(modeloLolo$residuals, main = "Q-Q Modelo Log-Log", col = "green")
qqline(modeloLolo$residuals)
qqnorm(modeloboxcox$residuals, main = "Q-Q Modelo Box", col = "orange")
qqline(modeloboxcox$residuals)

Podemos observar que todos los graficos Q-Q cumplen con los ajustes de los residuales a la normalidad. Se distribuyen de manera normal, por lo tanto, las transformaciones fueron efectivas para mejorar la normalidad.

Homocedasticidad:

Podemos comparar los gráficos de residuos vs valores ajustados:

par (mfrow=c(2,3))
plot(modelo1c$fitted.values, modelo1c$residuals, xlab = "Valores Ajustados", ylab = "Residuos", main = "Modelo original", col = "blue")
plot(modeloLilo$fitted.values, modeloLilo$residuals, xlab = "Valores Ajustados", ylab = "Residuos", main = "Modelo Lin-Log",  col = "gray")
plot(modeloLoli$fitted.values, modeloLoli$residuals, xlab = "Valores Ajustados", ylab = "Residuos", main = "Modelo Log-Lin", col = "red")
plot(modeloLolo$fitted.values, modeloLolo$residuals, xlab = "Valores Ajustados", ylab = "Residuos", main = "Modelo Log-Log", col = "green")
plot(modeloboxcox$fitted.values, modeloboxcox$residuals, xlab = "Valores Ajustados", ylab = "Residuos", main = "Modelo Box", col = "orange")

Homoc1c <- lmtest::bptest(modelo1c)
ValorP1c <- Homoc1c$p.value
HomocLilo <- lmtest::bptest(modeloLilo)
ValorPLilo <- HomocLilo$p.value
HomocLoli <- lmtest::bptest(modeloLoli)
ValorPLoli <- HomocLoli$p.value
HomocLolo <- lmtest::bptest(modeloLolo)
ValorPLolo <- HomocLolo$p.value
HomocBox <- lmtest::bptest(modeloboxcox)
ValorPBox <- HomocBox$p.value

print(paste("Homocedasticidad modelo original: ", ValorP1c))
## [1] "Homocedasticidad modelo original:  0.361441310816058"
print(paste("Homocedasticidad modelo Lin-Log: ", ValorPLilo))
## [1] "Homocedasticidad modelo Lin-Log:  0.000141575619934202"
print(paste("Homocedasticidad modelo Log-Lin: ", ValorPLoli))
## [1] "Homocedasticidad modelo Log-Lin:  0.00810777570926761"
print(paste("Homocedasticidad modelo Log-Log: ", ValorPLolo))
## [1] "Homocedasticidad modelo Log-Log:  0.730613746255508"
print(paste("Homocedasticidad modelo Box: ", ValorPBox))
## [1] "Homocedasticidad modelo Box:  0.361441310816068"

11. Informe para inmobiliaria.

Con los resultados obtenidos construya un informe para los directivos de la inmobiliaria, indicando el modelo apropiado y sus principales características. A este informe se deben añadir los anexos como evidencia de la realización de los pasos anteriores.

Informe para Inmobiliaria:

Estimados miembros de la inmobiliaria A&C,

Se revisaron los datos de ofertas de vivienda publicadas en el portal de Fincaraiz relacionados con apartamentos de estrato 4 encontrando:

Información General

  • En el periodo revisado, para la ciudad de Cali, se ofertaron 1.363 apartamentos ubicados en estrato 4 principalmente en la zona Sur, con áreas construídas que varían entre 40 y 200 metros cuadrados, la mediana del área construida es de 70 metros cuadrados.

  • Los precios de los apartamentos varían según los metros cuadrados construídos desde 207 hasta 305 millones. A mayor área construída, mayor es el precio y esta correlación es estadísticamente significativa. Consideramos importante tenerlo en cuenta en el momento de definir los precios.

    Información sobre predicciones utilizando modelos estadísticos:

    Si bien existe una relación fuerte entre el aumento del área construída y el aumento del precio del apartamento.

  • Por cada metro cuadrado adicional de área construida, se espera que el precio del apartamento aumente en 0.4984 millones de pesos COP. Este coeficiente es significativo estadísticamente con un valor p cercano a cero (p-value < 2.2e-16), lo que sugiere una relación lineal significativa entre el precio y el área construida.

  • Las predicciones muestran que para un apartamento de alrededor de 110 metros cuadrados, el precio puede estar alrededor 292 millones y puede variar entre 290 y 294 millones de pesos.

    Esperamos que los datos proporcionados sean beneficiosos para establecer los precios de sus propiedades inmobiliarias. Es importante ejercer cuidado al aplicar la información suministrada por los modelos estadísticos. Es evidente que los apartamentos con áreas más amplias tienden a presentar precios más elevados.