# importar DB

library(readxl)
datos_vivienda <- read_excel("C:/Users/ADMIN/Desktop/Maestria Ciencia de Datos/1. Metodos y Simulacion estadistica/Unidad 3. Modelacion Estadistica/datos_vivienda.xlsx")
head(datos_vivienda,3)
## # A tibble: 3 × 2
##   Area_construida precio_millon
##             <dbl>         <dbl>
## 1              86           250
## 2             118           385
## 3             130           395
attach(datos_vivienda)

1. A continuación realizaremos una exploración univariada de datos de las variables cuantitativas (área construida y precio):

require(table1)
## Loading required package: table1
## 
## Attaching package: 'table1'
## The following objects are masked from 'package:base':
## 
##     units, units<-
y <- table1::table1(~Area_construida + precio_millon)
y
Overall
(N=26)
Area_construida
Mean (SD) 116 (35.5)
Median [Min, Max] 97.0 [80.0, 195]
precio_millon
Mean (SD) 332 (82.1)
Median [Min, Max] 305 [240, 480]
require(ggplot2)
## Loading required package: ggplot2
require(ggpubr)
## Loading required package: ggpubr
datos_vivienda$Area_construida_grupo=cut(datos_vivienda$Area_construida,breaks = c(79,100,120,140,160,180,200))
datos_vivienda$precio_millon_grupo=cut(datos_vivienda$precio_millon,breaks = c(200,250,300,350,400,450,500))

bp1=ggplot(datos_vivienda,aes(x=Area_construida))+geom_boxplot(fill="gray", color=1)+ggtitle("Gráfico de Cajas Area Construida")+theme_bw()
g1=ggplot(datos_vivienda,aes(x=Area_construida_grupo))+geom_bar(fill="gray", color="black")+geom_text(stat='count', aes(x=Area_construida_grupo,label=..count..), vjust=1.2, col="white")+ggtitle("Histograma Area Construida")+theme_bw()

g2=ggplot(datos_vivienda,aes(x=precio_millon_grupo))+geom_bar(fill="darkblue", color=5)+geom_text(stat='count', aes(x=precio_millon_grupo,label=..count..), vjust=1.2, col="white")+ggtitle("Histograma Precio (Millones)")+theme_bw()
bp2=ggplot(datos_vivienda,aes(x=precio_millon))+geom_boxplot(fill="darkblue", color=1)+ggtitle("Gráfico de Cajas Precio")+theme_bw()

ggarrange(bp1, g1, bp2, g2, labels = c("A.", "B.", "C.", "D."),ncol = 2, nrow = 2)

Análisis univariado variables cuantitativas:

Area Construida: El promedio de area construida de predios es de 116 metros cuadrados, con una desviación estandar de 35.5 metros cuadrados, evidenciando que los m2 se desvian de la media aproximadamente en 35.5 m2, indicando que la media no es una medida certera en este caso. Es de notar que el 50% de los predios tienen áreas construidas por debajo de los 97 m2. Esto indica que la grafica es asimétrica positiva o sesgada hacia la derecha.

Precio: El promedio de los precios de los predios es de 332 millones, con una desviación estandar de 82.1 millones, indicando que el precio se desvia de la media en 82.1 millones en promedio, el 50% de los predios tienen un costo entre 240 y 305 millones y los predios mas costosos estan entre los 450 y 500 millones.

2. Análisis bivariable de datos

require(table1)
y <- table1::table1(~precio_millon|Area_construida_grupo, data = datos_vivienda)
y
(79,100]
(N=14)
(100,120]
(N=2)
(120,140]
(N=5)
(160,180]
(N=3)
(180,200]
(N=2)
Overall
(N=26)
precio_millon
Mean (SD) 262 (24.0) 385 (0) 398 (18.6) 447 (35.1) 435 (21.9) 332 (82.1)
Median [Min, Max] 253 [240, 320] 385 [385, 385] 395 [385, 430] 450 [410, 480] 435 [419, 450] 305 [240, 480]

Se evidencia que de los 14 predios que cuentan con area construida en un rango entre 79 y 100 metros cuadrados tienen en promedio un precio de 262 millones con una desviación estandar de 24 millones y oscilan desde los 240 millones hasta los 320 millones. Igualmente se evidencia que de los 2 predios que se encuentran entre los 100 y 120 metros cuadrados tienen un precio de 385 millones. De los 5 predios que se encuentran entre los 120 y 140 metros cuadrados, tienen un precio promedio de 398 millones con una desviación estandar de 18.6 millones y sus precios estan en un rando entre 385 y 430 millones. Con respecto a los predios que tienen areas construidas entre los 160 y 180 metros cuadrados, tienen en promedio un precio de 447 millones con una desviación de 35.1 millones y un rango de precios entre los 410 millones y 480 millones, y finalmente, los predios que se encuentran entre 180 y 200 metros cuadrados de areas construidas, tienen en promedio un precio de 435 millones oscilando los precios en un rango enre los 419 millones y 450 millones.

3. Modelo de regresión lineal simple

X = area construida (variable independiente)

Y = precio en millones (variable dependiente)

Ecuación de la recta de regresión: Y = a + b.X

# Gráfico

require(ggplot2)

ggplot(datos_vivienda,aes(x=Area_construida,y=precio_millon))+geom_point()+theme_bw()+geom_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

#plot(Area_construida, precio_millon, pch=16)

