Actividad - Regresión Lineal Simple
Con base en los datos de ofertas de vivienda descargadas del portal Fincaraiz (datos_vivienda.xls - descarga) realizar los siguientes puntos:
require(CGPfunctions)
require(ggplot2)
require(plotly)
require(ggpubr)
library(readxl)
library(readxl)
datos <- read_excel("C:/Users/Wilfredo Gomez/Downloads/datos_vivienda-3.xlsx")
View(datos)
summary(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
Desviacion_Area =sd(datos$Area_contruida)
Desviacion_Precio =sd(datos$precio_millon)
data.frame(Desviacion_Area,Desviacion_Precio)
## Desviacion_Area Desviacion_Precio
## 1 35.54332 82.14423
attach(datos)
par(mfrow=c(1,2))
hist(Area_contruida)
line = mean(Area_contruida)
abline(v=line, col="red", lwd=3)
line2 = median(Area_contruida)
abline(v=line2, col="green", lwd=3)
hist(precio_millon)
line3 = mean(precio_millon)
abline(v=line3, col="red", lwd=3)
line4 = median(precio_millon)
abline(v=line4, col="green", lwd=3)
De la exploración de los datos se puede ver que en su mayoria las viviendas que se tienen en la base de datos son de áreas menores a los 100 metros cuadrado y mayoritariamente tienen valores pode debajo de los 350 millones El promedio el area construida de los inmuebles es de 115.7 metros cuadrados con un minimo de 80 y un máximo de 195 metros cuadrados. El promedio del precio es 332.1 millones, la mas economica es de 240 millones, la más costosa es de 480 millones la desviación estandar es relativamente alta, lo que muestra una dispersión en los datos y en los Histogramas se pueden ver que la media esta corrida a la izquierda por lo que el comportamiento de los mismos es asimetrico
g1=ggplot(data = datos,aes(y=Area_contruida,x=precio_millon)) + geom_point() + geom_smooth()
plot(g1)
g2=ggplot(data = datos,aes(y=precio_millon, x=Area_contruida)) + geom_point() + theme_classic() +geom_smooth(method = "lm")
ggplotly(g2)
cov(Area_contruida, precio_millon )
## [1] 2683.271
cor(Area_contruida, precio_millon )
## [1] 0.9190295
La covarianza es positiva en 2683.2, Se puede decir que, a medida que aumenta el area construida de las viviendas, asi mismo aumenta su valor. EL coeficiente de correlación es de 0.919 muy alto, con lo cual podemos concluir que existe una relación directa y fuerte entre la variable y=precio_millon y la variable x=Area_contruida.
3.Estime el modelo de regresión lineal simple entre precio = f(area)+e. Interprete los coeficientes del modelo βo;β1 en caso de ser correcto.
MRL=lm(precio_millon~Area_contruida,data=datos)
summary(MRL)
##
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = datos)
##
## 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
Se observa que los valores de B0 = 86.224 y B1 = 2.124 lo que corresponde que cuando la propiedad no tiene area construida, el valor es de 86 millones y que por cada metro cuadrado construido el valor de la propiedad aumenta 2 millones de pesos
confint(MRL, "Area_contruida", level = 0.95)
## 2.5 % 97.5 %
## Area_contruida 1.74017 2.507771
De la anterior informacion se puede analizar que si se utiliza un intervalo de confianza del 95% para el coeficiente β1 (Area construida) este puede tomar un valor entre 1.7 y 2.5 millones por cada metro cuadrado de area construida en una vivienda.
La prueba de hipotesis t presenta un valor de 3.45e-11, lo que indica que esta variable de Area_Construida es significativa para el modelo, ya que su p-value es < a 0.05.
summary(MRL)
##
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = datos)
##
## 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
Se observa que el ajuste del modelo es de R2=0.8446, es decir, que el modelo explica el 84% de la variabilidad del precio del inmueble.
predict(MRL,list(Area_contruida=110),interval = "confidence")
## fit lwr upr
## 1 319.8706 306.3133 333.4279
El precio promedio estimado para un apartamento de 110 metros cuadrados sería de 319.87 millones, con un posible precio tambien entre 306.31 millones y 333.42 millones. Si un apartamento ubicado en la misma zona de 110 metros cuadrados, lo ofrecen por un precio de 200 millones entonces se podría considerar como una buena oferta.
par(mfrow=c(2,2))
plot(MRL)
Swn<-shapiro.test(residuals(MRL))
Swn
##
## Shapiro-Wilk normality test
##
## data: residuals(MRL)
## W = 0.95489, p-value = 0.3009
En la gráfica de los residuales es posible evidenciar que la media se cumple ya que es cero, sin embargo, la varianza no es constante ya que en la gráfica Residuals vs Fitted se evidencia una curva alrededor de cero. Asimismo, se evidencia que gráficamente no corresponde a una distribución de los residuales, a pesar de tener una prueba de Shapito-Wilk que demuestra que posiblemente haya normalidad.
MRLNew = lm(log(precio_millon)~log(Area_contruida))
summary(MRLNew)
##
## Call:
## lm(formula = log(precio_millon) ~ log(Area_contruida))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.13325 -0.07583 -0.01435 0.07501 0.16051
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.96408 0.29228 6.72 5.97e-07 ***
## log(Area_contruida) 0.80928 0.06194 13.06 2.11e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.08859 on 24 degrees of freedom
## Multiple R-squared: 0.8767, Adjusted R-squared: 0.8716
## F-statistic: 170.7 on 1 and 24 DF, p-value: 2.109e-12
par(mfrow=c(2,2))
plot(MRLNew)
De la informacion anterior se puede analizar que al evidenciar que no se cumplian algunos supuestos de la varianza y la normalidad de los residuales se realizó un ajuste al modelo con una transformacion logaritmica en la variable ‘x’.
Al realizar el ajuste del modelo y al compararlo con el modelo inicial se puede observar una variacion leve en los resultados, debido a que el modelo inicial presentaba un r2 de 0.8446 y con el ajuste este r2 paso a 0.8963. De igual manera se puede visualizar que la grafica de los residuales presenta una curva menos pronunciada y la variable independiente ‘x’ aumentó su nivel de significancia dentro del modelo con la transfotmación realizada.