Con base en los datos de ofertas de vivienda descargadas del portal Fincaraiz para apartamento de estrato 4 con área construida menor a 200 m² (vivienda4.RDS), la inmobiliaria A&C requiere el apoyo de un científico de datos en la construcción de un modelo que oriente sobre los precios de inmuebles.
La variable de precio muestra una concentración de precios de los apartamentos hacia la izquierda del histograma; lo que indica precios bajos.
# histograma [Precio]
hist(viviendas_filtrado$preciom, xlab="Precio (Millones COP)", col="#AE123A", main="Histograma [Precio]", freq=FALSE)Los cuartiles nos brindan la siguiente inforamción, el 25% de los apartamentos tienen un precio menor o igual a 153 millones de pesos, tambien el 75% de los apartamentos tienen un valor menor que o igual a 240 millones de pesos. como lo podemos ver en el resumen y se puede corroborar con el gráfico de cajas.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 78 153 185 202 240 645
# Caja [Precio]
boxplot(viviendas_filtrado$preciom, xlab="Precio (Millones COP)", col="#6495ED", main="Caja [Precio]")los precios de las viviendas muestran una variabilidad moderada, con una moda claramente definida en 150 millones de pesos COP. La desviación estándar y el coeficiente de variación indican una dispersión significativa en los precios en relación con el promedio.
# Calcular la moda de forma manual
moda_precio <- names(sort(-table(viviendas_filtrado$preciom)))[1]
# Calcular otros indicadores
promedio_precio <- mean(viviendas_filtrado$preciom)
varianza_precio <- var(viviendas_filtrado$preciom)
desviacion_estandar_precio <- sd(viviendas_filtrado$preciom)
coeficiente_variacion <- (desviacion_estandar_precio / promedio_precio) * 100
# Crear la tabla de indicadores
tabla_indicadores <- data.frame(
Moda = moda_precio,
Varianza = varianza_precio,
Desviacion_estandar = desviacion_estandar_precio,
Coeficiente_variacion = coeficiente_variacion
)
# Mostrar la tabla
kable(
tabla_indicadores,
caption = "Indicadores de posición, forma, centro y variabilidad",
align = "c",
col.names = c("Moda", "Varianza", "Desviación estándar", "Coeficiente de variación")
) %>%
kable_classic(full_width = FALSE, html_font = "Cambria") %>%
kable_styling(position = "center")| Moda | Varianza | Desviación estándar | Coeficiente de variación |
|---|---|---|---|
| 150 | 4166.598 | 64.54919 | 31.95947 |
La variable de área construida nos deja ver en el histograma un comportamiento de la cantidad de apartamentos concentrada en la parte de la izquierda lo que indica que las viviendas pequeñas son las más apetecidas.
# Histograma y densidad del área construida
hist(viviendas_filtrado$areaconst, xlab="Metros Cuadrados", col="#4D6291", main="Histograma [Área Construida]", freq=FALSE)Los cuartiles nos brindan la siguiente inforamción, el 25% de los apartamentos tienen un área menor o igual a 60 m², tambien el 75% de los apartamentos tienen un área menor que o igual a 84 m². como lo podemos ver en el resumen y se puede corroborar con el gráfico de cajas.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 40.0 60.0 70.0 75.2 83.0 198.0
# Caja [área]
boxplot(viviendas_filtrado$areaconst, xlab="Metros Cuadrados", col="#6495ED", main="Caja [Área Construida]")El área construida de las viviendas muestra una variabilidad moderada, con una moda claramente definida en 60 metros cuadrados. La desviación estándar y el coeficiente de variación indican una dispersión significativa en las áreas construidas en relación con el promedio.
# Calcular la moda de forma manual
moda_area <- names(sort(-table(viviendas_filtrado$areaconst)))[1]
# Calcular otros indicadores
promedio_area <- mean(viviendas_filtrado$areaconst)
varianza_area <- var(viviendas_filtrado$areaconst)
desviacion_estandar_area <- sd(viviendas_filtrado$areaconst)
coeficiente_variacion_area <- (desviacion_estandar_area / promedio_area) * 100
# Crear la tabla de indicadores
tabla_indicadores <- data.frame(
Moda = moda_area,
Varianza = varianza_area,
Desviacion_estandar_area = desviacion_estandar_area,
coeficiente_variacion_area = coeficiente_variacion_area
)
# Mostrar la tabla
kable(
tabla_indicadores,
caption = "Indicadores de posición, forma, centro y variabilidad",
align = "c",
col.names = c("Moda", "Varianza", "Desviación estándar", "Coeficiente de variación")
) %>%
kable_classic(full_width = FALSE, html_font = "Cambria") %>%
kable_styling(position = "center")| Moda | Varianza | Desviación estándar | Coeficiente de variación |
|---|---|---|---|
| 60 | 475.9813 | 21.817 | 29.01054 |
El gráfico revela una tendencia donde, en líneas generales, las viviendas más costosas tienden a tener un área construida mayor. No obstante, se observan algunas excepciones a esta tendencia, ya que hay viviendas con un área construida mayor que son más económicas que otras con un área construida menor.
# Gráfico de dispersión para precio de vivienda vs. área construida
ggplot(viviendas_filtrado, aes(x = areaconst, y = preciom)) +
geom_point() +
geom_smooth(mapping = aes(x = areaconst, y = preciom), method = "lm", se = FALSE, color = "#FF6B58")+
labs(x = "Área Construida (metros cuadrados)", y = "Precio de Vivienda (millones de pesos COP)")+
theme(plot.title = element_text(hjust = 0.5))Para corroborar la linealidad entre las dos variables. Antes de aplicar la correlación de Pearson, nos vamos a asegurar que estas variables cumplan los supuestos requeridos. Para el supuesto de normalidad aplicamos la prueba de Shapiro-Wilk.
Tenemos:
##
## Shapiro-Wilk normality test
##
## data: viviendas_filtrado$areaconst
## W = 0.83913, p-value < 2.2e-16
##
## Shapiro-Wilk normality test
##
## data: viviendas_filtrado$preciom
## W = 0.90109, p-value < 2.2e-16
De acuerdo a esta prueba, en ambos casos el valor de probabilidad (p) es muy inferiores a nuestro nivel elegido (0,05), por lo que rechazamos la hipótesis nula y aceptamos la hipótesis alternativa, por ende, la distribución de ambas variables no es normal.
En este caso, una correlación de 0.7431338 indica una relación débil positiva entre el área y el precio de la vivienda, lo que sugiere que el tamaño de la vivienda es un predictor del precio.
# Correlación entre preciom y areaconst
cor.test (viviendas_filtrado$preciom, viviendas_filtrado$areaconst)##
## Pearson's product-moment correlation
##
## data: viviendas_filtrado$preciom and viviendas_filtrado$areaconst
## t = 40.926, df = 1358, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.7183544 0.7660298
## sample estimates:
## cor
## 0.7431338
Estime el modelo de regresión lineal simple entre precio=f(area)+ε. Interprete los coeficientes del modelo β0 , β1 en caso de ser correcto.
Tenemos entonces el modelo de regresión lineal:
Y=β0+β1X+ε
##
## Call:
## lm(formula = preciom ~ areaconst, data = viviendas_filtrado)
##
## Residuals:
## Min 1Q Median 3Q Max
## -228.412 -23.589 -4.653 25.674 207.336
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 36.62292 4.20667 8.706 <2e-16 ***
## areaconst 2.19868 0.05372 40.926 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 43.21 on 1358 degrees of freedom
## Multiple R-squared: 0.5522, Adjusted R-squared: 0.5519
## F-statistic: 1675 on 1 and 1358 DF, p-value: < 2.2e-16
Los resultados del modelo de regresión lineal indican que los coeficientes estimados son β0 = 36.62 y β1 = 2.20. Al sustituir estos valores en la ecuación de regresión, obtenemos: precio=36.62+2.20x Esto significa que:
El intercepto β0 es 36.62, lo que indica que cuando el área construida (X) es igual a cero metros cuadrados, el precio estimado es de 36.62 millones de pesos COP.
El coeficiente de pendiente β1 es 2.20. Esto indica que, en promedio, por cada metro cuadrado adicional de área construida en un apartamento de estrato 4, el precio estimado aumenta en 2.20 millones de pesos COP. En otras palabras, el precio de la vivienda aumenta en 2.20 millones de pesos COP por cada metro cuadrado adicional de área construida.
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.
## 2.5 % 97.5 %
## (Intercept) 28.370647 44.875201
## areaconst 2.093294 2.304074
Para probar si β1 es significativamente distinto de cero:
hipótesis
H0:β1=0
H1:β1≠0
En los anteriores resultados se puede observar:
Para la intercepción (β0), podemos decir con un 95% de confianza que el valor real de la intercepción está entre 28.370647 y 44.875201. Esto representa el valor estimado del precio cuando el área construida es igual a cero.
El intervalo de confianza (95%) para el coeficiente es β1 [2.093294, 2.304074]. Este resultado indica que el coeficiente β1 es significativamente diferente de cero. Además, la prueba de hipótesis t también respalda esta conclusión, ya que el valor p asociado con la prueba es muy bajo. Por lo tanto, podemos afirmar con confianza que existe una relación lineal significativa entre el área construida y el precio de la vivienda.
## [1] 0.5522478
Un valor de R2 = 0.5522478 indica que aproximadamente el 55.22% de la variabilidad en la variable dependiente puede ser explicada por el modelo de regresión utilizado. En otras palabras, el modelo de regresión es capaz de capturar algo más del 50% de la variación en la variable dependiente, lo cual sugiere que el modelo tiene cierta capacidad predictiva.
Sin embargo, también significa que alrededor del 44.78% de la variabilidad aún no está explicada por el modelo, lo que puede deberse a factores no considerados en el análisis o a la presencia de ruido aleatorio en los datos.
En resumen, un R2 de 0.5522478 indica un ajuste moderado del modelo a los datos, pero puede ser mejorado mediante la inclusión de variables adicionales o utilizando un enfoque de modelado más sofisticado.
¿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?.
## fit lwr upr
## 1 278.4782 274.1502 282.8061
El resultado proporciona un intervalo de confianza para el precio estimado de un apartamento de 110 metros cuadrados:
Estimación puntual (fit): El precio estimado es de aproximadamente 278.4782 millones COP. Límite inferior (lwr): Con un nivel de confianza específico, se espera que el verdadero valor del precio esté por encima de aproximadamente 274.1502 millones COP. Límite superior (upr): Con el mismo nivel de confianza, se espera que el verdadero valor del precio esté por debajo de aproximadamente 282.8061 millones. Por lo tanto, con cierta confianza, podemos afirmar que el precio real del apartamento de 110 m² probablemente esté entre aproximadamente 274.1502 y 282.8061 millones COP, con un precio estimado puntual de 278.4782 millones COP.
## fit lwr upr
## 1 278.4782 193.605 363.3513
Estimación puntual (fit): El precio estimado del apartamento de 110 metros cuadrados es de aproximadamente 278.4782 millones COP.
Límite inferior (lwr): Este es el límite inferior del intervalo de predicción. Indica el valor más bajo que se espera que el precio real del apartamento tenga con un nivel de confianza del 95%. En este caso, el límite inferior es de aproximadamente 193.605 millones COP.
Límite superior (upr): Este es el límite superior del intervalo de predicción. Indica el valor más alto que se espera que el precio real del apartamento tenga con un nivel de confianza del 95%. En este caso, el límite superior es de aproximadamente 363.3513 millones COP.
En resumen, con un nivel de confianza del 95%, se espera que el precio real del apartamento de 110 metros cuadrados se encuentre dentro del intervalo entre aproximadamente 193.605 y 363.3513 millones COP, con un precio estimado puntual de 278.4782 millones COP. Este intervalo de predicción tiene en cuenta tanto la incertidumbre en la estimación del precio promedio como la variabilidad inherente en los datos para proporcionar un rango más amplio que es más útil para hacer predicciones específicas para nuevas observaciones.
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.
- Prueba de normalidad en los residuales
Como podemos ver en la grafica “Q-Q residuals” se observa que no todos los puntos están sobre la linea de referencia, existen datos atípicos, por lo tanto es un indicativo de que no se distribuyen con normalidad.
##
## Shapiro-Wilk normality test
##
## data: modelo_R_L$residuals
## W = 0.96464, p-value < 2.2e-16
Dado que el valor p es extremadamente pequeño, esto sugiere que hay evidencia significativa para rechazar la hipótesis nula de normalidad. En otras palabras, los residuos no siguen una distribución normal.
La varianza de los errores (residuos) del modelo debe ser constante en todos los niveles de las variables predictoras.
Según el gráfico “Scale-Location”, se observa que la dispersión de los residuos no es constante en todos los valores ajustados. La línea roja no se encuentra completamente horizontal, lo que sugiere que el supuesto de homocedasticidad podría no cumplirse.
##
## studentized Breusch-Pagan test
##
## data: modelo_R_L
## BP = 303.81, df = 1, p-value < 2.2e-16
Dado que el valor p es extremadamente pequeño, hay fuerte evidencia para rechazar la hipótesis nula. Esto sugiere que la varianza de los errores podría no ser constante en todos los niveles de la variable independiente, lo que implica una posible violación del supuesto de homocedasticidad en el modelo de regresión.
En este caso, el valor de DW es mayor que 0 pero menor que 2 (1.4381), lo que sugiere la presencia de autocorrelación positiva en los residuos. El valor p extremadamente pequeño indica que hay evidencia significativa para rechazar la hipótesis nula de que no hay autocorrelación en los residuos.
##
## Durbin-Watson test
##
## data: modelo_R_L
## DW = 1.4381, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Podemos observar en el gráfico “Residuals vs Fitted” que la línea roja no es del todo recta por lo que puede que no se cumpla el supuesto de linealidad.
De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.
Como se puede observar el resultado de modelo no es lo suficientemente fuerte para poder cumplir por ende se realizará una transformación al modelo y para ello usaremos la transformación box-cox, con la finalidad de definir cual será el tipo de transformación mas óptimo.
par(mfrow = c(1,2))
boxcox(lm(viviendas_filtrado$preciom ~ viviendas_filtrado$areaconst, data=viviendas_filtrado), lambda = -3:3)
#Se repite el proceso pero esta vez entrechando el rango de valores de lambda
bc<-boxcox(lm(viviendas_filtrado$preciom ~ viviendas_filtrado$areaconst), lambda = -1:1)## [1] -0.1515152
el resultado de λ=0 nos permite ver que la variable area construida debe estar en escala logarítmica por lo tanto realizaremos dicha transformación.
De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.
##
## Call:
## lm(formula = log(preciom) ~ areaconst, data = viviendas_filtrado)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.01049 -0.12923 -0.01072 0.15388 0.66836
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.5335927 0.0198743 228.11 <2e-16 ***
## areaconst 0.0097005 0.0002538 38.22 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2041 on 1358 degrees of freedom
## Multiple R-squared: 0.5182, Adjusted R-squared: 0.5179
## F-statistic: 1461 on 1 and 1358 DF, p-value: < 2.2e-16
con base en los resultados podemos ver que el modelo logaritmico tiene un impacto muy similar al modelo anterior ya que el r-cuadrado es del 51,82%.
Como podemos ver en la grafica “Q-Q residuals” se observa que no todos los puntos están sobre la linea de referencia, existen datos atípicos, por lo tanto es un indicativo de que no se distribuyen con normalidad.
##
## Shapiro-Wilk normality test
##
## data: modelo_R_L2$residuals
## W = 0.98949, p-value = 2.619e-08
Dado que el valor p es extremadamente pequeño, esto sugiere que hay evidencia significativa para rechazar la hipótesis nula de normalidad. En otras palabras, los residuos no siguen una distribución normal.
La varianza de los errores (residuos) del modelo debe ser constante en todos los niveles de las variables predictoras.
Según el gráfico “Scale-Location”, se observa que la dispersión de los residuos no es constante en todos los valores ajustados. La línea roja no se encuentra completamente horizontal, lo que sugiere que el supuesto de homocedasticidad podría no cumplirse.
##
## studentized Breusch-Pagan test
##
## data: modelo_R_L2
## BP = 149.32, df = 1, p-value < 2.2e-16
Dado que el valor p es extremadamente pequeño, hay fuerte evidencia para rechazar la hipótesis nula. Esto sugiere que la varianza de los errores podría no ser constante en todos los niveles de la variable independiente, lo que implica una posible violación del supuesto de homocedasticidad en el modelo de regresión.
En este caso, el valor de DW es mayor que 0 pero menor que 2 (1.4381), lo que sugiere la presencia de autocorrelación positiva en los residuos. El valor p extremadamente pequeño indica que hay evidencia significativa para rechazar la hipótesis nula de que no hay autocorrelación en los residuos.
##
## Durbin-Watson test
##
## data: modelo_R_L2
## DW = 1.3091, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Podemos observar en el gráfico “Residuals vs Fitted” que la línea roja no es del todo recta por lo que puede que no se cumpla el supuesto de linealidad.
modelos<- list( modelo_1,
modelo_2,
modelo_3,
modelo_4
)
stargazer(modelos, type = "text", df = FALSE)##
## =======================================================================
## Dependent variable:
## ---------------------------------------------------
## preciom log(preciom)
## (1) (2) (3) (4)
## -----------------------------------------------------------------------
## areaconst 2.199*** 0.010***
## (0.054) (0.0003)
##
## log(areaconst) 194.944*** 0.887***
## (4.518) (0.021)
##
## Constant 36.623*** -633.526*** 4.534*** 1.463***
## (4.207) (19.397) (0.020) (0.089)
##
## -----------------------------------------------------------------------
## Observations 1,360 1,360 1,360 1,360
## R2 0.552 0.578 0.518 0.577
## Adjusted R2 0.552 0.578 0.518 0.576
## Residual Std. Error 43.209 41.937 0.204 0.191
## F Statistic 1,674.927*** 1,861.648*** 1,460.654*** 1,850.326***
## =======================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
el “Modelo 4” tiene el valor más alto de R^2 (0.577), lo que significa que explica la mayor cantidad de variabilidad en los datos. Además, también tiene el valor más bajo de Residual Standard Error (0.191), lo que indica que tiene menos error residual en las predicciones, adicionalmente se podría llegar a tomar el modelo 2 también pero el Residual Standard Error es de 41.937 lo que indica una estimación de error mayor.
Normalidad
Al analizar las gráficas “Q-Q residuals”, podemos observar que los modelos 3 y 4 muestran un comportamiento donde la mayoría de los puntos se encuentran cerca de la línea de referencia de 45 grados. Esto sugiere que los residuos de estos modelos siguen una distribución normal. Sin embargo, es importante complementar esta observación con los resultados del test de Shapiro-Wilk.
El test de Shapiro-Wilk arrojó un estadístico W cercano a 1 para todos los modelos, lo que indica una similitud con una distribución normal. Sin embargo, los valores p asociados son pequeños en todos los casos. El valor p más pequeño se encontró en el modelo 3, lo que sugiere que hay menos evidencia en contra de la hipótesis de normalidad en comparación con los otros modelos.
par(mfrow=c(1,4))
plot(modelo_1, 2, caption = "Modelo 1")
plot(modelo_2, 2, caption = "Modelo 2")
plot(modelo_3, 2, caption = "Modelo 3")
plot(modelo_4, 2, caption = "Modelo 4")# Aplicar la prueba de Shapiro-Wilk a los residuos de cada modelo
resultados_shapiro <- lapply(modelos, function(mod) shapiro.test(resid(mod)))
# Ver los resultados
resultados_shapiro## [[1]]
##
## Shapiro-Wilk normality test
##
## data: resid(mod)
## W = 0.96464, p-value < 2.2e-16
##
##
## [[2]]
##
## Shapiro-Wilk normality test
##
## data: resid(mod)
## W = 0.95777, p-value < 2.2e-16
##
##
## [[3]]
##
## Shapiro-Wilk normality test
##
## data: resid(mod)
## W = 0.98949, p-value = 2.619e-08
##
##
## [[4]]
##
## Shapiro-Wilk normality test
##
## data: resid(mod)
## W = 0.98913, p-value = 1.604e-08
Homoscedasticidad
Todos los modelos muestran evidencia significativa de heterocedasticidad en sus residuos, ya que los valores p asociados a la prueba de Breusch-Pagan son extremadamente pequeños todos con un valor de 2.2e-16. Esto indica que la varianza de los errores no es constante en todos los niveles de las variables predictoras en estos modelos.
par(mfrow=c(1,4))
plot(modelo_1, 3, caption = "Modelo 1")
plot(modelo_2, 3, caption = "Modelo 2")
plot(modelo_3, 3, caption = "Modelo 3")
plot(modelo_4, 3, caption = "Modelo 4")# Aplicar la prueba Breusch-Pagan a cada modelo
resultados_bptest <- lapply(modelos, function(mod) lmtest::bptest(mod))
# Ver los resultados
resultados_bptest## [[1]]
##
## studentized Breusch-Pagan test
##
## data: mod
## BP = 303.81, df = 1, p-value < 2.2e-16
##
##
## [[2]]
##
## studentized Breusch-Pagan test
##
## data: mod
## BP = 217.76, df = 1, p-value < 2.2e-16
##
##
## [[3]]
##
## studentized Breusch-Pagan test
##
## data: mod
## BP = 149.32, df = 1, p-value < 2.2e-16
##
##
## [[4]]
##
## studentized Breusch-Pagan test
##
## data: mod
## BP = 96.489, df = 1, p-value < 2.2e-16
No autocorrelación
Todos los modelos muestran evidencia significativa de autocorrelación positiva en sus residuos, ya que los valores p asociados a la prueba de Durbin-Watson son extremadamente pequeños. Esto indica que los residuos de los modelos están correlacionados positivamente entre sí, lo que puede indicar que el modelo no captura completamente la estructura de los datos.
par(mfrow=c(1,4))
plot(modelo_1, 1, caption = "Modelo 1")
plot(modelo_2, 1, caption = "Modelo 2")
plot(modelo_3, 1, caption = "Modelo 3")
plot(modelo_4, 1, caption = "Modelo 4")# Aplicar la prueba Breusch-Pagan a cada modelo
resultados_dwtest <- lapply(modelos, function(mod) lmtest::dwtest(mod))
# Ver los resultados
resultados_dwtest## [[1]]
##
## Durbin-Watson test
##
## data: mod
## DW = 1.4381, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
##
##
## [[2]]
##
## Durbin-Watson test
##
## data: mod
## DW = 1.4796, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
##
##
## [[3]]
##
## Durbin-Watson test
##
## data: mod
## DW = 1.3091, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
##
##
## [[4]]
##
## Durbin-Watson test
##
## data: mod
## DW = 1.3215, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Variable Precio: Los precios de los apartamentos muestran una concentración hacia la izquierda del histograma, lo que indica una tendencia hacia precios más bajos. Los cuartiles revelan que el 25% de los apartamentos tienen un precio menor o igual a 153 millones de pesos, y el 75% tienen un valor menor o igual a 240 millones de pesos. La moda se encuentra en 150 millones de pesos, con una variabilidad moderada. Variable Área Construida: El histograma muestra una concentración de apartamentos hacia la izquierda, lo que sugiere que las viviendas más pequeñas son las más demandadas. Los cuartiles muestran que el 25% de los apartamentos tienen un área menor o igual a 60 m², y el 75% tienen un área menor o igual a 84 m². La moda está en 60 metros cuadrados, con una variabilidad moderada.
Se observa una tendencia donde los apartamentos más costosos tienden a tener un área construida mayor. La correlación de Pearson entre el área y el precio es positiva (0.743), lo que sugiere que el tamaño de la vivienda es un predictor del precio.
El modelo de regresión lineal simple indica que por cada metro cuadrado adicional de área construida, el precio estimado aumenta en 2.20 millones de pesos. El coeficiente de determinación (R²) es del 55.22%, lo que indica un ajuste moderado del modelo a los datos.
El intervalo de confianza del 95% para el coeficiente de área construida indica que es significativamente diferente de cero, lo que confirma la relación positiva entre el área y el precio de la vivienda.
Un R² de 0.5522 indica que aproximadamente el 55.22% de la variabilidad en el precio puede ser explicada por el modelo de regresión utilizado.
El precio promedio estimado para un apartamento de 110 metros cuadrados es de aproximadamente 278.4782 millones de pesos. Esta oferta sería atractiva si el precio está dentro del intervalo de confianza y se ajusta al mercado.
Se encontraron violaciones a los supuestos de normalidad, homocedasticidad y no autocorrelación en los residuos del modelo, lo que sugiere la necesidad de revisar y posiblemente mejorar el modelo.
Se exploraron transformaciones del modelo para mejorar su ajuste, identificando que una transformación logarítmica en el precio podría ser beneficiosa.
Se compararon varios modelos transformados, encontrando que el modelo log-log (Modelo 4) tiene el mejor ajuste y menor error residual.
Se recomienda utilizar el Modelo 4 (Logarítmica-Logarítmica) para futuras predicciones de precios de apartamentos. Se deben considerar otras variables que puedan influir en el precio de los apartamentos, como ubicación, edad del inmueble, comodidades, entre otros. Es importante continuar monitoreando y ajustando el modelo según nuevos datos y cambios en el mercado inmobiliario.