library(readxl)
dvivienda <- read_excel("C:/Users/pocho/Desktop/datos_vivienda (1).xlsx")
bd_vivienda = data.frame(dvivienda)
Análisis exploratorio: Se puede apreciar para ambos datos (Area_contruida y precio_millon) los valores mas representativos como:
El rango de área construida en el cual estan las viviendas de la base de datos esta entre 80mt\(^{2}\) y 195mt\(^{2}\)
El rango de precios en el cual estan las viviendas de la base de datos esta entre 240 millones de pesos COP y 480 millones de pesos
El promedio de área construida en el cual estan las viviendas de la base de datos es de 115.7
El promedio de precios en el cual estan las viviendas de la base de datos esta es de 332.1
summary(bd_vivienda)
## 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
require(ggplot2)
require(plotly)
gg1=ggplot(data = bd_vivienda, aes(y=bd_vivienda$Area_contruida)) + geom_boxplot()
ggplotly(gg1)
gg2=ggplot(data = bd_vivienda, aes(y=bd_vivienda$precio_millon)) + geom_boxplot()
ggplotly(gg2)
Análisis bivariado enfocado en la relación : y= precio y x=área
Coeficiente de correlación de Pearson de las variables: El coeficiente arroja 0,91 es decir que hay una relación lineal positifa fuerte
cor(bd_vivienda$Area_contruida,bd_vivienda$precio_millon)
## [1] 0.9190295
Grafico de dispersión
plot(x=bd_vivienda$Area_contruida, y=bd_vivienda$precio_millon,main="Gráfico dispersión", xlab = "Área Vivienda", ylab = "Precios Vivienda", pch=16)
abline(lm(bd_vivienda$precio_millon ~ bd_vivienda$Area_contruida))
Modelo de regresión lineal simple entre precio = f(area) +e
En el modelo de regresión lineal se muestra como el area es una variable con alta relacion y significancia (***) para el precio de la vivienda y explica el precio en un 84%
mod=lm(bd_vivienda$precio_millon~bd_vivienda$Area_contruida)
summary(mod)
##
## Call:
## lm(formula = bd_vivienda$precio_millon ~ bd_vivienda$Area_contruida)
##
## 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 ***
## bd_vivienda$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
Ahora para explicar \(y = \beta 0 + \beta 1x + u\) sobre los datos area y precio, siendo \(\beta 0\) el intercepto 86.23387 y \(\beta 1\) el parámetro que cambia cuando se producen modificaciones en x igual a 2.12397
Es decir que, si encontramos una vivienda con un area de 170 metros cuadrados el valor probable de esta vivienda puede ser 447 millones de pesos.
mod$coefficients
## (Intercept) bd_vivienda$Area_contruida
## 86.23387 2.12397
## Una casa que tenga 170 metros cuadrados puede constar:
86.23387+(2.12397 *170)
## [1] 447.3088
Intervalo de confianza (95%) para el coeficiente β1
confint(mod,mod$coefficients,level = 0.95)
## 2.5 % 97.5 %
## <NA> NA NA
## bd_vivienda$Area_contruida 1.74017 2.507771
Con esto se puede entender que el precio puede variar un poco (1.7 millones) con una confiaza del 95%
Calcular e interpretar el indicador de bondad y ajuste R\(^{2}\).
Como lo explica el coeficiente de determinacion y bondad, este resultado de 0.8446152 tiende a 1 y con rango entre 0.7 y 0.9 tiene un ajuste bueno
a=summary(mod)
a$r.squared
## [1] 0.8446152
Precio promedio estimado para un apartamento de 110 metros cuadrados: 319.8 millones de pesos
Precio por encima de un apartamento de 110 metros cuadrados: 333.4 millones de pesos
Precio por debajo de un apartamento de 110 metros cuadrados: 306.3 millones de pesos
bd_vivienda$Area_contruida[1]=110
b=data.frame(predict.lm(mod,newdata = list(bd_vivienda$Area_contruida),interval = "confidence",level = 0.95))
b[1,]
## fit lwr upr
## 1 319.8706 306.3133 333.4279
¿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?
R// No, puesto que claramente estaría por debajo de lo que se espera como minimo (306 millones), claramente se tiene que verificar temas como habitaciones, temas lo reparaciones y estado de la casa pero sigue siendo un valor muy bajo como propuesta.
Supuestos: Donde se observa que la tabla de normalidad se ajusta (no del todo) a la linea de normalidad
par(mfrow=c(2,2))
plot(mod)
bd_vivienda$Area_contruida
## [1] 110.00 118.00 130.00 181.00 86.00 98.00 170.00 96.00 85.00 170.00
## [11] 87.00 118.42 86.00 85.00 96.00 86.00 86.00 130.00 134.00 80.00
## [21] 130.00 87.00 130.00 89.00 195.00 170.00
mod1=lm(bd_vivienda$precio_millon~log(bd_vivienda$Area_contruida))
summary(mod1)
##
## Call:
## lm(formula = bd_vivienda$precio_millon ~ log(bd_vivienda$Area_contruida))
##
## Residuals:
## Min 1Q Median 3Q Max
## -76.880 -19.637 0.661 22.853 57.853
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -946.81 105.15 -9.005 3.65e-09 ***
## log(bd_vivienda$Area_contruida) 270.97 22.24 12.184 9.12e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 31.28 on 24 degrees of freedom
## Multiple R-squared: 0.8608, Adjusted R-squared: 0.855
## F-statistic: 148.4 on 1 and 24 DF, p-value: 9.119e-12
par(mfrow=c(2,2))
plot(mod1)