El siguiente informe corresponde a un análisis exploratorio de datos para las variables precio, área, piso y parqueaderos de la base de datos.
library(readxl)
Datos_Vivienda_1_ <- read_excel("C:/Users/Asus/Desktop/Datos_Vivienda (1).xlsx")
Datos_Vivienda_1_
## # A tibble: 26 x 12
## Zona piso Estrato precio_millon Area_contruida parqueaderos Banos
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Zona~ 3 5 250 86 1 2
## 2 Zona~ 3 5 385 118 2 3
## 3 Zona~ 2 5 395 130 1 3
## 4 Zona~ 4 6 419 181 2 3
## 5 Zona~ 4 5 240 86 1 2
## 6 Zona~ 3 5 320 98 2 2
## 7 Zona~ 4 5 480 170 2 4
## 8 Zona~ 4 5 268 96 1 3
## 9 Zona~ 4 5 240 85 1 3
## 10 Zona~ 4 5 450 170 2 4
## # ... with 16 more rows, and 5 more variables: Habitaciones <dbl>, Tipo <chr>,
## # Barrio <chr>, cordenada_longitud <dbl>, Cordenada_latitud <dbl>
y=Datos_Vivienda_1_$precio_millon
x=Datos_Vivienda_1_$Area_contruida
w=Datos_Vivienda_1_$piso
z=Datos_Vivienda_1_$parqueaderos
plot(x,y)
cor(x,y)
## [1] 0.9190295
El análisis entre el precio vs área muestra que en la mayoría de los casos entre mayor área mayor es el precio, observando una regresión lineal. Adicionalmente esta relación es fuerte porque el coeficiente de correlación es de 0,92 lo cual indica que el precio del apartamento depende del área.
plot(w,y)
cor(w,y)
## [1] -0.009600106
En este caso el análisis indica que el precio vs piso tiene una gran variabilidad en el precio. Muestra que en todos los casos hay precios altos como precios bajos, y la correlación indica que no se puede determinar el precio del apto con respecto al piso.
plot(z,y)
cor(z,y)
## [1] 0.7174827
En el análisis de precio vs parqueadero muestra gran variabilidad en los precios tanto de uno como dos parqueaderos, mostrando precios bajos y precios altos en todos los casos. A pesar de no ser una regresión lineal la correlación indica que es determinante a la hora de tomar una decisión.
##Paso 2- Modelo de Regresión lineal Simple.
mod1_simple=lm(y~x)
mod1_simple
##
## Call:
## lm(formula = y ~ x)
##
## Coefficients:
## (Intercept) x
## 86.234 2.124
Como se observa el coeficiente beta 1 nos indica que por cada metro cuadrado del apto se espera un incremento del 2, 124 por millón.
summary(mod1_simple)
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -51.673 -25.612 -6.085 24.875 67.650
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 86.234 22.479 3.836 0.000796 ***
## x 2.124 0.186 11.422 3.45e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 33.05 on 24 degrees of freedom
## Multiple R-squared: 0.8446, Adjusted R-squared: 0.8381
## F-statistic: 130.5 on 1 and 24 DF, p-value: 3.45e-11
Se observa que el modelo presenta un ajuste del 84% con base en el R2. Es decir, este modelo logra explicar el 84% de la variabilidad del área.
Con base en el valor p se observa que la variable área es muy importante para determinar el precio del apto.
mod2_simple=lm(y~w)
mod2_simple
##
## Call:
## lm(formula = y ~ w)
##
## Coefficients:
## (Intercept) w
## 335.618 -1.058
En la medida que aumentan los W=pisos el precio baja en 1.058.
summary(mod2_simple)
##
## Call:
## lm(formula = y ~ w)
##
## Residuals:
## Min 1Q Median 3Q Max
## -91.39 -80.66 -27.44 62.29 148.62
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 335.618 77.058 4.355 0.000214 ***
## w -1.058 22.499 -0.047 0.962876
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 83.83 on 24 degrees of freedom
## Multiple R-squared: 9.216e-05, Adjusted R-squared: -0.04157
## F-statistic: 0.002212 on 1 and 24 DF, p-value: 0.9629
Se observa que el Modelo presenta un ajuste de 0,0092% de R2. Es decir que el modelo no explica la variabilidad del w=piso con respecto al y=precio.
Con base en el valor p se observa que la variable w=piso no es significante para determinar el y=precio del apartamento.
mod3_simple=lm(y~z)
mod3_simple
##
## Call:
## lm(formula = y ~ z)
##
## Coefficients:
## (Intercept) z
## 162.6 115.9
En la medida que aumentan el numero de z=parqueadero el y=precio aumenta 115.9 veces por millon.
summary(mod3_simple)
##
## Call:
## lm(formula = y ~ z)
##
## Residuals:
## Min 1Q Median 3Q Max
## -104.50 -28.57 -9.50 14.48 171.43
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 162.64 35.48 4.584 0.000119 ***
## z 115.93 22.97 5.046 3.7e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 58.4 on 24 degrees of freedom
## Multiple R-squared: 0.5148, Adjusted R-squared: 0.4946
## F-statistic: 25.46 on 1 and 24 DF, p-value: 3.7e-05
Se observa que el modelo presenta un ajuste del 51% con base en R2. Es decir, este modelo logra explicar el 51% de la variabilidad del y=precio.
El Valor p nos indica que esta variable si es determinante a la hora de tomar una decisión. Esto es el valor final del precio del apto.
ymod=predict(mod1_simple,list(x=150))
MAE=mean(abs(mod1_simple$residuals))
##Escenario promedio
ymod
## 1
## 404.8294
MAE
## [1] 27.84414
ymodmin=ymod-MAE
ymodmax=ymod+MAE
c(ymodmin, ymod, ymodmax)
## 1 1 1
## 376.9853 404.8294 432.6736
En el modelo simple se observa que para un área de 150 mt2 el precio de un apto es de $404.8294 millones, que podría ir de 377 millones hasta 432.7 millones.
El objetivo es mejorar el ajuste del modelo para explicar /predecir el y=precio, se incorporan las variables predictoras, piso y parqueadero.
y=Datos_Vivienda_1_$precio_millon
x=Datos_Vivienda_1_$Area_contruida
w=Datos_Vivienda_1_$piso
z=Datos_Vivienda_1_$parqueaderos
mod_multiple=lm(y~x+w+z)
mod_multiple
##
## Call:
## lm(formula = y ~ x + w + z)
##
## Coefficients:
## (Intercept) x w z
## 125.964 1.955 -22.350 37.370
summary(mod_multiple)
##
## Call:
## lm(formula = y ~ x + w + z)
##
## Residuals:
## Min 1Q Median 3Q Max
## -46.154 -6.085 -0.106 11.395 36.351
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 125.9639 23.5349 5.352 2.26e-05 ***
## x 1.9550 0.1496 13.065 7.64e-12 ***
## w -22.3504 6.0259 -3.709 0.00122 **
## z 37.3705 10.1728 3.674 0.00133 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 20.48 on 22 degrees of freedom
## Multiple R-squared: 0.9453, Adjusted R-squared: 0.9378
## F-statistic: 126.7 on 3 and 22 DF, p-value: 4.942e-14
Se observa que el modelo presenta un ajuste del 94% con base en R2. Es decir, este modelo logra mejorar el 84% del ajuste del modelo simple con el área.
El Valor p nos indica que este modelo múltiple puede determinar el precio del apto.
plot(data.frame(Datos_Vivienda_1_[,4:6],Datos_Vivienda_1_[,2]))
Se observa que él y=precio es lineal con la variable x=área, en las demás no se muestra este comportamiento claramente. Por esta razón se escoge la variable área como la principal y obligatoria en el modelo.
mod_multiple2=lm(y~x+w)
mod_multiple2
##
## Call:
## lm(formula = y ~ x + w)
##
## Coefficients:
## (Intercept) x w
## 166.459 2.286 -29.591
summary(mod_multiple2)
##
## Call:
## lm(formula = y ~ x + w)
##
## Residuals:
## Min 1Q Median 3Q Max
## -43.927 -15.922 -1.006 16.999 43.231
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 166.4588 25.8317 6.444 1.42e-06 ***
## x 2.2863 0.1483 15.414 1.29e-13 ***
## w -29.5910 7.0741 -4.183 0.000357 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 25.44 on 23 degrees of freedom
## Multiple R-squared: 0.9118, Adjusted R-squared: 0.9041
## F-statistic: 118.8 on 2 and 23 DF, p-value: 7.51e-13
Se observa que el modelo presenta un ajuste del 91% con base en R2. Es decir, este modelo logra mejorar el 84% del ajuste del modelo simple con el área.
El Valor p nos indica que este modelo múltiple puede determinar el precio del apto teniendo en cuenta la variable piso.
Nota: Es importante mencionar que la variable piso no tenía una buena correlación en el Modelo Simple.
mod_multiple3=lm(y~x+z)
mod_multiple3
##
## Call:
## lm(formula = y ~ x + z)
##
## Coefficients:
## (Intercept) x z
## 58.479 1.736 49.712
summary(mod_multiple3)
##
## Call:
## lm(formula = y ~ x + z)
##
## Residuals:
## Min 1Q Median 3Q Max
## -53.127 -13.825 -4.282 10.540 61.123
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 58.4788 18.6131 3.142 0.00457 **
## x 1.7360 0.1714 10.126 6.03e-10 ***
## z 49.7120 11.9863 4.147 0.00039 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 25.53 on 23 degrees of freedom
## Multiple R-squared: 0.9111, Adjusted R-squared: 0.9034
## F-statistic: 117.9 on 2 and 23 DF, p-value: 8.172e-13
Se observa que el modelo presenta un ajuste del 91% con base en R2. Es decir, este modelo logra mejorar el 84% del ajuste del modelo simple con el área.
El Valor p nos indica que este modelo múltiple puede determinar el precio del apto teniendo en cuenta la variable parqueadero, mucho mejor que con la variable piso ya que el parámetro P en este caso para el parqueadero es mucho mejor en 10 veces aproximadamente.
Conclusión: El Modelo con los tres parámetros es el adecuado debido a su 94% de ajuste.
Con el modelo identificado predecir el precio de un apto de 150 mt2, en un piso 3 y con dos parqueaderos.
ymodmultiple1=predict(mod_multiple,list(x=150,w=3,z=2))
MAE2=mean(abs(mod_multiple$residuals))
ymodmultiple1
## 1
## 426.9001
MAE2
## [1] 14.51066
ymodmultiple1min=ymodmultiple1-MAE2
ymodmultiple1max=ymodmultiple1+MAE2
c(ymodmultiple1min, ymodmultiple1, ymodmultiple1max)
## 1 1 1
## 412.3894 426.9001 441.4108
La predicción con el Modelo de tres parámetros nos indica que el apto cuesta entre 412.9 millones y 441.4 millones, Este intervalo es menor que el modelo simple, esto significa que hay mayor confianza en el modelo multiple.
## ¿Si este apartamento lo están ofreciendo en 300 millones cual sería su opinión con base en el resultado del modelo considera que es una buena oferta (Use el MAE para apoyar el resultado)?
Considero que es una oferta muy buena ya que utilizando el modelo MAE nos indica que el precio podría ser mayor.Es decir, El MAE indica que el precio del apto oscila entre 400.5 millones y 436,0 millones, y lo ofrecen en 300 millones significa que es una buena oferta.