##INTEGRANTES## Valentina Marin Quintero (Grupo 1 , M-J 10) Juan Sebastian Osorio Mejia (Grupo 1, M-J 10-12) Simon Yarce Arango (Grupo 1, M-J 10-12)
library(readxl)
datos_vivienda <- read_excel("C:/Users/57310/OneDrive/Escritorio/datos_vivienda.xlsx")
View(datos_vivienda)
##1ER PUNTO ANÁLISIS EXPLORATORIO
Analisis Exploratorio
attach(datos_vivienda)
summary(datos_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
plot(datos_vivienda$Area_contruida,datos_vivienda$precio_millon)
A partir de el area construida se puede determinar el precio , definiendo así como x=Area construida como variable independiente , mientras que podemos decir y=precio siendo este la variable dependiente. Tambien podemos ver que existe una relacion directa entre las variables. Y partiendo de los datos expuestos en “summary” podemos verificar que la media de areas es 115.7 metros por vivienda y la de precio es 332.1 millones de pesos.
##2DO PUNTO ANÁLISIS BIVARIADO
cor(Area_contruida,precio_millon)
## [1] 0.9190295
plot(datos_vivienda$Area_contruida,datos_vivienda$precio_millon)
Partiendo de la correlacion podemos afirmar que efectivamente existe una relación directa y fuerte entre las variables , a pesar de esto , no significa que la relación sea del todo lineal, siendo mas similar a una logaritmica.
##3ER PUNTO ESTIMACIÓN DE MODELO
Y=B0+B1X+e
mod <- lm(precio_millon ~ Area_contruida, data = datos_vivienda)
summary(mod)
##
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = datos_vivienda)
##
## 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
Estimando el modelo , podemos abstraer la formulado a partir de los párametros estimados Precio Millon= 86.234+2.124*Area B0 no es interpretable debido a que no existe una vivienda de 0 metros con un precio de 86.234 millones. B1 indica que en promedio por cada unidad construida hay un aumento en el precio de la vivienda de 2.124. H0:B0=0 ,como t0>t(aplha/2),24 se rechaza H0 H0:B1=0 ,como t0>t(aplha/2),24 se rechaza H0
Podemos concluir que ambos B0 y B1 son significativos.
##4TO PUNTO INTERVALO DE CONFIANZA
b1=2.124
eeb1=0.186
t=qt(0.025,24,lower.tail=F)
LI=b1-(t*eeb1)
LS=b1+(t*eeb1)
LS
## [1] 2.507885
LI
## [1] 1.740115
Con una confianza del 95% podemos concluir que B1 se encuentra entre 2.507885 y 1.740115 , siendo este significativo podemos concluir que es diferente a 0.
##5TO PUNTO PRUEBA DE BONDAD DE AJUSTE
(cor(x=datos_vivienda$Area_contruida,y=datos_vivienda$precio_millon))^2
## [1] 0.8446152
Indica la porporción de la variabilidad de la variable respuesta que es explicada por la regresión Al éste estar mas cerca de 1 significa que una mayor cantidad de errores son explicados por la regresión. Esto quiere decir que el 84.46152% de los errores es explicado por la regresión.
##6TO INTERVALO DE RESPUESTA MEDIA
anova(mod)
## Analysis of Variance Table
##
## Response: precio_millon
## Df Sum Sq Mean Sq F value Pr(>F)
## Area_contruida 1 142480 142480 130.46 3.45e-11 ***
## Residuals 24 26212 1092
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
y0=86.234+(2.124*110)
y_mod=mod$fitted.values
sigma2=sum((datos_vivienda$precio_millon-y_mod)^2)/110
Sxx=sum(datos_vivienda$Area_contruida- (mean(datos_vivienda$Area_contruida))^2)
ee=sqrt((((110- (mean(datos_vivienda$Area_contruida)) )^2/Sxx)+(1/26))*sigma2)
LI2=y0-(t*ee)
LS2=y0+(t*ee)
LI2
## [1] 313.6335
LS2
## [1] 326.1145
predict(mod, data.frame(Area_contruida=110),interval = "confidence",level = 0.95)
## fit lwr upr
## 1 319.8706 306.3133 333.4279
Los límites del intervalo de confianza son (313.6335481, 326.1144519) Ante un area construida de 110 metros , con una confianza de 95% , el precio promedio sería de 319.8706 millones y podría estar en un intervalo de 306.3133 millones de pesos y 333.4279 millones de pesos. Si tenemos en cuenta una vivienda de 110 metros con el precio de 200 millones , esta sería una buena oferta comparando con la prediccion hecha por el modelo, pero se debería tambien tener en cuenta otros aspectos como ,la modernidad de la casa, los acabados , los materiales usados , entre otros.
##7MO PUNTO VALIDACION DE SUPUESTOS
#Media Cero
ei=mod$residuals
round(mean(ei),3)
## [1] 0
Podemos verificar que se cumple el supuesto de media cero.
##Varianza Constante
plot(y_mod,ei,main="Varianza Constante (ei)")
require(ggplot2)
## Loading required package: ggplot2
data_val=data.frame(y_mod,ei)
ggplot(data_val,aes(x=y_mod,y=ei))+geom_point()+theme_bw()+geom_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Partiendo de nuestro análisis gráfico podemos observar que la distribución de la varianza no es constante , pero a partir de este no podemos sacar una conclusión de la varianza del modelo,
##Normalidad
qqnorm(ei)
qqline(ei,col="red")
Partiendo del gráfico anterior podemos afirmar que no se cumple el supuesto de normalidad.
shapiro.test(ei)
##
## Shapiro-Wilk normality test
##
## data: ei
## W = 0.95489, p-value = 0.3009
#Ho:Normalidad vs H1:No normalidad
##p.value<alpha rechazamos h0
#0.3009>0.05
#No rechazamos H0
Con la prueba Shapiro notamos que pasa la prueba de normalidad Sin embargo la prueba gráfica posee mayor peso para este planteamiento.
INDEPENDENCIA: Al no ser series de tiempo , los datos no se encuentran relacionados entre si
##8 TRANSFORMACIÓN DEL MODELO
mod2= lm( (datos_vivienda$precio_millon) ~ log(datos_vivienda$Area_contruida) )
summary(mod2)
##
## Call:
## lm(formula = (datos_vivienda$precio_millon) ~ log(datos_vivienda$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(datos_vivienda$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
plot(mod2)
ei2=mod2$residuals
shapiro.test(ei2)
##
## Shapiro-Wilk normality test
##
## data: ei2
## W = 0.96783, p-value = 0.568
alpha = 0.05
#pvalue< alpha rechazo H0
Ya que observamos anteriormente que el modelo no es lineal , usamos una transformación logarítmica.
##9NO PUNTO COMPARACIÓN
y_mod2=mod2$fitted.values
ei2=mod2$residuals
plot(y_mod2,ei2,main="Varianza Constante (ei)")
require(ggplot2)
data_val2=data.frame(y_mod2,ei2)
par(mfrow=c(1,2))
ggplot(data_val2,aes(x=y_mod2,y=ei2))+geom_point()+geom_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
par(new=TRUE)
ggplot(data_val,aes(x=y_mod,y=ei))+geom_point()+geom_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Del modelo original podemos observar que el R2 explicaba el 84.46152% de los errores de la regresión , mientras que el modelo transformado explica el 89.63% de los errores. Tambien podemos apreciar que se ajusta un poco más a la linea de la normalidad.
##10MO FUNCIÓN DE INTERVALO
funcion=function(x,y,a){
funcionmod= confint(lm(y~x), level = a)
cat(funcionmod[2], funcionmod[4], a*100)
}
funcion(datos_vivienda$Area_contruida,datos_vivienda$precio_millon,0.95)
## 1.74017 2.507771 95