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.

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.
  1. 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)
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.
  1. Estime el modelo de regresión lineal simple entre precio = f(area)+e. Interprete los coeficientes del modelo B0, B1 en caso de ser correcto.
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)
  1. Construir un intervalo de confianza (95%) para el coeficiente B1, interpretar y concluir si el coeficiente es igual a cero o no. Compare este resultado con una prueba de hipotesis t.
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.
  1. Calcule e interprete el indicador de bondad y ajuste R2.
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.
  1. 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?.
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.
  1. Realice la validación de supuestos del modelo por medio de graficos apropiados, interpretarlos y sugerir posibles soluciones si se violan algunos de ellos.
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.
  1. De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.
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)
  1. De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.

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.