En este informe, nos enfocaremos en el análisis sobre diversas propiedades en una ciudad Cali. Nuestro objetivo será identificar patrones y relaciones entre diferentes variables para entender mejor cómo se determinan los precios de las propiedades.
require(ggplot2)
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.3
require(plotly)
## Loading required package: plotly
## Warning: package 'plotly' was built under R version 4.3.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
require(datarium)
## Loading required package: datarium
## Warning: package 'datarium' was built under R version 4.3.3
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
Vivienda <- read_excel("C:/Users/tutif/OneDrive/Escritorio/Vivienda.xlsx")
View(Vivienda)
Vivienda
## # A tibble: 8,322 × 12
## Zona piso Estrato precio_millon Area_contruida parqueaderos Banos
## <chr> <chr> <dbl> <dbl> <dbl> <chr> <dbl>
## 1 Zona Sur 2 6 880 237 2 5
## 2 Zona Oeste 2 4 1200 800 3 6
## 3 Zona Sur 3 5 250 86 NA 2
## 4 Zona Sur NA 6 1280 346 4 6
## 5 Zona Sur 2 6 1300 600 4 7
## 6 Zona Sur 3 6 513 160 2 4
## 7 Zona Sur 2 6 870 490 3 6
## 8 Zona Sur 5 5 310 82.5 1 2
## 9 Zona Sur 9 4 240 80 1 2
## 10 Zona Sur 6 6 690 150 2 5
## # ℹ 8,312 more rows
## # ℹ 5 more variables: Habitaciones <dbl>, Tipo <chr>, Barrio <chr>,
## # cordenada_longitud <dbl>, Cordenada_latitud <dbl>
library(summarytools)
## Warning: package 'summarytools' was built under R version 4.3.3
descr(Vivienda$precio_millon,stats = "common")
## Descriptive Statistics
## Vivienda$precio_millon
## N: 8322
##
## precio_millon
## --------------- ---------------
## Mean 433.89
## Std.Dev 328.65
## Min 58.00
## Median 330.00
## Max 1999.00
## N.Valid 8320.00
## Pct.Valid 99.98
La variable precios de viveindea muestra una media de 433.89 millones de unidades monetarias, con una alta desviación estándar de 328.65 millones, lo que indica una gran variabilidad en los precios. El precio mínimo registrado es de 58 millones, mientras que el máximo alcanza los 1999 millones, sugiriendo la presencia de propiedades muy costosas. La mediana, de 330 millones, muestra que la mitad de las propiedades tienen precios inferiores a esta cantidad, reflejando una distribución asimétrica con valores atípicos altos. La base de datos es casi completa, con el 99.98% de valores válidos, lo que asegura la fiabilidad del análisis.
g1=ggplot(data = Vivienda,mapping = aes(x=precio_millon))+geom_histogram(fill="purple")+theme_bw()
ggplotly(g1)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 2 rows containing non-finite outside the scale range
## (`stat_bin()`).
Este histograma muestra la distribución de los precios de las viviendas en la ciudad de Cali.Se observa que la mayoría de las viviendas se encuentran en el rango de 0 a 500 millones. Ademas, a medida que el precio de la vivienda aumenta, la cantidad de viviendas disponibles disminuye. Por lo tanto, hay una relación inversa entre el precio y la cantidad de viviendas disponibles, esto se puede deber a que menos personas pueden permitirse comprar propiedades más caras.
g2=ggplot(data=Vivienda,mapping = aes(x=Zona,y=precio_millon))+geom_point()+theme_bw()+
geom_smooth()
ggplotly(g2)
## `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
## Warning: Removed 2 rows containing non-finite outside the scale range
## (`stat_smooth()`).
El gráfico muestra una variación significativa en los precios de las propiedades en diferentes zonas de la ciudad, donde se evidencia que en la zona sur, oeste y norte tienden a tener un precio mas alto, por otro lado, la zona oriente y centro tieneden a tener un precio mas bajo.
g2=ggplot(data=Vivienda,mapping = aes(x=Estrato,y=precio_millon))+geom_point()+theme_bw()+
geom_smooth()
ggplotly(g2)
## `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Failed to fit group -1.
## Caused by error in `smooth.construct.cr.smooth.spec()`:
## ! x has insufficient unique values to support 10 knots: reduce k.
El diagrama de dispersión muestra la distribución de los precios de vivienda en diferentes estratos de la ciudad de Cali. Se observa que en el estrato seis se encuentra la mayor cantindad de precios deispersos, mientras por otro lado, el estrato tres muestra una menor dispersion de precios.
cor(Vivienda$Estrato,Vivienda$precio_millon, use = "complete.obs")
## [1] 0.6098066
Este valor sugiere una correlación positiva debil. A medida que una variable aumenta, la otra tiende a aumentar, pero no de manera perfecta.
g2=ggplot(data=Vivienda,mapping = aes(x=Area_contruida,y=precio_millon))+geom_point()+theme_bw()+
geom_smooth()
ggplotly(g2)
## `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_smooth()`).
En el grafico se observa una tendencia donde los precios aumentan a medida que el área construida inicialmente crece, pero luego se estabiliza a medida que el área aumenta.
cor(Vivienda$Area_contruida,Vivienda$precio_millon, use = "complete.obs")
## [1] 0.687352
A continuación vamos a estimar tres modelos de regresión lineal simple entre el precio de viviendas en función de la zona, area construida y estrato.
Modelo_Zona=lm(precio_millon~Zona, data=Vivienda)
Modelo_Zona
##
## Call:
## lm(formula = precio_millon ~ Zona, data = Vivienda)
##
## Coefficients:
## (Intercept) ZonaZona Norte ZonaZona Oeste ZonaZona Oriente
## 309.69 35.91 367.89 -81.16
## ZonaZona Sur
## 116.82
summary(Modelo_Zona)
##
## Call:
## lm(formula = precio_millon ~ Zona, data = Vivienda)
##
## Residuals:
## Min 1Q Median 3Q Max
## -592.58 -200.61 -85.61 93.48 1594.39
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 309.69 27.78 11.149 < 2e-16 ***
## ZonaZona Norte 35.91 28.66 1.253 0.210
## ZonaZona Oeste 367.89 29.18 12.608 < 2e-16 ***
## ZonaZona Oriente -81.16 32.31 -2.512 0.012 *
## ZonaZona Sur 116.82 28.14 4.152 3.33e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 309.3 on 8314 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.1147, Adjusted R-squared: 0.1143
## F-statistic: 269.3 on 4 and 8314 DF, p-value: < 2.2e-16
AIC(Modelo_Zona)
## [1] 119023.5
BIC(Modelo_Zona)
## [1] 119065.6
E precio base de las viviendas en esta zona centro es de aproximadamente 309.69 millones.Por otro lado,las viviendas en la Zona Norte son 35.91 millones más caras que en la zona centro, las viviendas en la zona oeste 367.89 millones más caras que en la zona centro, las viviendas en la Zona Oriente son 81.16 millones más baratas que en la zona centro y por ultimo, el precio de las viviendas de la zona sur son 116.82 millones más caras que en la zona centro.
Modelo_estrato=lm(precio_millon~Estrato, data=Vivienda)
Modelo_estrato
##
## Call:
## lm(formula = precio_millon ~ Estrato, data = Vivienda)
##
## Coefficients:
## (Intercept) Estrato
## -468.4 194.7
summary(Modelo_estrato)
##
## Call:
## lm(formula = precio_millon ~ Estrato, data = Vivienda)
##
## Residuals:
## Min 1Q Median 3Q Max
## -571.98 -165.25 -49.98 94.21 1493.75
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -468.406 13.172 -35.56 <2e-16 ***
## Estrato 194.732 2.775 70.17 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 260.5 on 8317 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.3719, Adjusted R-squared: 0.3718
## F-statistic: 4924 on 1 and 8317 DF, p-value: < 2.2e-16
AIC(Modelo_estrato)
## [1] 116162.8
BIC(Modelo_estrato)
## [1] 116183.9
El modelo estimado es igual a Precio= -468.4+(194.7∗Estrato, en donde β0= -468.4 y β1= 194.7. Podemos interpretar que el precio cuando no hay estrato es de 0 y por cada unidad de cambio en estrato se espera que el precio aumente en promedio 194.7 millones de pesos.
Modelo_area=lm(precio_millon~Area_contruida, data=Vivienda)
Modelo_area
##
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = Vivienda)
##
## Coefficients:
## (Intercept) Area_contruida
## 157.48 1.58
summary(Modelo_area)
##
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = Vivienda)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2659.88 -120.78 -47.55 67.27 1330.10
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 157.47636 4.13640 38.07 <2e-16 ***
## Area_contruida 1.58018 0.01831 86.30 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 238.7 on 8317 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.4725, Adjusted R-squared: 0.4724
## F-statistic: 7448 on 1 and 8317 DF, p-value: < 2.2e-16
AIC(Modelo_area)
## [1] 114711
BIC(Modelo_area)
## [1] 114732.1
El modelo estimado es igual a Precio= 157.48 +(1.5∗area_Construida, en donde β0= 157.47 y β1= 1.5.. Podemos interpretar que el precio cuando no hay area consturida es de 157.47 millones de pesos y por cada unidad de cambio del area se espera que el precio aumente en promedio 1.5 millones de pesos.
Por medio del Criterio de información de Akaike y el Criterio de información bayesiano se puede concluir que el mejor modelo entre los tres es el Modelo con las variables precio de vivienda y area construida.
A continuación vamos a realizar una validación cruzada para evaluar el poder predictivo del modelo. Usaremos un escenario 70-30 (modelar-validar) como se observa:
Vivienda2 <- Vivienda %>% filter(!is.na(Area_contruida))
Vivienda2 <- Vivienda2 %>% filter(!is.na(precio_millon))
id_modelar=sample(1:8319, size = 2496)
Modelo=Vivienda2[id_modelar,]
Modelo_Validar=Vivienda2[-id_modelar,]
mod_you_modelar=lm(precio_millon~Area_contruida,data=Modelo)
precio_millon_pred=predict(mod_you_modelar,list(Area_contruida=Modelo_Validar$Area_contruida))
precio_millon_real=Modelo_Validar$precio_millon
error=precio_millon_real-precio_millon_pred
res=data.frame(precio_millon_real,precio_millon_pred,error)
MAE=mean(abs(error))
MAE
## [1] 159.6013
La validación cruzada en un primer paso, segmentamos los datos dejando 70% para el modelo y 30% aleteatorios para validar. Luego se ajusta el modelo con el 70%. Posteriormente predecimos el precio de vivienda del 30% y finalmente se comparan los resultados del modelo contra los reales por medio de la metrica MAE que en este caso nos da alrededor de 160.05 millones de pesos como error de predicción (Precio de vivienda).Es decir, el modelo tiende a sobreestimar o subestimar el precio de vivienda en alrededor de 160.05 millones de pesos.
Con el objetivo de mejorar el ajuste del modelo para explicar los precios de las viviendas en la ciudad de Cali, se incorporan otras variables predictoras adicionales, por ejemplo el área total construidada y el estrato.
y=Vivienda2$precio_millon
x1=Vivienda2$Area_contruida
x2=Vivienda2$Estrato
plot(Vivienda2[,3:5])
cor(Vivienda2[,3:5])
## Estrato precio_millon Area_contruida
## Estrato 1.0000000 0.6098066 0.2743233
## precio_millon 0.6098066 1.0000000 0.6873520
## Area_contruida 0.2743233 0.6873520 1.0000000
De acuerdo con el grafico y confirmar que con el coefecificiente de correlacion se puede determinar que hay una correlación entre el precio y el área construida. Las propiedades más grandes tienden a tener precios más altos. Además, las propiedades en estratos más bajos generalmente tienen precios más bajos.
mod_muliple1=lm(y~x1+x2)
summary(mod_muliple1)
##
## Call:
## lm(formula = y ~ x1 + x2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1971.20 -101.63 -23.92 63.63 1177.39
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -466.30084 9.62966 -48.42 <2e-16 ***
## x1 1.29290 0.01519 85.12 <2e-16 ***
## x2 145.46598 2.10971 68.95 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 190.4 on 8316 degrees of freedom
## Multiple R-squared: 0.6643, Adjusted R-squared: 0.6643
## F-statistic: 8230 on 2 and 8316 DF, p-value: < 2.2e-16
AIC(mod_muliple1)
## [1] 110951.6
BIC(mod_muliple1)
## [1] 110979.7
De acuerdo con el modelo de regresion lineal multiple se puede concluir que manteniendo constante el estrato, un aumento de una unidad en el área construida se asocia con un aumento de aproximadament 1.32 millones en el precio de la vivienda.Por otro lado, manteniendo constante el área construida, un aumento de una unidad en el estrato se relaciona con un aumento de aproximadamente 155 millones en el precio de la vivienda.
El valor de R² ajustado es 0.6484. Esto significa que aproximadamente el 64.84% de la variabilidad en los precios de vivienda se explica por el área construida y el estrato en este modelo.
Ademas, se puede inferir que las variables independientes area construida y estraro son altamente significativas con el precio de la vivienda. Dicho lo anterior, se puede concluir que el área construida y el estrato son factores importantes para predecir los precios de vivienda.
y=Vivienda2$precio_millon
x1=Vivienda2$Area_contruida
X3=Vivienda2$Banos
plot(Vivienda2 %>% select(precio_millon, Area_contruida, Banos))
Vivienda2$precio_millon <- as.numeric(Vivienda2$precio_millon)
Vivienda2$Area_contruida <- as.numeric(Vivienda2$Area_contruida)
Vivienda2$parqueaderos <- as.numeric(Vivienda2$Banos)
Vivienda2 <- Vivienda2 %>% filter(!is.na(Banos))
cor(Vivienda2 %>% select(precio_millon, Area_contruida, Banos))
## precio_millon Area_contruida Banos
## precio_millon 1.0000000 0.6873520 0.6691456
## Area_contruida 0.6873520 1.0000000 0.6484165
## Banos 0.6691456 0.6484165 1.0000000
La correlación entre el precio de vivienda y Area construida es positiva y bastante fuerte, con un valor de correlación de aproximadamente 0.687. Esto sugiere que a medida que el área construida aumenta, también tiende a aumentar el precio en millones.
La correlación entre el precio de viviendas y el número de baños es aproximadamente 0.669. Esto también indica una correlación positiva,esto sugiere que los precios tienden a ser más altos para propiedades con más baños, pero la relación no es tan fuerte como con el área construida.
mod_muliple2=lm(y~x1+X3)
summary(mod_muliple2)
##
## Call:
## lm(formula = y ~ x1 + X3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1747.62 -98.59 -25.95 63.08 1315.58
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -18.038 5.770 -3.126 0.00178 **
## x1 1.005 0.022 45.700 < 2e-16 ***
## X3 88.727 2.202 40.289 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 218.4 on 8316 degrees of freedom
## Multiple R-squared: 0.5586, Adjusted R-squared: 0.5585
## F-statistic: 5262 on 2 and 8316 DF, p-value: < 2.2e-16
AIC(mod_muliple2)
## [1] 113229.7
BIC(mod_muliple2)
## [1] 113257.8
El intercepto del modelo es -18.038. Esto significa que, cuando tanto el área construida como el número de baños son cero, no hay un valor de vivienda.
El coeficiente de de la variables area construida es 1.005. Esto significa que, manteniendo constante la cantidad de baños, se espera que el precio de la vivienda aumente en 1.005 millones por cada unidad adicional de área construida.
El coeficiente de la variable Baño es 88.727. Esto indica que, manteniendo constante el área construida, se espera que el precio de la vivienda aumente en 88.727 millones por cada baño adicional.
el R-cuadrado es 0.5586, lo que significa que aproximadamente el 55.86% de la variabilidad en el precio de la vivienda puede ser explicada por las variables area construida y baños.
y=Vivienda2$precio_millon
x1=Vivienda2$Area_contruida
X4=Vivienda2$Habitaciones
plot(Vivienda2 %>% select(precio_millon, Area_contruida, Habitaciones))
Vivienda2$precio_millon <- as.numeric(Vivienda2$precio_millon)
Vivienda2$Area_contruida <- as.numeric(Vivienda2$Area_contruida)
Vivienda2$Habitaciones <- as.numeric(Vivienda2$Habitaciones)
Vivienda2 <- Vivienda2 %>% filter(!is.na(Habitaciones))
cor(Vivienda2 %>% select(precio_millon, Area_contruida, Habitaciones))
## precio_millon Area_contruida Habitaciones
## precio_millon 1.0000000 0.6873520 0.2640912
## Area_contruida 0.6873520 1.0000000 0.5169129
## Habitaciones 0.2640912 0.5169129 1.0000000
La correlación entre el precio de vivienda y el área construida es positiva y fuerte (0.68), similar a la matriz anterior, lo que indica que a medida que el área construida aumenta, el precio tiende a aumentar también. Por otro lado, la correlación entre el precio y el número de habitaciones no existe y es mucho débil (0.27) en comparación con la correlación entre el precio y el área construida. Esto sugiere que la cantidad de habitaciones tiene menos impacto en el precio en comparación con el tamaño del área construida.
mod_muliple3=lm(y~x1+X4)
summary(mod_muliple3)
##
## Call:
## lm(formula = y ~ x1 + X4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2937.11 -123.55 -47.99 65.02 1338.58
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 232.65319 6.90249 33.71 <2e-16 ***
## x1 1.72809 0.02116 81.67 <2e-16 ***
## X4 -28.02814 2.07250 -13.52 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 236.2 on 8316 degrees of freedom
## Multiple R-squared: 0.4838, Adjusted R-squared: 0.4837
## F-statistic: 3897 on 2 and 8316 DF, p-value: < 2.2e-16
AIC(mod_muliple3)
## [1] 114532
BIC(mod_muliple3)
## [1] 114560.1
El intercepto del modelo es 271.70380. Esto significa que, cuando tanto el área construida como el número de habitaciones son cero, el precio de la vivienda tendría un valor de aproximadamente 271.7 millones de peoss.
El coeficiente para la variable de área construida es 1.76078. Esto indica que, manteniendo constante el número de habitaciones, por cada unidad adicional en el área construida, se espera un aumento de aproximadamente 1.76 millones en el precio de la vivienda.
El coeficiente para la variable de número de habitaciones es -33.72189. Esto indica que, manteniendo constante el área construida, por cada habitación adicional en la vivienda, se espera una disminución de aproximadamente 33.72 millones en el precio de la vivienda.
El coeficiente de determinación ajustado es 0.4812, lo que significa que alrededor del 48.12% de la variabilidad en el precio de la vivienda se explica por las variables incluidas en el modelo.
modelo2 <- lm(precio_millon ~ Area_contruida + Estrato, data = Vivienda2)
predicciones <- predict(modelo2)
MAE <- mean(abs(predicciones - Vivienda2$precio_millon))
MAE
## [1] 123.2733
el modelo está cometiendo errores de predicción de alrededor de 130.96 millones al predecir el precio de una vivienda. Por ejemplo, si el modelo predice que una vivienda tiene un precio de 500 millones, en promedio, podemos esperar que el precio real oscile alrededor de 130.96 millones por encima o por debajo de esta predicción.
Se desea conocer cuál es el precio estimado de una vivienda que tiene un área construida de 130 metros cuadrados y pertenece al estrato 3.
# Definir valores hipotéticos
area_contruida <- 130
estrato <- 3
# Crear dataframe con los valores hipotéticos
datos_hipoteticos <- data.frame(
Area_contruida = area_contruida,
Estrato = estrato
)
# Realizar la predicción
prediccion <- predict(modelo2, newdata = datos_hipoteticos)
# Mostrar la predicción
prediccion
## 1
## 138.1736
Segun la prediccion del modelo, el precio de vivienda estrato 3 que tiene una area construida de 130 metros oscila entre los 117 millones de pesos.
par(mfrow=c(2,2))
plot(mod_muliple1)
Se puede observar en el grafico 1 que la mayoria de residuos están bien distribuidos alrededor de cero, es general, el modelo es más confiable. En el grafico 2 la mayoría de los puntos siguen la línea, excepto algunas desviaciones en ambos extremos del gráfico. Es decir, sugiere que los residuos están normalmente distribuidos. El gráfico 3 muestra un patrón que sugiere heterocedasticidad.
En resumen, aunque no hay una relación lineal perfecta, el modelo podría estar capturando la tendencia general.
mod_trans_multi=lm(log(y)~x1+x2)
summary(mod_trans_multi)
##
## Call:
## lm(formula = log(y) ~ x1 + x2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.5343 -0.2206 -0.0057 0.2008 1.7063
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.723e+00 1.709e-02 217.81 <2e-16 ***
## x1 2.440e-03 2.696e-05 90.52 <2e-16 ***
## x2 3.649e-01 3.744e-03 97.46 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.338 on 8316 degrees of freedom
## Multiple R-squared: 0.7455, Adjusted R-squared: 0.7455
## F-statistic: 1.218e+04 on 2 and 8316 DF, p-value: < 2.2e-16
AIC(mod_trans_multi)
## [1] 5565.959
BIC(mod_trans_multi)
## [1] 5594.064
valores_ajustados <- predict(mod_trans_multi, newdata = Vivienda2)
residuos_absolutos <- abs(exp(valores_ajustados) - Vivienda2$precio_millon)
MAE <- mean(residuos_absolutos)
MAE
## [1] 132.634
Considerando todos los criterio el modelo de regresión lineal múltiple sin transformar parece ser más adecuado para este conjunto de datos. Aunque el modelo transformado muestra una ligera mejora en el R² ajustado y en el AIC, el modelo sin transformar presenta un MAE significativamente menor, lo que indica una mayor precisión en las predicciones. Además, ambos modelos muestran una alta significancia para los predictores y un ajuste generalmente bueno según los valores de R² ajustado. Por lo tanto, se puede concluir que el modelo sin transformar, que utiliza las variables originales sin logaritmar, es preferible en términos de precisión y ajuste del modelo para predecir el precio de la vivienda en función del área construida y el estrato.