Variable dependiente Y
library(readxl)
datos_vivienda <- read_excel("D:/ESTUDIO/MASTER IN DATA SCIENCE/Semester 1/METODOS Y SIMULACION ESTADISTICA/MOD 3/datos_vivienda.xlsx")
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
par(mfrow = c(1, 2))
hist(x = Area_contruida)
abline(v = mean(Area_contruida),col="blue", lwd=4)
abline(v = median(Area_contruida),col="red", lwd=4)
legend(x ="topright",legend = c("media", "mediana"), col = c("blue", "red"),lwd = 4 )
hist(x = precio_millon)
abline(v = mean(precio_millon),col="blue", lwd=4)
abline(v = median(precio_millon),col="red", lwd=4)
legend(x ="topright",legend = c("media", "mediana"), col = c("blue", "red"),lwd = 4 )
CAP_Area = 3*(mean(Area_contruida)-median(Area_contruida))/sd(Area_contruida)
CAP_Precio = 3*(mean(precio_millon)-median(precio_millon))/sd(precio_millon)
resultados = data.frame(CAP_Area, CAP_Precio)
resultados
| CAP_Area | CAP_Precio |
|---|---|
| 1.582316 | 0.9888798 |
##____________________________Análisis_____________________________________________
# Tanto para la variable de area construida como para la de precio se observa que la media y la mediana no son muy similares, esto no es un síntoma de simetría y se puede validar visualmente en los histogramas, en donde la media se representa por la linea de color azul y la mediana con color rojo; como el coeficiente de asimetría de Pearson CAP es > 0 para las dos variables, esto indica que la distribucion es asimetrica hacia la derecha, tienen sesgo positivo como se puede observar en los histogramas.
require(ggplot2)
require(plotly)
g1=ggplot(data = datos_vivienda, aes(x = Area_contruida, y= precio_millon)) +geom_point() + geom_smooth( method= 'loess', formula= 'y ~ x')
ggplotly(g1)
covarianza = cov(Area_contruida, precio_millon )
correlacion = cor(Area_contruida, precio_millon )
resultado = data.frame(covarianza, correlacion)
resultado
| covarianza | correlacion |
|---|---|
| 2683.271 | 0.9190295 |
##____________________________Análisis_____________________________________________
##Visualmente como se observa en el gráfico a medida que la variable área crece, también lo hace la variable precio. El coeficiente de covarianza positivo indica que la relación entre las variables es positiva, ademas, el coeficiente de correlacion = 0.92 indica que la relación entre las variables es de tipo "Positiva Fuerte.
g2=ggplot(data = datos_vivienda, aes(x = Area_contruida, y= precio_millon)) +geom_point() + geom_smooth( method= 'lm', formula= 'y ~ x')
ggplotly(g2)
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_____________________________________________
##El B1 indica que por cada incremento en la variable area construida, el precio aumentará en 2.124 millones, cuando el area es igual a cero, el precio de la vivienda es de 86 millones aproximadamente.
## Precio = 86.234 + 2.124(Area Construida)
confint(modelo, "Area_contruida", level = 0.95)
## 2.5 % 97.5 %
## Area_contruida 1.74017 2.507771
##____________________________Análisis_____________________________________________
##Con un 95 % de confianza se puede afirmar que el B1 puede tomar valores entre 1.74 y 2.5 millones por metro cuadrado de area construida. El P value para B1 = 3.45e-11 como es < 0.05 entonces se puede decir que la variable Area_Construida es significativa para el modelo.
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_____________________________________________
## El R cuadrado explica en un 0.84 de la variabilidad de los precios de una vivienda.
precio= function(x){
B0= 86.234
B1= 2.124
y= B0 + B1*x
return(y)
}
precio(110)
## [1] 319.874
predict(modelo,list(Area_contruida=110),interval = "confidence")
## fit lwr upr
## 1 319.8706 306.3133 333.4279
##____________________________Análisis_____________________________________________
## El precio estimado para un apartamento con una área de 110 metros cuadrados seria de 320 millones aproximadamente. Si en en la misma zona existe un apartamento con la misma area y con un precio de 200 millones, este seria una buena oferta ya que un apartamento con esa area tiene un intervalo de precio entre 306 y 333 millones. Como consideraciones a tener en cuenta, es importante conocer si el apartamento cuenta con parqueadero, zonas comunes, si cuenta con asensor en caso de estar en pisos elevados, si tiene buenos acabados.
modelo
##
## Call:
## lm(formula = precio_millon ~ Area_contruida)
##
## Coefficients:
## (Intercept) Area_contruida
## 86.234 2.124
par(mfrow = c(2,2))
plot(modelo)
##____________________________Análisis_____________________________________________
## En el gráfico de Ajuste "Residuals vs Fitted" se espera que el comportamiento sea aleatorio y que no siga un patrón como el que se muestra en el gráfico. L relación entre el las variables precio y área no necesariamente es lineal.
##En el gráfico Normal Q-Q a pesar de que los datos se encuentran alrededor de la linea, se puede observar datos a tipicos y datos un poco alejados de la linea por lo que no se puede asegurar que siga una distribuación normal.
## Los graficos Slace.Location y Residuals vs Leverage indican los datos atipicos del modelo
##El grafico de ajuste "Residuals vs Fitted" indica que el supuesto de aletoriedad no se está cumpliendo, se hace necesario realizar un ajuste para corregir esta situación, se debe trasformar el modelo re regresión lineal.
modelo_ajuste = lm((precio_millon)~log(Area_contruida))
summary(modelo_ajuste)
##
## 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(modelo_ajuste)
##____________________________Análisis_____________________________________________
##El diagrama de correlación entre las variables indica que los datos podrían tener una tendencia logarítmica, por lo que la transformación se hace dejando la variable Y igual y se aplica log a la variable X log(X)
El R cuadrado en el modelo ajustado mejoró en relación con el modelo inicial, el valor pasó de 0.8446 a 0.8963, lo que significa que aumentó el nivel de significativa en el modelo con la transformación al modelo logarítmico. Al comparar las gráficas entre el modelo inicial y el ajustado, en el ultimo se observa ligeramente una mayor aleatoriedad en el gráfico de ajuste y una ligera tendencia de los datos a estar mas cerca de la linea en el gráfico de normalidad.