## # A tibble: 8,322 x 12
##    Zona       piso  Estrato precio_millon Area_contruida parqueaderos Banos
##    <chr>      <chr>   <dbl>         <dbl>          <dbl> <chr>        <dbl>
##  1 Zona Sur   2           6           880          237   2                5
##  2 Zona Oeste 2           4          1200          800   3                6
##  3 Zona Sur   3           5           250           86   NA               2
##  4 Zona Sur   NA          6          1280          346   4                6
##  5 Zona Sur   2           6          1300          600   4                7
##  6 Zona Sur   3           6           513          160   2                4
##  7 Zona Sur   2           6           870          490   3                6
##  8 Zona Sur   5           5           310           82.5 1                2
##  9 Zona Sur   9           4           240           80   1                2
## 10 Zona Sur   6           6           690          150   2                5
## # ... with 8,312 more rows, and 5 more variables: Habitaciones <dbl>,
## #   Tipo <chr>, Barrio <chr>, cordenada_longitud <dbl>, Cordenada_latitud <dbl>
## # A tibble: 8,319 x 12
##    Zona       piso  Estrato precio_millon Area_contruida parqueaderos Banos
##    <chr>      <chr>   <dbl>         <dbl>          <dbl> <chr>        <dbl>
##  1 Zona Sur   2           6           880          237   2                5
##  2 Zona Oeste 2           4          1200          800   3                6
##  3 Zona Sur   3           5           250           86   NA               2
##  4 Zona Sur   NA          6          1280          346   4                6
##  5 Zona Sur   2           6          1300          600   4                7
##  6 Zona Sur   3           6           513          160   2                4
##  7 Zona Sur   2           6           870          490   3                6
##  8 Zona Sur   5           5           310           82.5 1                2
##  9 Zona Sur   9           4           240           80   1                2
## 10 Zona Sur   6           6           690          150   2                5
## # ... with 8,309 more rows, and 5 more variables: Habitaciones <dbl>,
## #   Tipo <chr>, Barrio <chr>, cordenada_longitud <dbl>, Cordenada_latitud <dbl>

1. Análisis exploratorio de las variables precio de vivienda y área de la vivienda

En los datos, la vivienda más económica tiene un valor de 58 millones, el precio de la vivienda más costosa es de 1999 millones y el costo promedio de las viviendas es de 433.9 millones. Por otro lado, el área promedio de las viviendas es de 174.9 \(m^2\), el valor máximo de esta variable es 1745 y el mínimo 30.

ggplot(Datos_Vivienda, aes(x = precio_millon)) +
  geom_histogram() + 
  labs(title = "Diagrama de barras para precio de la vivienda",
       x = "Precio de la vivienda")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

library(ggplot2)
library(ggridges)
## Warning: package 'ggridges' was built under R version 4.0.5
ggplot(Datos_Vivienda, 
       aes(x = Area_contruida, 
           y = factor(Tipo,labels = c("CASA",
                                       "APARTAMENTO")), 
           fill = Tipo)) +
  geom_density_ridges() + 
  theme_ridges() +
  labs("Highway mileage by auto class") +
  theme(legend.position = "none") + 
  labs(title = 'Distribución del area de la vivienda por el tipo',
                                         x = 'área de la vivienda',
                                         y = 'Tipo de vivienda')
## Picking joint bandwidth of 16.9

Para la variable área, podemos observar a través del gráfico anterior que el área de la vivienda es mayor cuando esta es de tipo apartamento. El área promedio de las viviendas es de 174.9349\(m^2\).

2. Análisis exploratorio de datos bivariado de las variables precio de vivienda y área de la vivienda

Pensaríamos que hay una relación entre estas dos variables: cuánto mayor sea el área construida de la vivienda, mayor será su precio. En la siguiente figura se presenta el comportamiento de estas dos variables según los datos y para comprobar la existencia de dicha relación usamos el coeficiente de correlación que tiene un valor de 0.687352, lo que nos dice que la relación lineal entre estas variables es positiva pero no muy fuerte.

3. Modelo de regresión simple entre precio de la vivienda y área construida

Se presenta la estimación de un modelo de regresión simple cuya variable dependiente será el precio de la vivienda (millón) y la variable independiente área construida (\(m^2\)).

## 
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = Datos_Vivienda)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2659.88  -120.78   -47.55    67.27  1330.10 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    157.47636    4.13640   38.07   <2e-16 ***
## Area_contruida   1.58018    0.01831   86.30   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 238.7 on 8317 degrees of freedom
## Multiple R-squared:  0.4725, Adjusted R-squared:  0.4724 
## F-statistic:  7448 on 1 and 8317 DF,  p-value: < 2.2e-16

