Asignatura: Métodos y Simulación Estadistica

Profesor: David Arango Londoño
Maestria en Ciencia de Datos
Universidad Javeriana de Cali

1. Realice un análisis exploratorio de las variables precio de vivienda (millones de pesos COP) y area de la vivienda (metros cuadrados) - incluir gráficos e indicadores apropiados interpretados.

Summary de los datos
Area_contruida precio_millon
Min. : 80.0 Min. :240.0
1st Qu.: 86.0 1st Qu.:251.2
Median : 97.0 Median :305.0
Mean :115.7 Mean :332.1
3rd Qu.:130.0 3rd Qu.:395.0
Max. :195.0 Max. :480.0

2. Realice un análisis exploratorio bivariado de datos enfocado en la relación entre la variable respuesta (y=precio) en función de la variable predictora (x=area) - incluir graficos e indicadores apropiados interpretados.

correlacion = round(cor(Area_contruida,precio_millon),4)
correlacion
## [1] 0.919
ggplot(viviendas, aes(x=Area_contruida, y=precio_millon)) + geom_point(size=3, shape=16) + geom_smooth(method=lm, se=FALSE, colour="red") + ggtitle(paste("Gráfico area vs precios (correlación:",correlacion,")")) + labs(x = "Área Construida (m2)") + labs(y = "Precio Vivienda (COP)") + theme_linedraw()

Se observa que a mayor área construida el precio del inmueble incrementa y la relación es POSITIVA FUERTE de acuerdo con el coeficiente de correlación de Pearson (0,91).

3. Estime el modelo de regresión lineal simple entre precio = f(area)+e. Interprete los coeficientes del modelo \(\beta_0\),\(\beta_1\) en caso de ser correcto.

mod=lm(precio_millon~Area_contruida,data=viviendas)
summary(mod)
## 
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = viviendas)
## 
## 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 ***
## Area_contruida    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
beta_0 = mod$coefficients[1]
beta_1 = mod$coefficients[2]
modelo = data.frame(beta_0, beta_1)

