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) la inmobiliaria A&C requiere el apoyo de un cientifico de datos en la construcción de un modelo que lo oriente sobre los precios de inmuebles.

Con este propósito el equipo de asesores a diseñado los siguientes pasos para obtener un modelo y así poder a futuro determinar los precios de los inmuebles a negociar

1. 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.


Variable Area:

De acuerdo, con el area de las viviendas evaluadas se identifica que su distribución se muestra en el siguiente grafico:

attach(vivienda4)
hist(areaconst, 
breaks = 10, 
col = "blue",
main = "Distribución del Area construida",
xlab="area",
ylab = "frecuencia")


- El area minima es de 40m2 y la maxíma es de 200m2.
- El 50% de la viviendas tienen un area entre 60m2 a 98 m2.
- El area promedio es de 87.63 m2..

summary(areaconst)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   40.00   60.00   75.00   87.63   98.00  200.00


Variable Precio:


De acuerdo, con el precio de las viviendas evaluadas se identifica que su distribución se muestra en el siguiente grafico:

hist(preciom, 
breaks = 10, 
col = "blue",
main = "Distribución de Precio",
xlab="Precio",
ylab = "frecuencia")


- El precio minimo es de 78 y la maxímo es de 760.
- El 50% de la viviendas tienen un precio entre 160m a 265.
- El precio promedio es de 225.4.

summary(preciom)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    78.0   160.0   210.0   225.4   265.0   760.0



2. 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.


Se elabora grafico para identificar la distribucion del precio de acuerdo con el area de la vivienda. Se obtiene lo siguiente:


Se observa que hay una relación entre las dos variables, visualmente de identifica que en la medida que el area aumenta, el precio aumenta. Para constatar el nivel de relación de estas varible se calcula el coeficiente de correlación, dando el siguiente resultado.

El resultado de : 0.7630166 , lo cuál se puede clasificar como una relación lineal Positiva Debil.
.

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


## 
## Call:
## lm(formula = preciom ~ areaconst)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -195.86  -31.95   -8.95   27.87  431.17 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   67.381      3.510   19.20   <2e-16 ***
## areaconst      1.803      0.037   48.73   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 55.53 on 1704 degrees of freedom
## Multiple R-squared:  0.5822, Adjusted R-squared:  0.5819 
## F-statistic:  2374 on 1 and 1704 DF,  p-value: < 2.2e-16


El valor de los coeficiente son:

4. 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.


Prueba de hipotesis

Ho: β1=0 H1: β1 <> 0

confint(modelo)
##                 2.5 %    97.5 %
## (Intercept) 60.496208 74.265055
## areaconst    1.730404  1.875547

Por cada unidad adicional de area de la vivienda, el valor cambiará entre 1,7304 y 1,875 con una condianza del 95%.


5. Calcule e interprete el indicador de bondad R2.


De acuerdo a la información del punto 3, se identifica que el valor de R2 (0.5822), nos indica que el modelo puede explicar el 57,09% de los casos con certeza.


6. ¿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?.


predict(modelo,data.frame(areaconst=110),interval ="confidence",level=0.95 )
##        fit      lwr      upr
## 1 265.7079 262.6113 268.8046

Por lo tanto una vivienda en 200 millones es una alternativa atractiva, según el modelo. Sin embargo, se debe tener en cuenta que el coeficiente R2 fué de 0.5709, por lo tanto el modelo puede no tiene una fuerte relación entre las variables. (Area y Precio)


7. 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.

A traves de los siguientes graficos
r par(mfrow=c(2,2)) plot(modelo)
r #modelo1=lm(preciom~(areaconst)) #summary(modelo1)
r residuos <- resid(modelo) #plot(residuos) boxplot(residuos, main="Boxplot de Residuos", ylab="Residuos",col="lightblue")

Hipótesis de la prueba:

H0:ρ>0.05

“La distribución del error se comporta normal”

H1:ρ≠0

“La distribución del error no tiene distribución normal”

