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.
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
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:
β0= 67.381, que corresponde a la intercepción en el eje y
β1= 1.803, que correponde a la pendiente.
Significa que por cada metro2 el valor de la vivienda se incrementa en 1.803
El modelo indica que el area es significativo, por lo tanto esta asociado al precio de la vivienda. ya que el valor P<2e-16 y su nivel de significancia es de 0
El valor R es del 58.22% por lo tanto el modelo explica ese porcentaje con respecto al valor de las viviendas.
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.
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:
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