Con base en los datos de ofertas de vivienda descargadas del portal Fincaraiz (datos_vivienda.xls - descarga) realizar los siguientes puntos:
1. Realice un análisis exploratorio de las variables precio de vivienda (millones de pesos COP) y area de la vivienda (metros cuadrados) - incluir graficos e indicadores apropiados interpretados.
library(readxl)
datos_vivienda <- read_excel("C:/Users/yeffe/OneDrive/Documentos/Maestria Ciencia de Datos/Primer semestre/Metodos de simulación estadistica/Achivos de R/datos_vivienda.xlsx")
names(datos_vivienda)
## [1] "Area_contruida" "precio_millon"
summary(datos_vivienda$Area_contruida)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 80.0 86.0 97.0 115.7 130.0 195.0
hist(datos_vivienda$Area_contruida,col = "lightblue",breaks = c(80,120,160,200),labels = T,xlim = c(80,200),
xlab = "Area construida en metros cuadrados",main = "Area construida",ylim = c(0,20))
Análisis. En términos del área construida se evidencia que las viviendas son relativamente grandes teniendo en cuenta que el área promedio es de 115.7 m2, con un área mínima es de 80 m2 y el máximo de 195 m2, el área que más se repite en las viviendas son los espacios de 97 m2. A partir del grafico de barras se evidencia que la mayoría de viviendas tiene una distribución dentro de los 80 a 120 metros cuadrados con una cantidad total de 16 viviendas, entre los 120 y 160 metros cuadrados se tiene un total de 5 viviendas y entre los 160 y 200 metros cuadrados se encuentra un total de 5 viviendas.
summary(datos_vivienda$precio_millon)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 240.0 251.2 305.0 332.1 395.0 480.0
hist(datos_vivienda$precio_millon,col = "lightgoldenrod",xlab = "Precio Vivienda * Millón",ylim = c(0,8),labels = T,main = "Histograma precio de las viviendas")
Análisis. En términos de precio la media de las viviendas se encuentra aproximadamente en los 305 millones, el costo más bajo es de 240 millones y el máximo es de 480 millones.
Entre los 200 y 250 millones se encentra un total de 7 viviendas, entre los 250 y 300 millones se encuentra un total de 6 viviendas, entre los 300 y 350 millones hay únicamente una vivienda, entre los 350 y 400 millones hay 6 propiedades, entre los 400 y 450 millones hay un total de 5 propiedades y únicamente una vivienda se encuentra en el rango entre los 450 y 500 millones de pesos. Se evidencia como entre mas incrementa el precio de las viviendas también es menor la disponibilidad que hay, siendo más pocas las propiedades que están sobre los 400 millones de pesos a las que se encuentran por debajo de este valor.
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.
require(ggplot2)
## Loading required package: ggplot2
ggplot(datos_vivienda,aes(x=Area_contruida,y=precio_millon))+geom_point()+theme_bw()+geom_smooth(col="lightgreen",fill = "lightblue")+ylab("Precio Vivienda * Millón")+xlab("Area construida en metros cuadrados")
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
a=cor(datos_vivienda$Area_contruida,datos_vivienda$precio_millon)
print(paste("La correlacion entre las variables de area construida y precio de vivienda es de= ",format(a, scientific = F)))
## [1] "La correlacion entre las variables de area construida y precio de vivienda es de= 0.9190295"
Análisis. La correlación que existe entre las variables de precio y área muestra un valor alto de aproximadamente un 92% , lo cual quiere decir que existe una relación lineal positiva fuerte que indica que, a mayor área construida, mayor es el precio de la propiedad. Esto se corrobora con los proce3sos gráficos que muestran que las viviendas que se encuentran por debajo de los 100 metros cuadrados son las que tienen un menor valor que no supera los 350 millones. Las viviendas con mayor área son las que superan los 400 millones de pesos. Cabe resaltar que la vivienda más costosa de 480 millones no es la más grande, al contrario, hay otras dos propiedades a menor precio y con el mismo espacio que esta. La vivienda con mayor espacio tiene un costo de 450 millones.
3. Estime el modelo de regresión lineal simple entre precio = f(area) +e. Interprete los coeficientes del modelo β0, β1 en caso de ser correcto.
attach(datos_vivienda)
modelo=lm(precio_millon~Area_contruida)
summary(modelo)
##
## Call:
## lm(formula = precio_millon ~ 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 ***
## 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
Análisis. Con el coeficiente de correlación revisado y mediante el modelo de linealidad se generan los valores de β1 y β0 que permite explicar en un 84% la relación y rechaza con contundencia que los valores de β0 y β1 sean iguales a 0 mediante el código de significancia que arroja el modelo de ***. El modelo da como resultado un valor de intercepto β0 de 86.234 y una pendiente de la línea de regresión β1 de 2.124, lo que quiere decir que por cada metro cuadrado que aumenta la propiedad su costo también aumenta en 2.2 millones aproximadamente.
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 hipotesis t.
LI=2.124-(1.96*0.186)
LS=2.124+(1.96*0.186)
c(LI,LS)
## [1] 1.75944 2.48856
Análisis. Se construye el intervalo de confianza al 95% y se obtiene un rango con un valor inferior de 1.75944 y un valor superior de 2.48856 el cual contiene el β1 obtenido en la prueba realizada por el modelo el cual dio 2.124. Estos valores reflejan que el coeficiente dentro de este intervalo nunca puede llegar a ser 0.
5. Calcule e interprete el indicador de bondad y ajuste R2.
b=0.8446
print(paste("El indicador de bondad y ajuste R2 generado por el modelo es de= ",format(b, scientific = F)))
## [1] "El indicador de bondad y ajuste R2 generado por el modelo es de= 0.8446"
Análisis. El modelo permite evidenciar que el indicador de bondad y ajuste se encuentra cerca a un valor de 1, lo que significa que con el coeficiente de determinación de 0.8446 tiene un ajuste BUENO a los datos analizados explicando un 84% del estudio de caso.
6. Cual seria 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 seria una buena oferta? Que consideraciones adicionales se deben tener?.
predict(modelo,list(Area_contruida=110),interval = 'confidence')
## fit lwr upr
## 1 319.8706 306.3133 333.4279
Análisis. El precio promedio para un apartamento de 110 metros cuadrados según el modelo realizado es de 319.8 millones, si se encontrase un apartamento en la misma zona del mismo tamaño, pero por un precio de 200 millones sería una excelente oferta ya que la diferencia con el precio proyectado es de 119.8 millones que se estaría ahorrando el comprador.
Entre las condiciones adicionales que se podría llegar a observar es la ubicación de la propiedad, si se trata de un edificio en que piso se encuentra, el estado en que se encuentra, los años de construcción que tiene el apartamento, si se trata de una venta directa o con inmobiliaria, el numero de dueños que ha tenido, la distribución de espacios, si cuenta con servicios o no, entre otros.
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.
par(mfrow=c(2,2))
plot(modelo)
Análisis. En el gráfico de residuales y valores ajustados muestra que los residuales si mantienen un comportamiento similar a una curva, por lo tanto, tienen una componente sistemática que haría falta y que ayudaría a que fuera datos mas dispersos. En el grafico de normalidad algunos datos están por fuera de la recta normal. Los otros dos gráficos presentan valores atípicos.
Puntos 8. y 9. De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo. Y de ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.
modelolog=lm(precio_millon~log(Area_contruida))
summary(modelolog)
##
## Call:
## lm(formula = precio_millon ~ log(Area_contruida))
##
## 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
par(mfrow=c(2,2))
plot(modelolog)
Análisis. Se realizan dos ajustes uno de tipo logarítmico (se muestra en el chunk) y uno de tipo doble logarítmico, los cuales logran explicar el modelo en un 90% y 87% respectivamente, lo que muestra una leve mejora, sin embargo, no lo suficiente para ser considerados como relevantes, esto se evidencia en los supuestos del ajuste tipo logarítmico que muestran un comportamiento muy similar al del modelo original.