Recordemos que el valor del intercepto se obtiene cuando la variable independiente (en este caso área construida) toma el valor de cero y que para que su interpretación sea válida área construida debe contener en su rango el cero. En la base de datos, no se encuentra ninguna vivienda cuya área construida es cero (el rango se mencionó anteriormente) por lo tanto la estimación \(\hat\beta_0\)= 157.47636 podemos entenderla únicamente como una constante útil para el ajuste del modelo.

Por otra parte, \(\hat\beta_1\)=1.58018 indica que cuando el área de la vivienda tiene un cambio de 1\(m^2\), hay un cambio de 1.58018 millones en el precio de la vivienda.

Los resultados del resumen nos permiten afirmar que no hay evidencia suficiente para pensar que la variable independiente no es significativa en el modelo.

4. Intervalo de confianza \(\beta_1\)

##                     2.5 %     97.5 %
## (Intercept)    149.367981 165.584740
## Area_contruida   1.544286   1.616067

El intervalo de confianza para \(\beta_1\) nos brinda una lista de valores plausibles para el parámetro. Notemos que el intervalo no contiene el cero lo que nos permite afirmar que no es muy razonable pensar que, el valor del parámetro es cero. A través del intervalo de confianza podemos comprobar, si el parámetro es o no significativo en el modelo, usando como hipótesis \(H_0\):\(\beta_1\)=0. Como el 0 no está incluido en el intervalo de confianza podemos rechazar \(H_0\) con una significancia de 0.05, por lo tanto, hay suficiente evidencia para afirmar que \(\beta_1\) debe estar incluido en el modelo.

Lo anterior lo podemos ratificar al observar el resumen del modelo (punto 3) donde al realizar una prueba t llegamos a la misma conclusión: la variable área construida es significativa en el modelo.

5. Indicador de bondad y ajuste \(R^2\)

El coeficiente de determinación \(R^2\)=0.4725, es decir que el 47.25% de la variación de los datos de la variable precio de la vivienda es explicada por la variable área construida. Que este valor no sea cercano a 1 indicaría que no hay un buen ajuste del modelo y sus interpretaciones no serían confiables.

6.

Tenemos que para una vivienda cuya área construida es de 110\(m^2\), el precio promedio será de 331.295 millones, según el modelo establecido anteriormente.

Para encontrar unos valores razonables del precio de la vivienda dado un área de 110\(m^2\), hallaremos un intervalo de predicción, el cúal es:

##        fit      lwr      upr
## 1 331.2958 325.6605 336.9311

Como se puede observar el precio promedio de dicha vivienda estará entre 325.660 y 336.931 millones, por lo tanto, la oferta de la vivienda a un precio de 200 millones, es buena dado que es mucho más barato de lo que normalmente costaría una vivienda con esas condiciones.

7. Validación de supuestos

Supuesto de linealidad

Para verificar que la relación entre las variables es lineal, usaremos el diagrama de dispersión y el coeficiente de correlación de Pearson. En el ítem 2, notamos en el gráfico de dispersión que en la mayoria de los datos aumenta el área construida de la vivienda a medida que lo hace el precio de la misma. Además, el coeficiente de correlación es 0.687352, podemos asumir que hay una leve correlación positiva entre las variables.

## 
##  Pearson's product-moment correlation
## 
## data:  Datos_Vivienda$precio_millon and Datos_Vivienda$Area_contruida
## t = 86.304, df = 8317, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.6758453 0.6985236
## sample estimates:
##      cor 
## 0.687352

Supuesto de independencia

El supuesto de la independencia de los residuos implica que los errores sean independientes entre sí y por lo tanto constituyan una variable aleatoria. Para verificarlo usaremos la prueba de Durbin-Watson. Donde el estadístico es de 1.455417 con un valor p asociado de 0. Por lo tanto, hay evidencia suficiente para rechazar la hipótesis nula y por lo tanto los residuos están autocorrelacionados.

## Loading required package: carData
##  lag Autocorrelation D-W Statistic p-value
##    1       0.2721567      1.455417       0
##  Alternative hypothesis: rho != 0

Supuesto de varianza constante