kbl(modelo,caption = "<center><strong>Coeficientes del Modelo
  </strong></center>")%>%   kable_paper(bootstrap_options = "striped")
Coeficientes del Modelo
beta_0 beta_1
(Intercept) 86.23387 2.12397

El coeficiente \(\beta_0\) es: 86.234. Quiere decir que el punto de referencia o partida para el precio en la zona es de $86.234.000. Si embargo, para el caso de 0 (cero mt2) no nos dice mucho porque un area de cero metros cuadrados no tendría valor,

De otra parte, \(\beta_1\) es: 2.124, esto nos indica que por cada metro adicional de área construida se incrementan en $2.124.000 COP el precio del inmueble.

4.Construir un intervalo de confianza (95%) para el coeficiente \(\beta_1\), interpretar y concluir si el coeficiente es igual a cero o no. Compare este resultado con una prueba de hipotesis t.

confint(object=mod, level=0.95)
##                   2.5 %     97.5 %
## (Intercept)    39.83983 132.627917
## Area_contruida  1.74017   2.507771
t.test(mod$coefficients,mu=0)
## 
##  One Sample t-test
## 
## data:  mod$coefficients
## t = 1.0505, df = 1, p-value = 0.4843
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -490.1799  578.5377
## sample estimates:
## mean of x 
##  44.17892

**5. Calcule e interprete el indicador de bondad y ajuste R2.

R_Squared = data.frame(summary(mod)$r.squared)
kbl(R_Squared, caption = "<center><strong>Ajuste R2
  </strong></center>")%>%   kable_paper(bootstrap_options = "striped")
Ajuste R2
summary.mod..r.squared
0.8446152

Se observa que el ajuste del modelo es de \(R^2=0.8446\) es decir que el modelo explica el 84,46% de la variabilidad de los precios.

6. Cual seria el precio promedio estimado para un apartamento de 110 metros cuadrados? Considera entonces con este resultado que un apartemento en la misma zona con 110 metros cuadrados en un precio de 200 millones seria una buena oferta? Que consideraciones adicionales se deben tener?.

area = 110
pred = beta_0 + (beta_1*area)
prediccion = data.frame(area, pred)

kbl(prediccion, caption = "<center><strong>Predicción
  </strong></center>")%>%   kable_paper(bootstrap_options = "striped")
Predicción
area pred
(Intercept) 110 319.8706
X=c(Area_contruida,110,110)
Y=c(precio_millon,pred, 200)
Grupo = c(rep("Datos", 26), rep("Predicción", 2))
data= data.frame(X,Y, Grupo)
g1 =ggplot(data, aes(x=X, y=Y, color=Grupo)) + geom_point(size=3, shape=16) + geom_smooth(method=lm, se=FALSE, colour="red") + annotate(geom="text", x=116, y=215, label="200 - (Precio muy bajo)", color="black") + theme_linedraw()
plot = ggarrange(g1, ncol = 1, nrow = 1, common.legend =TRUE,legend="bottom")
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'
annotate_figure(plot, top = text_grob(paste("Predicción de precio Area=100 "," Precio=", pred) ,color = "black", face = "bold", size = 12))

predict(mod,list(Area_contruida=110),interval = "confidence",level = 0.95)
##        fit      lwr      upr
## 1 319.8706 306.3133 333.4279

7. Realice la validación de supuestos del modelo por medio de graficos apropiados, interpretarlos y sugerir posibles soluciones si se violan algunos de ellos.

Podemos observar respecto a los supuestos sobre el error \(e_i\) lo siguiente:

a. Media cero

mean(mod$residuals)
## [1] -3.760347e-16

El valor es cero.

b. Normalidad

shapiro.test(mod$residuals)$p.value
## [1] 0.3009225

El resultado es mayor que 0.05 por lo cual se considera que se los residuos se distribuyen normalmente.

c. Variabilidad constante de los residuos (homocedasticidad):

bptest(mod)  
## 
##  studentized Breusch-Pagan test
## 
## data:  mod
## BP = 5.8737, df = 1, p-value = 0.01537

El P-Value es menor a 0.05 por lo cual no cumplem el criterio en las variazas constantes.

d. No autocorrelación (Independencia):

dwt(mod, alternative = "two.sided")
##  lag Autocorrelation D-W Statistic p-value
##    1      0.02511179      1.883052   0.782
##  Alternative hypothesis: rho != 0

El P-Value es mayor a 0.05 por lo cual se consideran independientes

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

mod_ajustado=lm(precio_millon~log(Area_contruida), data=viviendas)
par(mfrow=c(2,2))
plot(mod_ajustado)

summary(mod_ajustado)$r.squared
## [1] 0.8962713

Este nuevo modelo explica el 89.6% de los resultados de precio.

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

summary(mod)
## 
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = viviendas)
## 
## 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 ***
## Area_contruida    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
summary(mod_ajustado)
## 
## Call:
## lm(formula = precio_millon ~ log(Area_contruida), data = viviendas)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -45.837 -20.153  -1.878  20.145  55.145 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -948.53      89.09  -10.65 1.42e-10 ***
## log(Area_contruida)   271.88      18.88   14.40 2.63e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 27 on 24 degrees of freedom
## Multiple R-squared:  0.8963, Adjusted R-squared:  0.8919 
## F-statistic: 207.4 on 1 and 24 DF,  p-value: 2.63e-13
mean(mod_ajustado$residuals)
## [1] 1.019484e-16
shapiro.test(mod_ajustado$residuals)$p.value
## [1] 0.5680068
bptest(mod_ajustado)
## 
##  studentized Breusch-Pagan test
## 
## data:  mod_ajustado
## BP = 5.8156, df = 1, p-value = 0.01588
dwt(mod_ajustado, alternative = "two.sided")
##  lag Autocorrelation D-W Statistic p-value
##    1       0.0862521      1.736923   0.466
##  Alternative hypothesis: rho != 0

El modelo mejora su ajuste pero aun no cumple el criterio c. Variabilidad constante de los residuos (homocedasticidad):