De acuerdo con el grafico de dispresión, donde se grafican las variables area construida (eje x) y precio (eje y), se logra percibir que la dispersion de los datos tiene una tendencia directa o creciente (relacion lineal positiva).

# Coeficiente de correlacion

cor(Area_construida,precio_millon)
## [1] 0.9190295

El resultado obtenido de coeficiente de correlación r = 0.9190295 indica que entre el área construida y el precio del predio existe una asociación lineal positiva fuerte, es decir, que entre mas sea el área del predio, mayor será el precio.

# Regresión lineal

mod=lm(precio_millon~Area_construida) # variable de respuesta en función del área construida 
summary(mod)
## 
## Call:
## lm(formula = precio_millon ~ Area_construida)
## 
## 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_construida    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

a = 86,234 para este valor de a, nos indica que en el caso hipotetico que un predio tenga 0 metros cuadrados construidos, este costaría 86 millones aproximadamente

b = 2,124 para el valor de b, nos indica que por cada m2 que incrementa el area construida, se espera un aumento en 2,124 millones en el precio del innmueble.

4. Construir un intervalo de confianza (95%) para el coeficiente B1 (b), interpretar y concluir si el coeficiente es igual a cero o no. Compare este resultado con una prueba de hipotesis t.

mod95=confint(object = mod, level = 0.95)
mod95
##                    2.5 %     97.5 %
## (Intercept)     39.83983 132.627917
## Area_construida  1.74017   2.507771
summary(mod95)
##      2.5 %           97.5 %       
##  Min.   : 1.74   Min.   :  2.508  
##  1st Qu.:11.27   1st Qu.: 35.038  
##  Median :20.79   Median : 67.568  
##  Mean   :20.79   Mean   : 67.568  
##  3rd Qu.:30.31   3rd Qu.:100.098  
##  Max.   :39.84   Max.   :132.628

H0: B1 = 0

H1: B1 <> 0

alpha = 0.05

NO Se rechaza H0 si el p-valor de la prueba es > a 0.05

Se rechaza H0 si el p-valor de la prueba es <= a 0.05

Se observa que para un intervalo de confianza (95%) para el coeficiente B1, este no contiene el valor 0, permitiendo concluir que el coeficiente es relevante dentro del modelo. Comparado con el p-valor del modelo de regresion lineal que es menor al 0.05, se rechaza la hipótesis nula que el coeficiente B1 es igual a 0.

5. Indicador de bondad y ajuste R^2

r=cor(Area_construida,precio_millon)
r^2
## [1] 0.8446152

r^2 = 0.8446152

El coeficiente de determinación para este caso nos indica que: Se encuentra que la recta de regresión propuesta presenta un ajuste BUENO en la explicación del precio de los inmuebles con respecto al area construida.

6. Cual seria el precio promedio estimado para un apartamento de 110 metros cuadrados? 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? Que consideraciones adicionales se deben tener?

# Y = a + b.X
# Y = 86.234 + 2.124 * 110

predict(mod,list(Area_construida=110))
##        1 
## 319.8706

El precio promedio estimado para un apartamento de 110 metros cuadrados es de 319,9 millones aproximadamente, así entonces, en esa misma zona encontrar un apartamento de de 200 millones sería una excelente oferta.

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.

# Validación de Supuestos 

par(mfrow=c(2,2))
plot(mod)

Residuales vs valores ajustados: Se observa completa aleatoriedad de los residuales, los datos no presentan algún comportamiento. Grafico de normalidad: se observa que los datos se encuentran cercanos a la linea de la distribución normal

8. De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.

r=cor(log(Area_construida),precio_millon)
print("El valor de r es:")
## [1] "El valor de r es:"
r
## [1] 0.946716
print("El valor de r^2 es:")
## [1] "El valor de r^2 es:"
r^2
## [1] 0.8962713
mod2=lm(precio_millon~log(Area_construida))
mod2
## 
## Call:
## lm(formula = precio_millon ~ log(Area_construida))
## 
## Coefficients:
##          (Intercept)  log(Area_construida)  
##               -948.5                 271.9
summary(mod2)
## 
## Call:
## lm(formula = precio_millon ~ log(Area_construida))
## 
## 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_construida)   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(mod2)

Se procede a realizar el ajuste al modelo, asumiento que es un modelo logaritmico, se realiza la transformación y de linealiza el modelo con la ecuación Y = a + b.W donde W = LogX

9. De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.

El resultado nuevo obtenido de coeficiente de correlación r = 0.946716 del modelo logaritmico linealizado indica que entre el área construida y el precio del predio existe una asociación lineal positiva fuerte, es decir, que entre mas sea el área del predio, mayor será el precio. Con relaciòn al modelo lineal simple, la linealizada del modelo logaritmico presenta una relaciòn lineal positiva aún mas fuerte.

El coeficiente de determinación para este caso r^2 = 0.8962713 indica: Se encuentra que la recta de regresión con el modelo linealizado del modelo logaritmico continùa presentando un ajuste BUENO (mejor que el modelo de regresion lineal simple) muy cercano al ajuste a los datos del nivel excelente en la explicación del precio de los inmuebles con respecto al area construida.

Con respecto a los supuestos, se puede indicar lo siguiente:

Residuales vs valores ajustados: Se observa completa aleatoriedad de los residuales, donde los datos no presentan algún comportamiento. Grafico de normalidad: se observa que los datos se encuenttran cercanos a la linea de la distribución normal, similar al modelo no linealizado.