El supuesto de homocedasticidad exige que para todo el recorrido de la variable X la varianza del error sea constante. El gráfico para comprobar la homocedasticidad es el ya conocido de Residuos frente a Valores ajustados. En el gráfico de los residuos estudentizados contra los valores ajustados, los residuos parecen tener una tendencia decreciente, por lo que se podría considerar que los errores no tienen varianza constante. Para verificar lo anterior, usaremos la prueba de Breusch-Pagan, donde el valor p obtenido es aproximadamente 0, que es menor al nivel de significa = 0.05, por lo tanto hay evidencia suficiente para decir que no se cumple la homocedasticidad en los errores.

## Warning: package 'lmtest' was built under R version 4.0.5
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.0.5
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
##  studentized Breusch-Pagan test
## 
## data:  mr
## BP = 1609.3, df = 1, p-value < 2.2e-16

Supuesto de normalidad

Para hacer uso de la estimación por intervalo del modelo de regresión es necesario la normalidad en la distribución de los errores. Para comprobar esto, haremos uso de la siguiente gráfica:

## [1] 1017 3324
## Warning in ks.test(mr$residuals, pnorm, mean(mr$residuals), sd(mr$residuals)):
## ties should not be present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  mr$residuals
## D = 0.14774, p-value < 2.2e-16
## alternative hypothesis: two-sided

Aquí vemos que para los datos normales, los cuantiles muestrales y teóricos no siguen aproximadamente la línea recta de referencia y la mayoría de estos puntos se encuentran por fuera de la zona de confianza, por lo tanto los datos no presentan un comportamiento normal.

Ya comprobamos que los supuestos no se cumplen, es decir que realizando el modelo lineal simple no podemos concluir sobre la bondad del ajuste ni la independencia o dependencia de los factores.

8. Transformación del modelo

Dado que el análisis de residuos para el ajuste del modelo para los datos de vivienda mostró que hay problemas de heterocedasticidad y normalidad, vamos a encontrar una transformación que resuelva el problema usando el método de Box-Cox.

l<-boxcox.rm$x[boxcox.rm$y ==max(boxcox.rm$y)]
l
## [1] 0.01501502

Estos resultados arrojan que \(\lambda\)=0.01501502, por lo tanto podemos realizar la siguiente transformacion al modelo:

rm2<-lm(log(precio_millon)~Area_contruida, data= Datos_Vivienda)
summary(rm2)
## 
## Call:
## lm(formula = log(precio_millon) ~ Area_contruida, data = Datos_Vivienda)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.2620 -0.3400 -0.0083  0.3191  1.4653 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    5.287e+00  8.571e-03  616.91   <2e-16 ***
## Area_contruida 3.161e-03  3.794e-05   83.32   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4947 on 8317 degrees of freedom
## Multiple R-squared:  0.4549, Adjusted R-squared:  0.4549 
## F-statistic:  6942 on 1 and 8317 DF,  p-value: < 2.2e-16

Ahora procedemos a hacer el análisis de los residuos del modelo transformado:

res.trans = studres(rm2)
par(mfrow=c(1,2))
plot(rm2$fitted.values,res.trans,
     xlab='valores ajustados',ylab='residuos estudentizados')
lines(lowess(res.trans~rm2$fitted.values),col=2)
abline(h=0,lty=2)
plot(rm2$fitted.values,abs(res.trans),
     xlab='valores ajustados',ylab='| residuos estudentizados |')
lines(lowess(abs(res.trans)~rm2$fitted.values),col=2)

## [1] 1017 3324
## Warning in ks.test(rm2$residuals, pnorm, mean(rm2$residuals),
## sd(rm2$residuals)): ties should not be present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  rm2$residuals
## D = 0.015161, p-value = 0.04367
## alternative hypothesis: two-sided

Podemos observar que pese a realizar la transformación de box cox en el modelo, en el gráfico de los residuos estudentizados contra los valores ajustados, continúa una tendencia en los residuos decreciente, por lo tanto no se corrigió la heteroscedasticidad, adicional a esto a través de la prueba de normalidad de Kolmogorov-Smirnov, pudimos encontrar que la no normalidad tampoco se corrigió, ya que el valor p asociado a dicha prueba es menor al nivel de significancia 0.05.

9. Comparación entre los modelos

Inicialmente obtuvimos un modelo simple, donde la variable área construida de la vivienda es significativa en el mismo. Este modelo obtuvo un \(R^2\) del 47,25%, el cual es demasiado bajo y adicional a esto, los supuestos que debe cumplir el modelo son violados, lo cual nos hace pensar que las estimaciones de este modelo no serán confiables. Para corregir el problema anterior, se decidió aplicar una transformación al modelo, donde se obtuvo un \(R^2\) levemente menor al anterior (45,49%), además al verificar el cumplimiento de los supuestos, estos se siguen violando.