## # A tibble: 202 x 12
## Zona piso Estrato precio_millon Area_contruida parqueaderos Banos
## <chr> <chr> <dbl> <dbl> <dbl> <chr> <dbl>
## 1 Zona Sur 4 5 1450 1200 2 6
## 2 Zona Sur 3 5 290 100 1 3
## 3 Zona Sur 4 5 360 99 1 3
## 4 Zona Sur NA 4 550 197 2 4
## 5 Zona Sur 2 5 410 136 2 4
## 6 Zona Sur 4 5 390 198 1 4
## 7 Zona Sur NA 5 300 147 2 3
## 8 Zona Sur 3 5 250 97 2 2
## 9 Zona Sur 6 5 370 104 2 3
## 10 Zona Sur 3 6 1200 616 7 8
## # ... with 192 more rows, and 5 more variables: Habitaciones <dbl>, Tipo <chr>,
## # Barrio <chr>, cordenada_longitud <dbl>, Cordenada_latitud <dbl>
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\)) para el barrio El Ingenio.
##
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = basedatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -282.09 -61.15 -8.32 45.89 477.33
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 195.71496 11.63854 16.82 <2e-16 ***
## Area_contruida 1.21159 0.04632 26.16 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 105.2 on 200 degrees of freedom
## Multiple R-squared: 0.7738, Adjusted R-squared: 0.7727
## F-statistic: 684.2 on 1 and 200 DF, p-value: < 2.2e-16
El intercepto estimado será solo una constante útil para el ajuste del modelo, dado que no es razonable pensar que el área construida de una vivienda tome el valor de 0.
Por otro lado la estimación de \(\hat\beta_1\)=1.21159 indica que cuando el área de la vivienda tiene un cambio de 1\(m^2\), hay un cambio de 1.21159 millones en el precio de la vivienda.
Podemos observar en el resumen del modelo que el valor p asociado a la prueba de signficancia es igual 0, por lo tanto concluimos que la variable independiente (área construida) es significativa para el modelo. Además tenemos un \(R^2\)=0.7738, es decir, que el modelo explica el 77,38% de la variabilidad de los precios de las viviendas del barrio El Ingenio.
Para verificar si hay relación lineal entre las variables, usaremos el diagrama de dispersión y el coeficiente de correlación de Pearson.
##
## Pearson's product-moment correlation
##
## data: basedatos$precio_millon and basedatos$Area_contruida
## t = 26.157, df = 200, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.8441191 0.9075068
## sample estimates:
## cor
## 0.8796618
En la figura anterior notamos que cuando al área construida es menor a 400\(m^2\), los datos parecen tener una tendencia creciente (a medida que aumenta el área aumenta el precio de la vivienda). Además el coeficiente de correlación es igual 0.8796618, que indica que hay una correlación positiva fuerte entre estas dos variables.
Para verificar este supuesto usaremos la prueba de Durbin-Watson. Donde el estadístico es de 1.923672 con un valor p asociado de 0.6. Por lo tanto, no hay evidencia suficiente para rechazar la hipótesis nula y por lo tanto los residuos son independientes.
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## lag Autocorrelation D-W Statistic p-value
## 1 0.02916275 1.923672 0.558
## Alternative hypothesis: rho != 0
El gráfico para comprobar la homocedasticidad es el ya conocido de Residuos frente a Valores ajustados.
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
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.
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## studentized Breusch-Pagan test
##
## data: mr
## BP = 46.496, df = 1, p-value = 9.183e-12
Para comprobar este supuesto, usaremos la prueba de Kolmogorov-Smirnov, donde se obtiene un estadistico de prueba 0.10619 y un valor p asociado de 0.02101, por lo tanto se rechaza la hipótesis nula y se concluye que los datos no siguen un distribución normal.
## [1] 75 125
##
## One-sample Kolmogorov-Smirnov test
##
## data: mr$residuals
## D = 0.10619, p-value = 0.02101
## alternative hypothesis: two-sided
Dado que no se cumple el suspuesto de homocedasticidad y normalidad, es necesario realizar una transformacion al modelo. Para esto usaremos el metódo de Box-Cox
l<-boxcox.rm$x[boxcox.rm$y ==max(boxcox.rm$y)]
l
## [1] 0.2012012
Estos resultados arrojan que \(\lambda\)=0.2012012, por lo tanto podemos realizar la siguiente transformacion al modelo:
rm2<-lm(precio_millon^l~Area_contruida, data= basedatos)
summary(rm2)
##
## Call:
## lm(formula = precio_millon^l ~ Area_contruida, data = basedatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.57302 -0.10417 -0.00491 0.09291 0.42248
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.032e+00 1.759e-02 172.31 <2e-16 ***
## Area_contruida 1.556e-03 7.002e-05 22.22 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1591 on 200 degrees of freedom
## Multiple R-squared: 0.7118, Adjusted R-squared: 0.7103
## F-statistic: 493.9 on 1 and 200 DF, p-value: < 2.2e-16
Ahora procedemos a hacer el análisis de los residuos del modelo transformado:
## [1] 1 20
##
## One-sample Kolmogorov-Smirnov test
##
## data: rm2$residuals
## D = 0.042428, p-value = 0.8603
## alternative hypothesis: two-sided
##
## studentized Breusch-Pagan test
##
## data: rm2
## BP = 35.776, df = 1, p-value = 2.214e-09
Podemos observar que pese a realizar la transformación de box cox en el modelo, no se corrigió la heterocedasticidad, por el contrario a través de la prueba de normalidad de Kolmogorov-Smirnov, pudimos encontrar que la normalidad se corrigió, ya que el valor p asociado a dicha prueba es mayor al nivel de significancia 0.05, por lo tanto no se rechaza la hipótesis nula. A pesar de la transformación propuesta uno de los supuestos no se cumple, por lo tanto las estimaciones de precio de vivienda que se realicen con este modelo no serian confiables.
Se presenta la estimación de un modelo de regresión multiple cuya variable dependiente será el precio de la vivienda (millón) y las variables independiente serán área construida y tipo de vivienda (\(m^2\)).
Teniendo como base tipo Casa, la variable Tipo de vivienda se define como sigue:
{ \[\begin{array}{lcc} 1 & si & Casa \\ \\ 0 & si & Apartamento \end{array}\]\
Tipo<-as.factor(basedatos$Tipo)
mc<-lm(precio_millon~Area_contruida + Tipo, data= basedatos)
summary(mc)
##
## Call:
## lm(formula = precio_millon ~ Area_contruida + Tipo, data = basedatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -277.45 -48.20 -9.33 53.92 491.45
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 196.11964 10.91567 17.967 < 2e-16 ***
## Area_contruida 1.02197 0.05616 18.196 < 2e-16 ***
## TipoCasa 99.24986 18.63125 5.327 2.69e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 98.68 on 199 degrees of freedom
## Multiple R-squared: 0.802, Adjusted R-squared: 0.8
## F-statistic: 403.1 on 2 and 199 DF, p-value: < 2.2e-16
Como se dijo anteriormente el intercepto se entiende unicamente como una constante útil para el ajuste del modelo cuya estimación es \(\hat\beta_0\)=196.11964.
De las pruebas individuales t, podemos concluir que área construida y tipo tienen un aporte significativo para el modelo (los valores p asociados son apróximadamente cero lo que nos lleva a rechazar la afirmación en la que se planteaba que las variables no contribuyen al modelo significativamente). Se obtuvo que el coeficiente de determinación \(R^2\)=0.802, así que puede afirmarse que el 80,2 % de la variabilidad de los precios de las viviendas es explicada por las variables área construida y tipo. Adicionalmente, podemos observar que por cada metro cuadrado construido el precio de la vivienda aumenta en 1.02197 millones. Cuando la vivienda es de tipo Casa, el precio aumenta en 99.24986 millones.
Procedemos a hacer la verificación de los supuestos ya que el no cumplimiento de ellos repercute negativamente en la utilidad del modelo al momento de hacer estimaciones y pérdida de propiedades importantes.
## lag Autocorrelation D-W Statistic p-value
## 1 0.01611636 1.965013 0.742
## Alternative hypothesis: rho != 0
##
## studentized Breusch-Pagan test
##
## data: mc
## BP = 38.517, df = 2, p-value = 4.326e-09
## [1] 75 125
##
## One-sample Kolmogorov-Smirnov test
##
## data: mc$residuals
## D = 0.085829, p-value = 0.102
## alternative hypothesis: two-sided
Con los resultados anteriores, se obtuvo que el supuesto de varianza constante no se cumple, por lo tanto las estimaciones que se hagan con el modelo de regresión categórica para el precio de la vivienda no serán sensatas.
Dado que no se cumple el suspuesto de homoscedasticidad, se realiza una transformacion al modelo el cual será el metódo de Box-Cox
l2<-boxcox.rm2$x[boxcox.rm2$y ==max(boxcox.rm2$y)]
l2
## [1] 0.05705706
Donde se tiene que \(\lambda\)=0.05705706, así que procedemos a realizar la siguiente transformacion al modelo:
mc2<-lm(precio_millon^l2~Area_contruida+Tipo, data= basedatos)
summary(mc2)
##
## Call:
## lm(formula = precio_millon^l2 ~ Area_contruida + Tipo, data = basedatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.041480 -0.009646 -0.001321 0.013033 0.049516
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.371e+00 1.833e-03 748.262 < 2e-16 ***
## Area_contruida 1.300e-04 9.429e-06 13.789 < 2e-16 ***
## TipoCasa 2.581e-02 3.128e-03 8.253 2.1e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01657 on 199 degrees of freedom
## Multiple R-squared: 0.7717, Adjusted R-squared: 0.7694
## F-statistic: 336.4 on 2 and 199 DF, p-value: < 2.2e-16
Ahora procedemos a hacer el análisis de los residuos del modelo transformado:
## [1] 1 97
##
## One-sample Kolmogorov-Smirnov test
##
## data: mc2$residuals
## D = 0.051787, p-value = 0.6507
## alternative hypothesis: two-sided
##
## studentized Breusch-Pagan test
##
## data: mc2
## BP = 9.917, df = 2, p-value = 0.007023
Realizando la transformación de Box Cox, el supuesto de varianza constante no se cumple. Por lo tanto el modelo transformado no es útil para estimar el precio de las viviendas.
Los resultados de la prueba t sobre la variable tipo obtenidos en el resumen del modelo categórico,nos arroja que dicha variable es significativa para el modelo (valor p<0.05). Para comprobar el resultado anterior, usaremos el ANOVA, cuya hipótesis son:
\(H_o\):\(b2=0\)
\(H_1\):\(b2\neq0\)
anova(mr,mc)
## Analysis of Variance Table
##
## Model 1: precio_millon ~ Area_contruida
## Model 2: precio_millon ~ Area_contruida + Tipo
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 200 2214303
## 2 199 1937949 1 276354 28.378 2.687e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Donde se obtiene un estadistico de prueba de 28.378 con un valor p asociado igual a 0, por lo tanto se rechaza la hipótesis nula, es decir que la variable tipo es significativa para el modelo y no debe ser retirada.
Para llevar a cabo este modelo de regresión, realizaremos la transformación sugerida a la variable edad, obteniendo lo siguiente:
## datos.V1 datos.V2 edad
## 1 106 43 -16.98333
## 2 106 41 -18.98333
## 3 97 47 -12.98333
## 4 113 46 -13.98333
## 5 96 45 -14.98333
## 6 119 41 -18.98333
##
## Call:
## lm(formula = datos.V1 ~ poly(edad, 2, raw = TRUE), data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.086 -6.154 -1.088 6.220 20.578
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 82.935749 1.543146 53.745 <2e-16 ***
## poly(edad, 2, raw = TRUE)1 -1.183958 0.088633 -13.358 <2e-16 ***
## poly(edad, 2, raw = TRUE)2 0.014840 0.008357 1.776 0.0811 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8.026 on 57 degrees of freedom
## Multiple R-squared: 0.7632, Adjusted R-squared: 0.7549
## F-statistic: 91.84 on 2 and 57 DF, p-value: < 2.2e-16
El modelo explica el 76,32% de la variabilidad de los datos de masa. Por otro lado, en el grafico de dispersión observamos que los datos no siguen una forma cuadrática, por lo que podriamos pensar que una regresión cuadratica no sería idonea.
En el modelo de regresión cuadrática, obtuvimos un \(\hat\beta_1\)=-1.183958, es decir que por una unidad (año) que aumenta en la variable edad, la masa de la persona disminuye 1.183958.
Los resultados de la prueba t sobre la variable al cuadrado obtenidos en el resumen del modelo, nos indican que se acepta la hipótesis nula, es decir, que el término cuadrático no tiene un aporte signficativo en el modelo. Sin embargo este resultado no es suficiente para decidir si se elimina dicha variable dado que las pruebas t son individuales. Para determinar si el termino cuadrático se debe eliminar o no del modelo, usaremos el ANOVA, cuya hipótesis son:
\(H_o\):\(b11=0\)
\(H_1\):\(b11\neq0\)
Para esto, es necesario establecer el modelo reducido, que será el siguiente:
ms<-lm(datos.V1~edad, data = datos)
anova(ms,mca)
## Analysis of Variance Table
##
## Model 1: datos.V1 ~ edad
## Model 2: datos.V1 ~ poly(edad, 2, raw = TRUE)
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 58 3874.4
## 2 57 3671.3 1 203.13 3.1538 0.08109 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
En el resultado anterior, observamos que no hay evidencia suficiente para rechazar la hipótesis nula (F=3.1538, valor p>0.05) es decir que se retira el termino cuadratico del modelo puesto que no aporta significativamente al mismo.
## corrplot 0.84 loaded
Donde sedad es la variable edad sin transformar y sedad2 es dicha variable al cuadrado. Mientras que edad es la variable transformada y edad2 es esta variable al cuadrado.
A través de la matriz de correlación, donde tenemos las variables transformadas y sin transformar, podemos ver que las variables sedad y sedad2 presentan un correlacion perfecta (R=1), mientras que las variables edad y edad2 no presentan relación entre ellas (R=0), es decir que al aplicar la transformación sugerida se corrige la multicolinealidad.