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>

Paso 1 - Plantear las variables de precio, área, 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

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.

Precio Modelo Simple

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.

3. Modelo de regresion lineal Multiple

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.

Modelo Multiple dos parametros X=Área y w=Piso

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.

Modelo Multiple para parametros de x=Área y z=Parqueadero

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.

4. Predecir con base al Modelo

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.