shapiro.test(modelo$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo$residuals
## W = 0.92671, p-value < 2.2e-16

El valor de p es menor de 0.05 por lo tanto se rechaza la Ho, por lo tanto no se puede concluir que el error tenga una distribución normal.


library(lmtest)
bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 152.8, df = 1, p-value < 2.2e-16

al tener un valor de p menor a 0.05, se puede concluir que la regresion es heterocedasticidad.al estudiar los residuos vemos que la varianza de éstos no es constante.


  1. Prueba de Durbin Watson. Hipótesis de la prueba:

H0:ρ=0

“No hay evidencia de autocorrelación de primer orden, en los residuos del modelo”

H1:ρ≠0

“Hay evidencia de autocorrelación de primer orden, en los residuos del modelo”

#gqtest(modelo)
dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 1.6713, p-value = 5.124e-12
## alternative hypothesis: true autocorrelation is greater than 0

Conclusion:

Como Pvalue < 0.05. no se puede rechazar la presencia de autocorrelacion. Es decir, se rechaza la hipotesis Ho.

El grafico de Residuals vs Fitted y el grafico de BOX, especialmente el ultimo, muestra que los errores de la regresion estan dispersos, lo cuál podria indicar que no tiene una distribucion normal. lo anterior se valido con las pruebas de hipotesis.

El grafico Q-Q Residuals, muestra que al principio y final de los datos no estan sobre la recta. lo cual demuestra que no tiene un gran porcentaje de certeza el modelo.


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

Transformación logarítmica de X

Y=β1log(x)+βo

modelo2=lm(preciom~log(areaconst))
summary(modelo2)
## 
## Call:
## lm(formula = preciom ~ log(areaconst))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -192.72  -27.27   -3.56   23.58  419.52 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -610.083     16.085  -37.93   <2e-16 ***
## log(areaconst)  189.708      3.641   52.11   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 53.35 on 1704 degrees of freedom
## Multiple R-squared:  0.6144, Adjusted R-squared:  0.6142 
## F-statistic:  2715 on 1 and 1704 DF,  p-value: < 2.2e-16
par(mfrow=c(2,2))
plot(modelo2)

En esta transformación logaritmica en X, se tiene los siguiente:

shapiro.test(modelo2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo2$residuals
## W = 0.91387, p-value < 2.2e-16

al ser p-value < 2.2e-16, se rechaza la Ho, por lo tanto la distribución de los errores no cumple con la distribución normal.

Prueba de homoscedasticidad:
- Prueba de No autocorrelación:
r dwtest(modelo2)
## ## Durbin-Watson test ## ## data: modelo2 ## DW = 1.6908, p-value = 7.831e-11 ## alternative hypothesis: true autocorrelation is greater than 0 Como Pvalue < 0.05. no se puede rechazar la presencia de autocorrelacion. Es decir, se rechaza la hipotesis Ho.

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

10. Estime varios modelos y compare los resultados obtenidos. En el mejor de los modelos, ¿se cumplen los supuestos sobre los errores?
Se elaboran dos trasformaciones adicionales para posteriormente evaluar los modelos.
Transformación logarítmica de y
log(Y)=β1(x)+βo
r modelo3=lm(log(preciom)~areaconst) summary(modelo3)
## ## Call: ## lm(formula = log(preciom) ~ areaconst) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.80097 -0.16347 -0.02737 0.16610 1.14818 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 4.7238296 0.0143492 329.21 <2e-16 *** ## areaconst 0.0072020 0.0001513 47.61 <2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.227 on 1704 degrees of freedom ## Multiple R-squared: 0.5709, Adjusted R-squared: 0.5706 ## F-statistic: 2267 on 1 and 1704 DF, p-value: < 2.2e-16
r par(mfrow=c(2,2)) plot(modelo3)
En esta transformación logaritmica en X, se tiene los siguiente:
- β1 = 0.0072020 - βo = 4.7238296 - R2 = 0.5709

La estimación de la distribución de los errores es:

  shapiro.test(modelo3$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo3$residuals
## W = 0.99287, p-value = 2.395e-07

al ser p-value < 2.2e-16, se rechaza la Ho, por lo tanto la distribución de los errores no cumple con la distribución normal.

Prueba de homoscedasticidad:
r bptest(modelo3)
## ## studentized Breusch-Pagan test ## ## data: modelo3 ## BP = 53.271, df = 1, p-value = 2.906e-13
al tener un valor de p menor a 0.05, se puede concluir que la regresion es heterocedasticidad.al estudiar los residuos vemos que la varianza de éstos no es constante.
dwtest(modelo3)
## 
##  Durbin-Watson test
## 
## data:  modelo3
## DW = 1.5006, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0

Como Pvalue < 0.05. no se puede rechazar la presencia de autocorrelacion. Es decir, se rechaza la hipotesis Ho.


Transformación logarítmica de y - X

log(Y)=β1log(x)+βo

modelo4=lm(log(preciom)~log(areaconst))
summary(modelo4)
## 
## Call:
## lm(formula = log(preciom) ~ log(areaconst))
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.85459 -0.13422 -0.00746  0.13797  1.10104 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     1.91891    0.06281   30.55   <2e-16 ***
## log(areaconst)  0.78022    0.01422   54.88   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2083 on 1704 degrees of freedom
## Multiple R-squared:  0.6387, Adjusted R-squared:  0.6385 
## F-statistic:  3012 on 1 and 1704 DF,  p-value: < 2.2e-16
par(mfrow=c(2,2))
plot(modelo4)

En esta transformación logaritmica en X, se tiene los siguiente:

La estimación de la distribución de los errores es:

  shapiro.test(modelo4$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo4$residuals
## W = 0.9934, p-value = 6.631e-07

al ser p-value < 2.2e-16, se rechaza la Ho, por lo tanto la distribución de los errores no cumple con la distribución normal.

Prueba de homoscedasticidad:
r bptest(modelo4)
## ## studentized Breusch-Pagan test ## ## data: modelo4 ## BP = 65.105, df = 1, p-value = 7.101e-16
al tener un valor de p menor a 0.05, se puede concluir que la regresion es heterocedasticidad.al estudiar los residuos vemos que la varianza de éstos no es constante.
dwtest(modelo4)
## 
##  Durbin-Watson test
## 
## data:  modelo4
## DW = 1.5104, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0

Como Pvalue < 0.05. no se puede rechazar la presencia de autocorrelacion. Es decir, se rechaza la hipotesis Ho.


Se hacer comparativo de los estimadores de R2, de los 4 modelos. Resumen en siguiente tabla.

estimadoR <- data.frame(
  lm = c("lineal", "Regresión - Log en X", "Regresión - Log en y", "Regresión - Log en X - y"),
  r = c(0.5822, 0.6144, 0.5709,0.6387)
)
estimadoR
##                         lm      r
## 1                   lineal 0.5822
## 2     Regresión - Log en X 0.6144
## 3     Regresión - Log en y 0.5709
## 4 Regresión - Log en X - y 0.6387