library(devtools)
## Warning: package 'devtools' was built under R version 4.3.1
## Loading required package: usethis
## Warning: package 'usethis' was built under R version 4.3.1
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.3.1
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.1
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(MASS)
install.packages("devtools")
## Warning: package 'devtools' is in use and will not be installed
devtools::install_github("dgonxalex80/paqueteMETODOS")
## Skipping install of 'paqueteMETODOS' from a github remote, the SHA1 (9696ffdc) has not changed since last install.
## Use `force = TRUE` to force installation
library(paqueteMETODOS)
## Loading required package: cubature
## Warning: package 'cubature' was built under R version 4.3.1
## Loading required package: GGally
## Warning: package 'GGally' was built under R version 4.3.1
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.1
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
## Loading required package: summarytools
## Warning: package 'summarytools' was built under R version 4.3.1
## Loading required package: psych
## Warning: package 'psych' was built under R version 4.3.1
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
## Loading required package: tidyverse
## Warning: package 'tidyverse' was built under R version 4.3.1
## Warning: package 'tidyr' was built under R version 4.3.1
## Warning: package 'readr' was built under R version 4.3.1
## Warning: package 'purrr' was built under R version 4.3.1
## Warning: package 'forcats' was built under R version 4.3.1
## Warning: package 'lubridate' was built under R version 4.3.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ psych::%+%() masks ggplot2::%+%()
## ✖ psych::alpha() masks ggplot2::alpha()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ dplyr::select() masks MASS::select()
## ✖ tibble::view() masks summarytools::view()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data(vivienda4)
summarytools::descr(vivienda4)
## Non-numerical variable(s) ignored: zona, estrato, tipo
## Descriptive Statistics
## vivienda4
## N: 1706
##
## areaconst preciom
## ----------------- ----------- ---------
## Mean 87.63 225.37
## Std.Dev 36.35 85.89
## Min 40.00 78.00
## Q1 60.00 160.00
## Median 75.00 210.00
## Q3 98.00 265.00
## Max 200.00 760.00
## MAD 22.24 75.61
## IQR 38.00 105.00
## CV 0.41 0.38
## Skewness 1.53 1.49
## SE.Skewness 0.06 0.06
## Kurtosis 1.68 3.57
## N.Valid 1706.00 1706.00
## Pct.Valid 100.00 100.00
faltantes <- colSums(is.na(vivienda4))
faltantes
## zona estrato preciom areaconst tipo
## 0 0 0 0 0
No existen datos faltantes en este dataset.
summarytools::descr(vivienda4$preciom)
## Descriptive Statistics
## vivienda4$preciom
## N: 1706
##
## preciom
## ----------------- ---------
## Mean 225.37
## Std.Dev 85.89
## Min 78.00
## Q1 160.00
## Median 210.00
## Q3 265.00
## Max 760.00
## MAD 75.61
## IQR 105.00
## CV 0.38
## Skewness 1.49
## SE.Skewness 0.06
## Kurtosis 3.57
## N.Valid 1706.00
## Pct.Valid 100.00
shapiro.test(vivienda4$preciom)
##
## Shapiro-Wilk normality test
##
## data: vivienda4$preciom
## W = 0.8896, p-value < 2.2e-16
boxplot(vivienda4$preciom, xlab = "Precio viviendas", ylab = "Valor en millones",
las=1)
hist(vivienda4$preciom,freq = F)
lines(density(vivienda4$preciom))
El precio promedio de las viviendas de estrato 4 es $225.37 millones. El valor mínimo de es $78 millones y el valor máximo de $760 millones. El Q1 corresponde a $160 millones y el Q3 a $265 millones, lo que resulta en un rango intercuartil de $105 millones, es decir, el 50% de las viviendas se encuentran en ese rango de precio. Este conjunto de datos tiene un Skewness positivo con la media siendo superior a la mediana, lo cual indica que los datos tienen una distribución sesgada hacia la derecha, es decir, los precios de las viviendas tienden hacia el lado inferior, o en otras palabras, no existe una distribución normal en la que la mitad de las viviendas tengan valores por encima de la media y la otra mitad la tenga por debajo de la media. El coeficiente de Kurtosis con un valor superior a 3 indica que, comparado a una distribución normal, los datos tienen una distribución con influencia hacia los extremos o con valores que no están agrupados alrededor de la media. Esto significa que existe una alta probabilidad de obtener valores atípicos en su distribución, lo cual es posible apreciar en la gráfica.
Se generan dos conjuntos de datos considerando el tipo de vivienda, esto con el fin de realizar un análisis más detallado entendiendo que cada tipo de vivienda tiene características diferentes y deben ser analizados de manera independiente.
vivienda_apto = subset(vivienda4, vivienda4$tipo=="Apartamento")
vivienda_casa = subset(vivienda4, vivienda4$tipo=="Casa")
summarytools::descr(vivienda_casa$preciom)
## Descriptive Statistics
## vivienda_casa$preciom
## N: 343
##
## preciom
## ----------------- ---------
## Mean 316.52
## Std.Dev 96.79
## Min 125.00
## Q1 255.00
## Median 300.00
## Q3 360.00
## Max 760.00
## MAD 74.13
## IQR 105.00
## CV 0.31
## Skewness 1.10
## SE.Skewness 0.13
## Kurtosis 2.43
## N.Valid 343.00
## Pct.Valid 100.00
shapiro.test(vivienda_casa$preciom)
##
## Shapiro-Wilk normality test
##
## data: vivienda_casa$preciom
## W = 0.94116, p-value = 1.993e-10
boxplot(vivienda_casa$preciom, xlab = "Precio Casas", ylab = "Valor en millones",
las=1)
hist(vivienda_casa$preciom,freq = F)
lines(density(vivienda_casa$preciom))
Para las viviendas tipo “Casa” de estrato 4 se tiene un precio promedio de $316.52 millones y una desviación estándar de $96.79 millones. El valor mínimo de es $125 millones y el valor máximo de $760 millones. El Q1 corresponde a $255 millones y el Q3 a $360 millones, lo que resulta en un rango intercuartil de $105 millones, es decir, el 50% de las casas se encuentran en ese rango de precio. Este conjunto de datos tiene un Skewness positivo con la media siendo superior a la mediana, lo cual indica que los datos tienen una distribución sesgada hacia la derecha, es decir, los precios de las casas tienden hacia el lado inferior. El coeficiente de Kurtosis con un valor inferior a 3 indica que la mayoría de los precios están presentes cercanos a la media y que los datos tienen una distribución con poca presencia de valores atípicos.
summarytools::descr(vivienda_apto$preciom)
## Descriptive Statistics
## vivienda_apto$preciom
## N: 1363
##
## preciom
## ----------------- ---------
## Mean 202.44
## Std.Dev 65.29
## Min 78.00
## Q1 153.00
## Median 185.00
## Q3 240.00
## Max 645.00
## MAD 59.30
## IQR 86.50
## CV 0.32
## Skewness 1.44
## SE.Skewness 0.07
## Kurtosis 3.83
## N.Valid 1363.00
## Pct.Valid 100.00
shapiro.test(vivienda_apto$preciom)
##
## Shapiro-Wilk normality test
##
## data: vivienda_apto$preciom
## W = 0.89881, p-value < 2.2e-16
boxplot(vivienda_casa$preciom, xlab = "Precio Apartamentos", ylab = "Valor en millones",
las=1)
hist(vivienda_apto$preciom,freq = F)
lines(density(vivienda_apto$preciom))
Para las viviendas tipo “Apartamento” de estrato 4 se tiene un precio promedio de $202.04 millones y una desviación estándar de $62.59 millones. El valor mínimo de es $78 millones y el valor máximo de $645 millones. El Q1 corresponde a $153 millones y el Q3 a $240 millones, lo que resulta en un rango intercuartil de $86.5 millones, es decir, el 50% de los apartamentos se encuentran en ese rango de precio. Este conjunto de datos tiene un Skewness positivo con la media siendo superior a la mediana, lo cual indica que los datos tienen una distribución sesgada hacia la derecha, es decir, los precios de los apartamentos tienden hacia el lado inferior. El coeficiente de Kurtosis con un valor superior a 3 indica que, comparado a una distribución normal, los datos tienen una distribución con influencia hacia los extremos o con valores que no están agrupados alrededor de la media. Esto significa que existe una alta probabilidad de obtener valores atípicos en su distribución, lo cual es posible apreciar en la gráfica.
summarytools::descr(vivienda4$areaconst)
## Descriptive Statistics
## vivienda4$areaconst
## N: 1706
##
## areaconst
## ----------------- -----------
## Mean 87.63
## Std.Dev 36.35
## Min 40.00
## Q1 60.00
## Median 75.00
## Q3 98.00
## Max 200.00
## MAD 22.24
## IQR 38.00
## CV 0.41
## Skewness 1.53
## SE.Skewness 0.06
## Kurtosis 1.68
## N.Valid 1706.00
## Pct.Valid 100.00
shapiro.test(vivienda4$areaconst)
##
## Shapiro-Wilk normality test
##
## data: vivienda4$areaconst
## W = 0.8168, p-value < 2.2e-16
boxplot(vivienda4$areaconst, xlab = "Área construida", ylab = "metros cuadrados",
las=1)
hist(vivienda4$areaconst,freq = F)
lines(density(vivienda4$areaconst))
El área construida promedio de las viviendas de estrato 4 es 87.63 metros cuadrados (m2) y la desviación estándar de 36.35m2. El valor mínimo es 40 m2 y el valor máximo es 200 m2. El Q1 corresponde a 60 m2 y el Q3 a 98 m2, lo que resulta en un rango intercuartil de 38 m2, es decir, el 50% de las viviendas se encuentran en ese rango de área. Este conjunto de datos tiene un Skewness positivo con la media siendo superior a la mediana, lo cual indica que los datos tienen una distribución sesgada hacia la derecha, es decir, las áreas de las viviendas tienden hacia el lado inferior, o en otras palabras, no existe una distribución normal en la que la mitad de las viviendas tengan valores por encima de la media y la otra mitad la tenga por debajo de la media. El coeficiente de Kurtosis con un valor inferior a 3 indica que la mayoría de las áreas están presentes cercanas a la media y que los datos tienen una distribución con poca presencia de valores extremos.
summarytools::descr(vivienda_casa$areaconst)
## Descriptive Statistics
## vivienda_casa$areaconst
## N: 343
##
## areaconst
## ----------------- -----------
## Mean 135.92
## Std.Dev 40.39
## Min 54.00
## Q1 100.00
## Median 130.00
## Q3 170.00
## Max 200.00
## MAD 47.44
## IQR 70.00
## CV 0.30
## Skewness 0.05
## SE.Skewness 0.13
## Kurtosis -1.16
## N.Valid 343.00
## Pct.Valid 100.00
shapiro.test(vivienda_casa$areaconst)
##
## Shapiro-Wilk normality test
##
## data: vivienda_casa$areaconst
## W = 0.95342, p-value = 5.898e-09
boxplot(vivienda_casa$areaconst, xlab = "Área construida Casas", ylab = "metros cuadrados",
las=1)
hist(vivienda_casa$areaconst,freq = F)
lines(density(vivienda_casa$areaconst))
El área construida promedio de las casas de estrato 4 es 135.92 m2 y la desviación estándar de 40.39m2. El valor mínimo es 54 m2 y el valor máximo es 200 m2. El Q1 corresponde a 100 m2 y el Q3 a 170 m2, lo que resulta en un rango intercuartil de 70 m2, es decir, el 50% de las casas se encuentran en ese rango de área. Este conjunto de datos tiene un Skewness cercano a cero con la media siendo levemente superior a la mediana, lo cual indica que los datos tienen una distribución que se puede considerar normal, es decir, las áreas de las viviendas tienden a tener la mitad de las casas con valores por encima de la media y la otra mitad con valores por debajo de la media. El coeficiente de Kurtosis con un valor inferior a 0 indica una distribución aplanada sin valores extremos o atípicos.
summarytools::descr(vivienda_apto$areaconst)
## Descriptive Statistics
## vivienda_apto$areaconst
## N: 1363
##
## areaconst
## ----------------- -----------
## Mean 75.48
## Std.Dev 22.56
## Min 40.00
## Q1 60.00
## Median 70.00
## Q3 84.00
## Max 200.00
## MAD 14.83
## IQR 24.00
## CV 0.30
## Skewness 2.08
## SE.Skewness 0.07
## Kurtosis 6.32
## N.Valid 1363.00
## Pct.Valid 100.00
shapiro.test(vivienda_apto$areaconst)
##
## Shapiro-Wilk normality test
##
## data: vivienda_apto$areaconst
## W = 0.82347, p-value < 2.2e-16
boxplot(vivienda_apto$areaconst, xlab = "Área construida Apartamentos", ylab = "metros cuadrados",
las=1)
hist(vivienda_apto$areaconst,freq = F)
lines(density(vivienda_apto$areaconst))
El área construida promedio de los apartamentos de estrato 4 es de 75.48 m2 y la desviación estándar de 22.56m2. El valor mínimo es 40 m2 y el valor máximo es 200 m2. El Q1 corresponde a 60 m2 y el Q3 a 84 m2, lo que resulta en un rango intercuartil de 724 m2, es decir, el 50% de los apartamentos se encuentran en ese rango de área. Este conjunto de datos tiene un Skewness positivo con la media siendo superior a la mediana, lo cual indica que los datos tienen una distribución sesgada hacia la derecha, es decir, las áreas de los apartamentos tienden hacia el lado inferior. El coeficiente de Kurtosis con un valor muy superior a 3 indica que, comparado a una distribución normal, los datos tienen una distribución con influencia hacia los extremos o con valores que no están agrupados alrededor de la media. Esto significa que existe una alta probabilidad de obtener valores atípicos en su distribución, lo cual es posible apreciar en la gráfica.
plot(vivienda4$areaconst,vivienda4$preciom,
xlab = "Área (m2)",
ylab = "Precio Viviendas (millones COP)",
col="#447270",
las=1)
grid()
cor(vivienda4$areaconst,vivienda4$preciom)
## [1] 0.7630166
cor.test(vivienda4$areaconst,vivienda4$preciom)
##
## Pearson's product-moment correlation
##
## data: vivienda4$areaconst and vivienda4$preciom
## t = 48.728, df = 1704, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.7424432 0.7821521
## sample estimates:
## cor
## 0.7630166
El coeficiente de correlación de Pearson obtenido para estas dos variables es de 0.76, lo cual indica una asociación lineal positiva entre moderada y fuerte La asociación positiva indica que a mayor área, mayor será el precio de la vivienda.
plot(vivienda_casa$areaconst,vivienda_casa$preciom,
xlab = "Área (m2)",
ylab = "Precio Casas (millones COP)",
col="#447270",
las=1)
grid()
cor.test(vivienda_casa$areaconst,vivienda_casa$preciom)
##
## Pearson's product-moment correlation
##
## data: vivienda_casa$areaconst and vivienda_casa$preciom
## t = 10.701, df = 341, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.4176778 0.5766731
## sample estimates:
## cor
## 0.5013964
El coeficiente de correlación de Pearson obtenido para estas dos variables es de 0.50, lo cual indica una asociación lineal positiva moderada. La asociación positiva indica que a mayor área, mayor será el precio de la casa.
plot(vivienda_apto$areaconst,vivienda_apto$preciom,
xlab = "Área (m2)",
ylab = "Precio Apartamentos (millones COP)",
col="#447270",
las=1)
grid()
cor.test(vivienda_apto$areaconst,vivienda_apto$preciom)
##
## Pearson's product-moment correlation
##
## data: vivienda_apto$areaconst and vivienda_apto$preciom
## t = 41.595, df = 1361, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.7237938 0.7706237
## sample estimates:
## cor
## 0.7481389
El coeficiente de correlación de Pearson obtenido para estas dos variables es de 0.74, lo cual indica una asociación lineal positiva entre moderada y fuerte. La asociación positiva indica que a mayor área, mayor será el precio del apartamento.
El modelo de regresión lineal tiene la siguiete ecuación de
referencia:
y = β0 + β1 x + ε donde, x es la variable independiente conocida, en
este caso el área construida en m2 y la variable dependiente, en este
caso el precio de la vivienda β0 es el intercepto en el eje y β1 es la
pendiente ε variable aleatori desconocida
modRLS_Pre_Are = lm(preciom ~ areaconst, data = vivienda4)
summary(modRLS_Pre_Are)
##
## Call:
## lm(formula = preciom ~ areaconst, data = vivienda4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -195.86 -31.95 -8.95 27.87 431.17
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.381 3.510 19.20 <2e-16 ***
## areaconst 1.803 0.037 48.73 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 55.53 on 1704 degrees of freedom
## Multiple R-squared: 0.5822, Adjusted R-squared: 0.5819
## F-statistic: 2374 on 1 and 1704 DF, p-value: < 2.2e-16
El precio para una vivienda con área de “0m2” o intercepto con el eje y es de 67.38m2, valor para beta β0. El valor p de β0 es 2e-16 < 0.05 –> rechazo Ho: β0=0 El valor de beta β1 = 1.803 que es equivalente a la pendiente, que se interpreta al aumento en el precio por unidad de área construida. El R-cuadrado o coeficiente de determinación del modelo es de 0.58, lo cual indica que el 58% de la variación del precio se explica por la variación del área construida.
modRLS_Pre_Are_c = lm(preciom ~ areaconst, data = vivienda_casa)
summary(modRLS_Pre_Are_c)
##
## Call:
## lm(formula = preciom ~ areaconst, data = vivienda_casa)
##
## Residuals:
## Min 1Q Median 3Q Max
## -158.71 -52.01 -17.93 40.25 414.54
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 153.2252 15.9174 9.626 <2e-16 ***
## areaconst 1.2015 0.1123 10.701 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 83.87 on 341 degrees of freedom
## Multiple R-squared: 0.2514, Adjusted R-squared: 0.2492
## F-statistic: 114.5 on 1 and 341 DF, p-value: < 2.2e-16
El precio para una casa con área de “0m2” o intercepto con el eje y es de 153.22m2, valor para beta β0. El valor p de β0 es 2e-16 < 0.05 –> rechazo Ho: β0=0 El valor de beta β1 = 1.2 que es equivalente a la pendiente, que se interpreta al aumento en el precio por unidad de área construida. El R-cuadrado o coeficiente de determinación del modelo es de 0.24, lo cual indica que el 24% de la variación del precio se explica por la variación del área construida.
modRLS_Pre_Are_a = lm(preciom ~ areaconst, data = vivienda_apto)
summary(modRLS_Pre_Are_a)
##
## Call:
## lm(formula = preciom ~ areaconst, data = vivienda_apto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -225.404 -23.902 -4.754 25.763 209.021
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 39.04679 4.09977 9.524 <2e-16 ***
## areaconst 2.16473 0.05204 41.595 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 43.34 on 1361 degrees of freedom
## Multiple R-squared: 0.5597, Adjusted R-squared: 0.5594
## F-statistic: 1730 on 1 and 1361 DF, p-value: < 2.2e-16
El precio para un apartamento con área de “0m2” o intercepto con el eje y es de 39.04m2, valor para beta β0. El valor p de β0 es 2e-16 < 0.05 –> rechazo Ho: β0=0 El valor de beta β1 = 2.16 que es equivalente a la pendiente, que se interpreta al aumento en el precio por unidad de área construida. El R-cuadrado o coeficiente de determinación del modelo es de 0.55, lo cual indica que el 55% de la variación del precio se explica por la variación del área construida.
confint(modRLS_Pre_Are)
## 2.5 % 97.5 %
## (Intercept) 60.496208 74.265055
## areaconst 1.730404 1.875547
confint(object = modRLS_Pre_Are, parm="areaconst", level = 0.95)
## 2.5 % 97.5 %
## areaconst 1.730404 1.875547
t.test(modRLS_Pre_Are$residuals)
##
## One Sample t-test
##
## data: modRLS_Pre_Are$residuals
## t = -5.0997e-15, df = 1705, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -2.636165 2.636165
## sample estimates:
## mean of x
## -6.85424e-15
confint(modRLS_Pre_Are_c)
## 2.5 % 97.5 %
## (Intercept) 121.916592 184.533755
## areaconst 0.980623 1.422293
confint(object = modRLS_Pre_Are_c, parm="areaconst", level = 0.95)
## 2.5 % 97.5 %
## areaconst 0.980623 1.422293
t.test(modRLS_Pre_Are_c$residuals)
##
## One Sample t-test
##
## data: modRLS_Pre_Are_c$residuals
## t = -3.1346e-15, df = 342, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -8.893851 8.893851
## sample estimates:
## mean of x
## -1.417395e-14
confint(modRLS_Pre_Are_a)
## 2.5 % 97.5 %
## (Intercept) 31.00423 47.089340
## areaconst 2.06264 2.266826
confint(object = modRLS_Pre_Are_a, parm="areaconst", level = 0.95)
## 2.5 % 97.5 %
## areaconst 2.06264 2.266826
t.test(modRLS_Pre_Are_a$residuals)
##
## One Sample t-test
##
## data: modRLS_Pre_Are_a$residuals
## t = 2.4851e-16, df = 1362, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -2.301997 2.301997
## sample estimates:
## mean of x
## 2.916219e-16
En estos los casos el coeficiente no fue igual a 0 dado el valor t obtenido en comparación al p-value.
Para el modelo de regresión Lineal Simple entre viviendas y área: El R-cuadrado o coeficiente de determinación del modelo es de 0.58, lo cual indica que el 58% de la variación del precio se explica por la variación del área construida, equivale a una relación fuerte.
Para el modelo de regresión Lineal Simple entre casas y área: El R-cuadrado o coeficiente de determinación del modelo es de 0.24, lo cual indica que el 24% de la variación del precio se explica por la variación del área construida, equivale a una relación entre moderada y débil.
Para el modelo de regresión Lineal Simple entre apartamentos y área: El R-cuadrado o coeficiente de determinación del modelo es de 0.55, lo cual indica que el 55% de la variación del precio se explica por la variación del área construida, equivale a una relación fuerte.
¿Cuál sería el precio promedio estimado para un apartamento de 110 metros cuadrados?
Si se aplica el modelo de RLS de viviendas -> modRLS_Pre_Are
predict(modRLS_Pre_Are, data.frame(areaconst=110), interval = "confidence", level = 0.95)
## fit lwr upr
## 1 265.7079 262.6113 268.8046
predict(modRLS_Pre_Are, data.frame(areaconst=110), interval = "prediction", level = 0.95)
## fit lwr upr
## 1 265.7079 156.7484 374.6675
Usando el modelo de RLS de viviendas se estima con una confianza del 95% que un apartamento de 110 m2 tendría un valor entre 262.6 y 268.8 millones, con un valor estimado de 265.7 millones.
Si se aplica el modelo de RLS de apartamentos -> modRLS_Pre_Are_a
predict(modRLS_Pre_Are_a, data.frame(areaconst=110), interval = "confidence", level = 0.95)
## fit lwr upr
## 1 277.1674 272.9573 281.3775
predict(modRLS_Pre_Are_a, data.frame(areaconst=110), interval = "prediction", level = 0.95)
## fit lwr upr
## 1 277.1674 192.0449 362.2899
Usando el modelo de RLS de apartamentos se estima con una confianza del 95% que un apartamento de 110 m2 tendría un valor entre 272.9 y 281.3 millones, con un valor estimado de 277.1 millones.
Una oferta por 200 millones para un apartamento con ese metraje se considera que es una oferta muy atractiva por su valor.
Como consideraciones adicionales se tendría que tener en cuenta que los modelos RLS se obtuvieron sin considerar la zona, lo cual significa que el valor promedio de los apartamentos puede variar también según su ubicación y la oferta podría ser menos atractiva si el promedio de la zona es inferior.
Para modelo de viviendas y área construida
hist(modRLS_Pre_Are$residuals)
par(mfrow = c(2,2))
plot(modRLS_Pre_Are)
Para modelo de apartamentos y área construida
hist(modRLS_Pre_Are_a$residuals)
par(mfrow = c(2,2))
plot(modRLS_Pre_Are_a)
Para modelo de viviendas
shapiro.test(modRLS_Pre_Are$residuals)
##
## Shapiro-Wilk normality test
##
## data: modRLS_Pre_Are$residuals
## W = 0.92671, p-value < 2.2e-16
bptest(modRLS_Pre_Are)
##
## studentized Breusch-Pagan test
##
## data: modRLS_Pre_Are
## BP = 152.8, df = 1, p-value < 2.2e-16
dwtest(modRLS_Pre_Are)
##
## Durbin-Watson test
##
## data: modRLS_Pre_Are
## DW = 1.6713, p-value = 5.124e-12
## alternative hypothesis: true autocorrelation is greater than 0
Acorde a los resultados de p-value del test de Shapiro-Wilk, se rechaza la hipótesis nula y se concluye que los errores no siguen una distribución normal.
Según el resultado de p-value del test Breusch-Pagan, la varianza del error no es constante a través de la linea de regresión para la variable independiente.
Los resultados del test de Durbin-Watson indican que hay autocorrelación positiva en los residuales del modelo, es decir, no son independientes unos de otros y existe un patrón en el error en observaciones diferentes.
Para modelo de casas
shapiro.test(modRLS_Pre_Are_c$residuals)
##
## Shapiro-Wilk normality test
##
## data: modRLS_Pre_Are_c$residuals
## W = 0.91197, p-value = 2.872e-13
bptest(modRLS_Pre_Are_c)
##
## studentized Breusch-Pagan test
##
## data: modRLS_Pre_Are_c
## BP = 1.8968, df = 1, p-value = 0.1684
dwtest(modRLS_Pre_Are_c)
##
## Durbin-Watson test
##
## data: modRLS_Pre_Are_c
## DW = 1.7073, p-value = 0.003161
## alternative hypothesis: true autocorrelation is greater than 0
Para el modelo de RLS basado en los datos de casas las pruebas de hipótesis dan resultados similares respecto a no seguir una distribución normal y la existencia de autocorrelación positiva. Respecto a la Homoscedasticidad, se puede asumir que la varianza es constante a través de la línea de regresión.
Para modelo de apartamentos
shapiro.test(modRLS_Pre_Are_a$residuals)
##
## Shapiro-Wilk normality test
##
## data: modRLS_Pre_Are_a$residuals
## W = 0.96486, p-value < 2.2e-16
bptest(modRLS_Pre_Are_a)
##
## studentized Breusch-Pagan test
##
## data: modRLS_Pre_Are_a
## BP = 292.99, df = 1, p-value < 2.2e-16
dwtest(modRLS_Pre_Are_a)
##
## Durbin-Watson test
##
## data: modRLS_Pre_Are_a
## DW = 1.443, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Los resultados son similares al modelo de viviendas.
Se sugiere intentar una transformación de variables del tipo Box-Cox.
Se aplica transformación de variables para el modelo de RLS de viviendas (modRLS_Pre_Are) de los tipos: Lin-Log, Log-Lin y Log-Log. También se aplica el método de transformación Box-Cox.
Transformaciones Lin-Log, Log-Lin y Log-Log
summary(modRLS_Pre_Are)
##
## Call:
## lm(formula = preciom ~ areaconst, data = vivienda4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -195.86 -31.95 -8.95 27.87 431.17
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.381 3.510 19.20 <2e-16 ***
## areaconst 1.803 0.037 48.73 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 55.53 on 1704 degrees of freedom
## Multiple R-squared: 0.5822, Adjusted R-squared: 0.5819
## F-statistic: 2374 on 1 and 1704 DF, p-value: < 2.2e-16
modRLS_Pre_Are_LinLog = lm(preciom ~ log(areaconst), data = vivienda4)
summary(modRLS_Pre_Are_LinLog)
##
## Call:
## lm(formula = preciom ~ log(areaconst), data = vivienda4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -192.72 -27.27 -3.56 23.58 419.52
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -610.083 16.085 -37.93 <2e-16 ***
## log(areaconst) 189.708 3.641 52.11 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 53.35 on 1704 degrees of freedom
## Multiple R-squared: 0.6144, Adjusted R-squared: 0.6142
## F-statistic: 2715 on 1 and 1704 DF, p-value: < 2.2e-16
modRLS_Pre_Are_LogLin = lm(log(preciom) ~ areaconst, data = vivienda4)
summary(modRLS_Pre_Are_LogLin)
##
## Call:
## lm(formula = log(preciom) ~ areaconst, data = vivienda4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.80097 -0.16347 -0.02737 0.16610 1.14818
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.7238296 0.0143492 329.21 <2e-16 ***
## areaconst 0.0072020 0.0001513 47.61 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.227 on 1704 degrees of freedom
## Multiple R-squared: 0.5709, Adjusted R-squared: 0.5706
## F-statistic: 2267 on 1 and 1704 DF, p-value: < 2.2e-16
modRLS_Pre_Are_LogLog = lm(log(preciom) ~ log(areaconst), data = vivienda4)
summary(modRLS_Pre_Are_LogLog)
##
## Call:
## lm(formula = log(preciom) ~ log(areaconst), data = vivienda4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.85459 -0.13422 -0.00746 0.13797 1.10104
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.91891 0.06281 30.55 <2e-16 ***
## log(areaconst) 0.78022 0.01422 54.88 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2083 on 1704 degrees of freedom
## Multiple R-squared: 0.6387, Adjusted R-squared: 0.6385
## F-statistic: 3012 on 1 and 1704 DF, p-value: < 2.2e-16
La transformación que dio un mejor resultado de R2 fue la Log-Log
bc = boxcox(lm(preciom ~ areaconst, data = vivienda4))
# lambda
lambda <- bc$x[which.max(bc$y)]
lambda
## [1] -0.1010101
nuevo_preciom = ((vivienda4$preciom ^ lambda) - 1 )/ lambda
modRLS_Pre_Are_boxcox = lm(nuevo_preciom ~ areaconst, data = vivienda4)
summary(modRLS_Pre_Are_boxcox)
##
## Call:
## lm(formula = nuevo_preciom ~ areaconst, data = vivienda4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.46721 -0.09421 -0.01425 0.09909 0.63617
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.769e+00 8.347e-03 451.57 <2e-16 ***
## areaconst 4.146e-03 8.799e-05 47.12 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.132 on 1704 degrees of freedom
## Multiple R-squared: 0.5658, Adjusted R-squared: 0.5655
## F-statistic: 2220 on 1 and 1704 DF, p-value: < 2.2e-16
De todas las transformaciones aplicadas al modelo de viviendas la de mejor resultado fue la del tipo Log-Log. log(Yi)=β0+β1log(Xi)+εi
Se aplica transformación de variables para el modelo de RLS de apartamentos (modRLS_Pre_Are_a) de los tipos: Lin-Log, Log-Lin y Log-Log. También se aplica el método de transformación Box-Cox.
Transformaciones Lin-Log, Log-Lin y Log-Log
summary(modRLS_Pre_Are_a)
##
## Call:
## lm(formula = preciom ~ areaconst, data = vivienda_apto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -225.404 -23.902 -4.754 25.763 209.021
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 39.04679 4.09977 9.524 <2e-16 ***
## areaconst 2.16473 0.05204 41.595 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 43.34 on 1361 degrees of freedom
## Multiple R-squared: 0.5597, Adjusted R-squared: 0.5594
## F-statistic: 1730 on 1 and 1361 DF, p-value: < 2.2e-16
modRLS_Pre_Are_a_LinLog = lm(preciom ~ log(areaconst), data = vivienda_apto)
summary(modRLS_Pre_Are_a_LinLog)
##
## Call:
## lm(formula = preciom ~ log(areaconst), data = vivienda_apto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -196.252 -21.338 -1.579 22.096 261.436
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -635.532 19.092 -33.29 <2e-16 ***
## log(areaconst) 195.419 4.445 43.97 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 41.98 on 1361 degrees of freedom
## Multiple R-squared: 0.5868, Adjusted R-squared: 0.5865
## F-statistic: 1933 on 1 and 1361 DF, p-value: < 2.2e-16
modRLS_Pre_Are_a_LogLin = lm(log(preciom) ~ areaconst, data = vivienda_apto)
summary(modRLS_Pre_Are_a_LogLin)
##
## Call:
## lm(formula = log(preciom) ~ areaconst, data = vivienda_apto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.98857 -0.13188 -0.01249 0.15595 0.66387
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.5512586 0.0194001 234.60 <2e-16 ***
## areaconst 0.0094530 0.0002463 38.38 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2051 on 1361 degrees of freedom
## Multiple R-squared: 0.5198, Adjusted R-squared: 0.5195
## F-statistic: 1473 on 1 and 1361 DF, p-value: < 2.2e-16
modRLS_Pre_Are_a_LogLog = lm(log(preciom) ~ log(areaconst), data = vivienda_apto)
summary(modRLS_Pre_Are_a_LogLog)
##
## Call:
## lm(formula = log(preciom) ~ log(areaconst), data = vivienda_apto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.8890 -0.1119 0.0028 0.1343 0.7538
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.48373 0.08703 17.05 <2e-16 ***
## log(areaconst) 0.88175 0.02026 43.52 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1914 on 1361 degrees of freedom
## Multiple R-squared: 0.5819, Adjusted R-squared: 0.5816
## F-statistic: 1894 on 1 and 1361 DF, p-value: < 2.2e-16
bc_apto = boxcox(lm(preciom ~ areaconst, data = vivienda_apto))
# lambda
lambda_apto <- bc_apto$x[which.max(bc_apto$y)]
lambda_apto
## [1] -0.06060606
nuevo_preciom_apto = ((vivienda_apto$preciom ^ lambda_apto) - 1 )/ lambda_apto
modRLS_Pre_Are_a_boxcox = lm(nuevo_preciom_apto ~ areaconst, data = vivienda_apto)
summary(modRLS_Pre_Are_a_boxcox)
##
## Call:
## lm(formula = nuevo_preciom_apto ~ areaconst, data = vivienda_apto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.71317 -0.09492 -0.00849 0.11447 0.47869
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.990726 0.014097 283.08 <2e-16 ***
## areaconst 0.006821 0.000179 38.12 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.149 on 1361 degrees of freedom
## Multiple R-squared: 0.5163, Adjusted R-squared: 0.5159
## F-statistic: 1453 on 1 and 1361 DF, p-value: < 2.2e-16
Para los modelos transformados de apartamentos el que tuvo mejor indicador de R2, con una leve mejoría en comparación al modelo inicial, fue el Lin-Log.
Para modelo de viviendas y área construida con transformación Log-Log
hist(modRLS_Pre_Are_LogLog$residuals)
par(mfrow = c(2,2))
plot(modRLS_Pre_Are_LogLog)
Pruebas de hipótesis para modelo de viviendas y área construida con transformación Log-Log
shapiro.test(modRLS_Pre_Are_LogLog$residuals)
##
## Shapiro-Wilk normality test
##
## data: modRLS_Pre_Are_LogLog$residuals
## W = 0.9934, p-value = 6.631e-07
bptest(modRLS_Pre_Are_LogLog)
##
## studentized Breusch-Pagan test
##
## data: modRLS_Pre_Are_LogLog
## BP = 65.105, df = 1, p-value = 7.101e-16
dwtest(modRLS_Pre_Are_LogLog)
##
## Durbin-Watson test
##
## data: modRLS_Pre_Are_LogLog
## DW = 1.5104, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Pruebas de hipótesis para modelo de viviendas y área construida con transformación Box-Cox
shapiro.test(modRLS_Pre_Are_boxcox$residuals)
##
## Shapiro-Wilk normality test
##
## data: modRLS_Pre_Are_boxcox$residuals
## W = 0.99385, p-value = 1.577e-06
bptest(modRLS_Pre_Are_boxcox)
##
## studentized Breusch-Pagan test
##
## data: modRLS_Pre_Are_boxcox
## BP = 39.473, df = 1, p-value = 3.326e-10
dwtest(modRLS_Pre_Are_boxcox)
##
## Durbin-Watson test
##
## data: modRLS_Pre_Are_boxcox
## DW = 1.4875, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
En ninguno de los casos se cumplen lo supuestos sobre los errores.
Se aplica el modelo tranformado para responder a la siguiente pregunta: ¿Cuál sería el precio promedio estimado para un apartamento de 110 metros cuadrados?
predict(modRLS_Pre_Are_LogLog, data.frame(areaconst=110), interval = "confidence", level = 0.95)
## fit lwr upr
## 1 5.586329 5.573436 5.599222
predict(modRLS_Pre_Are_LogLog, data.frame(areaconst=110), interval = "prediction", level = 0.95)
## fit lwr upr
## 1 5.586329 5.177556 5.995102
exp(predict(modRLS_Pre_Are_LogLog, data.frame(areaconst=110), interval = "confidence", level = 0.95))
## fit lwr upr
## 1 266.7546 263.3374 270.2162
exp(predict(modRLS_Pre_Are_LogLog, data.frame(areaconst=110), interval = "prediction", level = 0.95))
## fit lwr upr
## 1 266.7546 177.2492 401.4576
Usando el modelo de RLS de viviendas transformado se estima con una confianza del 95% que un apartamento de 110 m2 tendría un valor entre 263.3 y 270.2 millones, con un valor estimado de 266.7 millones.