La modelación estadística desempeña un papel fundamental en el sector de bienes raíces, ya que facilita la comprensión y predicción de las relaciones entre diversas variables que influyen en los precios y características de las propiedades. En este informe, exploraremos el enfoque del modelo de regresión lineal simple, un método estadístico empleado para investigar la relación entre una variable independiente, como el tamaño de la propiedad, y una variable dependiente, en este caso, el precio de venta. A través de la regresión lineal simple, es posible cuantificar y comprender cómo una variable impacta en la otra, lo que nos permite tomar decisiones más informadas acerca de los precios, inversiones y estrategias de mercado. En este proceso, nuestro objetivo será encontrar un modelo que se ajuste a los datos y cumpla con los supuestos necesarios para realizar predicciones precisas.
Cargar Librerías
En primer lugar, se cargan las librerías que utilizaremos durante toda la actividad para solucionar los 11 problemas. Adicionalmente establecemos desde el principio la configuración de las opciones de formato número. En este caso que evite la notación científica y que muestre números en notación decimal estándar.
library(dplyr)
library(tidyverse)
library(summarytools)
library(moments)
library(scales)
library(paqueteMETODOS)
library(devtools)
library(stargazer)
library(MASS)
options(scipen = 100, digits = 2)
Realice un análisis exploratorio de las variables precio de vivienda (millones de pesos COP) y área de la vivienda (metros cuadrados) - incluir gráficos e indicadores apropiados.
summary(vivienda4)
## zona estrato preciom areaconst tipo
## Zona Centro : 8 3: 0 Min. : 78 Min. : 40 Apartamento:1363
## Zona Norte : 288 4:1706 1st Qu.:160 1st Qu.: 60 Casa : 343
## Zona Oeste : 60 5: 0 Median :210 Median : 75
## Zona Oriente: 6 6: 0 Mean :225 Mean : 88
## Zona Sur :1344 3rd Qu.:265 3rd Qu.: 98
## Max. :760 Max. :200
descr(vivienda4)
## 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
summarytools::freq(vivienda4$zona)
## Frequencies
## vivienda4$zona
## Type: Factor
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ------------------ ------ --------- -------------- --------- --------------
## Zona Centro 8 0.47 0.47 0.47 0.47
## Zona Norte 288 16.88 17.35 16.88 17.35
## Zona Oeste 60 3.52 20.87 3.52 20.87
## Zona Oriente 6 0.35 21.22 0.35 21.22
## Zona Sur 1344 78.78 100.00 78.78 100.00
## <NA> 0 0.00 100.00
## Total 1706 100.00 100.00 100.00 100.00
summarytools::freq(vivienda4$tipo)
## Frequencies
## vivienda4$tipo
## Type: Factor
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------------- ------ --------- -------------- --------- --------------
## Apartamento 1363 79.89 79.89 79.89 79.89
## Casa 343 20.11 100.00 20.11 100.00
## <NA> 0 0.00 100.00
## Total 1706 100.00 100.00 100.00 100.00
En esta parte podemos observar 5 variables que componen la base vivienda4.
1.Zona
Es una variable categórica que representa diferentes ubicaciones de propiedades. La mayoría de las propiedades están en la “Zona Sur” con 1.344 observaciones (78,78%), seguida por la “Zona Norte” con 288 observaciones (16,88%). Estas dos zonas componen el 95.66% de las observaciones.Las otras zonas tienen un número menor de propiedades.
2.Estrato
Es una variable categórica que describe la clasificación socioeconómica de las propiedades. De acuerdo a los niveles de la base tenemos 3 estratos: 3, 4 y 5. Sin embargo, todaslas propiedades son estrato de 4.
3.preciom
Es una variable numérica que corresponde al precio de venta de la vivienda en millones de pesos COP. El valor mínimo es de 78, el 1° cuartil 160, la mediana 210, la media 225, el 3° cuartil 265 y el valor máximo es de 760. La desviación estándar es de 85.89. El coeficiente de asimetría es de 1.49 lo que sugiere una asimetría positiva en la distribución, la kurtosis es 3.57, lo que indica una distribución leptocúrtica (más picuda que la distribución normal). El Coeficiente de variación es de 38% lo que nos indica que los datos son heterogéneos y esto nos puede indicar que tal vez la media no es representativa.
4.areaconst
Es una variable numérica que corresponde al área de construcción de la propiedad en metros cuadrados, que incluyen el valor mínimo (40), el 1° cuartil (60), la mediana (75), la media (87.63), el 3° cuartil (98) y el valor máximo (200).La desviación estándar es de 36.35. El coeficiente de asimetría es de 1.53 lo que sugiere una asimetría positiva en la distribución, la kurtosis es 1.68, lo que indica una distribución leptocúrtica (más picuda que la distribución normal). El Coeficiente de variación es de 41% lo que nos indica que los datos son heterogéneos y esto nos puede indicar que tal vez la media no es representativa.
5.tipo
Es una variable categórica que describe el tipo de propiedad, como “Apartamento” y “Casa”. La mayoría de las propiedades son “Apartamentos” con 1.363 observaciones (79.89%), mientras que hay 343 observaciones de “Casas” (20.11%).
par(mfrow=c(1,2))
boxplot(vivienda4$areaconst, horizontal = FALSE, # Horizontal o vertical
lwd = 1, # Lines width
col = "#6495ED", # Color
xlab = "", # Etiqueta eje X
ylab = "Metros cuadrados", # Etiqueta eje Y
main = "Boxplot de Área Cuadrada", # Título
notch = TRUE, # Añade intervalos de confianza para la mediana
border = "black", # Color del borde del boxplot
outpch = 25, # Símbolo para los outliers
outbg = "#000080", # Color de los datos atípicos
whiskcol = "#CCCCFF", # Color de los bigotes
whisklty = 1, # Tipo de línea para los bigotes
lty = 1)
boxplot(vivienda4$preciom, horizontal = FALSE, # Horizontal o vertical
lwd = 1, # Lines width
col = "#C04000", # Color
xlab = "", # Etiqueta eje X
ylab = "Millones de Pesos COP", # Etiqueta eje Y
main = "Boxplot de Precio de Vivienda", # Título
notch = TRUE, # Añade intervalos de confianza para la mediana
border = "black", # Color del borde del boxplot
outpch = 25, # Símbolo para los outliers
outbg = "#722F37", # Color de los datos atípicos
whiskcol = "#C19A6B", # Color de los bigotes
whisklty = 1, # Tipo de línea para los bigotes
lty = 1)
BoxPlot Área Construida
Con ayuda del diagrama y con la información descriptiva de la variable, podemos evidenciar que la dispersión de los datos en el rango intercuartil (que contiene el 50% central de los datos) es relativamente pequeña, sin embargo, también existen demasiados valores atípicos y el rango entre el valor mínimo y máximo es considerable (aproximadamente 160 metros cuadrados), por lo tanto, esto está afectando la variabilidad de los datos y la distribución.
BoxPlot Precio
A diferencia del área construida, podemos evidenciar que para el precio la dispersión de los datos en el rango intercuartil (que contiene el 50% central de los datos) es pequeña, sin embargo, existen demasiados valores atípicos y el rango entre el valor mínimo y máximo es considerable (aproximadamente 682 millones de pesos COP), por lo tanto, esto está afectando la variabilidad de los datos y la distribución.
En el mercado de bienes raíces, suele observarse que a medida que el tamaño del área aumenta, el precio tiende a ser más elevado. En este punto, se evidencia que ambas variables presentan similitudes, lo que sugiere la posibilidad de una relación. No obstante, es imperativo continuar con un análisis más detenido para confirmar esta relación y comprender su alcance completo.
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 construida) - incluir gráficos e indicadores apropiados interpretados.
Aunque la relación en la que nos debemos enfocar es en la variable respuesta y predictora. Primero realizaré un análisis para obervar cómo se están relacionando todas las variables.
Zona
ggpairs(vivienda4, aes(color = zona, alpha = 0.5))
Como podemos observar en los precios de las viviendas, todas las zonas, a excepción de la zona centro, muestran la presencia de datos atípicos. La mayor variabilidad se evidencia en la Zona Oeste, mientras que la Zona Oriente exhibe la menor variabilidad. Es importante destacar que la Zona Sur concentra casi el 80% de las observaciones y, como consecuencia, la mayor cantidad de datos atípicos y el rango más amplio.
En lo que respecta al área de las viviendas, nuevamente, con excepción de la zona centro, todas las zonas presentan datos atípicos. Resulta interesante notar que, aunque la variabilidad en el precio es reducida en la Zona Oriente, esta zona presenta la mayor variabilidad en cuanto al tamaño del área. Una vez más, la Zona Sur sobresale al mostrar la mayor cantidad de datos atípicos y el rango más amplio.
El coeficiente de correlación, que asciende a 0.763, indica la existencia de una relación lineal positiva. En otras palabras, a medida que el área de la vivienda aumenta, también lo hace el precio. Sin embargo, aunque el coeficiente es cercano a 1, la relación no es extremadamente fuerte, por lo que es necesario continuar con un análisis más detallado.
Cuando desglosamos el coeficiente de correlación por zonas, observamos variaciones significativas. Para la zona centro, el coeficiente es de 0.756, mientras que en la zona norte es de 0.693, en la zona oeste es de 0.742, en la zona oriente es de 0.077, y la zona sur, que abarca el 80% de las observaciones, presenta un coeficiente de 0.788.
Tipo de Vivienda
ggpairs(vivienda4, aes(color = tipo, alpha = 0.5))
En lo que respecta a los precios de apartamentos y casas, observamos la presencia de datos atípicos y rangos bastante amplios. Sin embargo, es relevante notar que la variabilidad en el rango intercuartil es relativamente reducida.
En cuanto al área, tanto en apartamentos como en casas, también se presentan datos atípicos y rangos significativos. No obstante, la variabilidad en el rango intercuartil para los apartamentos es relativamente menor en comparación con las casas, donde se evidencia una variabilidad más marcada.
El coeficiente de correlación entre el precio y el área de los apartamentos asciende a 0.748, mientras que para las casas este coeficiente se sitúa en 0.501.
En el siguiente paso, hemos generado un gráfico de dispersión con el propósito de analizar la relación entre las variables de precio y área, así como para identificar posibles patrones.
plot(vivienda4$areaconst, vivienda4$preciom,
xlab = "Área (m2)", ylab = "Precio(millones de pesos COP)",
main = "Análisis Bivariado Área/Precio")
ggpairs(vivienda4[,3:4], title = "Análisis Bivariado")
Como se puede observar los gráficos nos indican que puede existir una relación lineal positiva. El coeficiente de correlación entre las 2 variables es de 0.763, que como mencione anteriormente nos indica que existe una relación lineal positiva, es decir,que a medida que incrmenta el área de la vivienda, también incrementa el precio.
Estime el modelo de regresión lineal simple entre precio=f(area)+ε. Interprete los coeficientes del modelo β0, β1 en caso de ser correcto.
modelo = lm(preciom~areaconst, data = vivienda4)
summary(modelo)
##
## Call:
## lm(formula = preciom ~ areaconst, data = vivienda4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -195.9 -32.0 -8.9 27.9 431.2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.381 3.510 19.2 <0.0000000000000002 ***
## areaconst 1.803 0.037 48.7 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 56 on 1704 degrees of freedom
## Multiple R-squared: 0.582, Adjusted R-squared: 0.582
## F-statistic: 2.37e+03 on 1 and 1704 DF, p-value: <0.0000000000000002
Residuals (Residuos)
Los residuos son las diferencias entre los valores observados y los valores predichos por el modelo. En este caso, los valores de los residuos varían desde -195.9 hasta 431.2. Esto indica que, en algunos casos, el modelo subestimó la variable de respuesta en hasta 431.2 unidades, mientras que en otros casos, la sobreestimó en hasta -195.9 unidades.
Coefficients (Coeficientes)
Intercept(β0): El coeficiente de intercepto es 67.381. Este valor representa el valor estimado de la variable de respuesta cuando todas las variables predictoras son iguales a cero. En este contexto, significa que cuando la variable “areaconst” es igual a cero (o no se aplica), el valor estimado del precio es de 67.381 millones de pesos COP.
areaconst(β1): El coeficiente de “areaconst” es 1.803. Esto significa que, manteniendo todas las demás variables constantes, un aumento de un metro cuadro en el área de la vivienda e asocia un aumento estimado de 1.803 millones de pesos COP.
Significance Codes (Códigos de Significancia)
Los códigos de significancia indican el nivel de significancia de los coeficientes. En este caso, se sugiere que los coeficientes son altamente significativos. Esto indica que hay evidencia sólida para afirmar que estos coeficientes no son iguales a cero.
Residual Standard Error (Error Estándar Residual)
El error estándar residual es 56. Este valor representa una estimación de la desviación estándar de los residuos, que es una medida de cuánto varían los valores observados con respecto a los valores predichos por el modelo.
Multiple R-squared (R-cuadrado múltiple)
El valor del R-cuadrado múltiple es 0.582. Indica la proporción de la variabilidad del precio de la vivienda que es explicada por el modelo. En este caso, aproximadamente el 58.2% de la variabilidad en la variable de respuesta se explica por el modelo.
Adjusted R-squared (R-cuadrado ajustado)
El R-cuadrado ajustado es similar al R-cuadrado múltiple, pero ajustado para el número de variables predictoras en el modelo.
F-statistic (Estadístico F)
El estadístico F es 2.37e+03, y su p-value es extremadamente pequeño (cercano a cero). Esto indica que al menos una de las variables predictoras es significativa en la predicción de la variable de respuesta. En otras palabras, el modelo en su conjunto es significativo.
En resumen, este modelo lineal sugiere que tanto el intercepto como la variable “areaconst” son altamente significativos para predecir el precio, y el modelo en general es altamente significativo para explicar la variabilidad del precio. El R-cuadrado sugiere que el modelo de regresión tiene una capacidad razonable para explicar la variabilidad en los datos, pero la evaluación completa del modelo debe considerar otros factores además del R-cuadrado.
Construir un intervalo de confianza (95%) para el coeficiente β1, interpretar y concluir si el coeficiente es igual a cero o no. Compare este resultado con una prueba de hipótesis t.
confint(modelo, level = 0.95)
## 2.5 % 97.5 %
## (Intercept) 60.5 74.3
## areaconst 1.7 1.9
Estos intervalos de confianza proporcionan una estimación de la incertidumbre asociada con los coeficientes del modelo. Los resultados que se muestran a continuación representan los intervalos de confianza del 95% para los coeficientes del modelo:
β1: Este es el coeficiente asociado con la variable Área en el modelo. El intervalo de confianza del 95% para este coeficiente es de 1.7 a 1.9. Por lo tanto, podemos estar 95% seguros de que el valor real del coeficiente para la variable Área se encuentra en este intervalo.
Los códigos de significancia indican el nivel de significancia de los coeficientes. En este caso, se sugiere que el coeficiente β1 es altamente significativo. Esto significa que hay evidencia sólida para afirmar que β1 no es igual a cero.
De acuerdo con los resultados del modelo y al comparlo con el intervalo de confianza podemos decir que
La probabilidad de observar un valor t igual o más extremo que el valor t calculado si la hipótesis nula (que el coeficiente es igual a cero) es verdadera. En este caso, los valores p son muy cercanos a cero (“*** <0.0000000000000002 ***“), lo que indica que el coeficiente β1 es altamente significativo.
En resumen, los resultados sugieren el coeficiente β1 es altamente significativo en el modelo de regresión lineal. Esto significa que hay evidencia sólida de que este coeficiente sea diferente de cero y por lo tanto, tiene un impacto significativo en el la variable precio del modelo.
Calcule e interprete el indicador de bondad R2.
summary(modelo)$r.squared
## [1] 0.58
El coeficiente de determinación arroja un valor de R2=0.582, es decir, que el 58,2% de la variabilidad total del precio de las viviendas, son representadas por las variaciones en las áreas construidas.
¿Cuál sería 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 sería una atractiva esta oferta? ¿Qué consideraciones adicionales se deben tener?.
Con base en nuestro modelo calculamos el precio promedio para un apartamento de 110 metros cuadrados.
predict(modelo, list(areaconst = 110), interval = "confidence", level = 0.95)
## fit lwr upr
## 1 266 263 269
Lo anterior nos indica que el para un apartamento de 110 mestros cuadrados, el valor estimado asciende a 265.7 millones de pesos colombianos (COP), con un rango potencial entre 262.61 y 268.8 millones de pesos COP.
En este sentido, recibir una oferta de 200 millones de pesos COP por una casa de 110 m² podría parecer a simple vista una excelente propuesta. No obstante, al evaluar el precio de una vivienda, es esencial tener en cuenta otros factores que pueden incidir en su valor, como la ubicación y el tipo de inmueble. Por lo tanto, es necesario considerar más características para determinar si esta oferta realmente constituye una oportunidad favorable.
Realice la validación de los supuestos del modelo por medio de gráficos apropiados, interpretarlos y sugerir posibles soluciones si se violan algunos de ellos. Utilice las pruebas de hipótesis para la validación de supuestos y compare los resultados con lo observado en los gráficos asociados.
En primer lugar se mapearan los diagramas asociados a cada supuesto y posteriormente se analizaran.
par(mfrow=c(2,2))
plot(modelo)
Los supuestos que debemos evaluar son:
Determinar si los errores siguen una distribución normal.
En la gráfica “Q-Q residuals” podemos evidenciar que no todos los puntos caen en la línea de referencia de 45 grados; existen datos atípicos, así como algunos que se desvián de la línea, por lo tanto, esto nos puede sugerir que no se distribuyen normalmente
shapiro.test(modelo$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo$residuals
## W = 0.9, p-value <0.0000000000000002
W: El valor de la estadística de prueba de Shapiro-Wilk es 0.92671, que nos ayuda a evaluar cuán bien se ajustan los datos a una distribución normal. Un valor de W cercano a 1 indica una mejor concordancia con una distribución normal.
p-value <0.0000000000000002: El valor p obtenido de la prueba es extremadamente pequeño (cercano a cero). Este valor p indica la probabilidad de observar una estadística de prueba al menos tan extrema como la que se calculó si los residuos realmente siguieran una distribución normal. En este caso, el valor p es esencialmente cero, lo que sugiere una fuerte evidencia en contra de la hipótesis nula de que los residuos siguen una distribución normal.
Por lo tanto, los resultados de la prueba de Shapiro-Wilk indican que los residuos del modelo no siguen una distribución normal, ya que el valor p es muy pequeño. Esto sugiere que los residuos no cumplen con el supuesto de normalidad.
La varianza de los errores (residuos) del modelo debe ser constante en todos los niveles de las variables predictoras.
De acuerdo con el gráfico “Scale-Location” la dispersión de los residuos no es igual en todos los valores ajustados. Vemos que la línea roja no es totalmente horizontal. Por lo que puede que el supuesto de Homocedasticidad no se cumpla.
lmtest::bptest(modelo)
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 153, df = 1, p-value <0.0000000000000002
BP: El valor calculado de la estadística de prueba (Breusch-Pagan) es 152.8 Esta estadística se utiliza para evaluar si la heterocedasticidad (variabilidad no constante de los errores) es significativa en el modelo.
p-value <0.0000000000000002: El valor p obtenido de la prueba es extremadamente pequeño (cercano a cero). Este valor p indica la probabilidad de observar una estadística de prueba al menos tan extrema como la que se calculó si la hipótesis nula de homocedasticidad es verdadera. En este caso, el valor p es esencialmente cero, lo que sugiere una fuerte evidencia en contra de la hipótesis nula de homocedasticidad. En otras palabras, hay evidencia significativa de que la varianza de los errores no es constante en el modelo, lo que podría indicar la presencia de heterocedasticidad.
En resumen, los resultados de la prueba de Breusch-Pagan indican que el modelo no cumple con el supuesto de homocedasticidad, ya que el valor p es extremadamente pequeño.
La relación entre la variable dependiente y las variables independientes y el error es lineal. Es decir que las variables pueden tener cualquier forma pero los parametros deben garantizar una relacion lineal (yi=β0+β1xi+εi)
Podemos observar en el gráfico “Residuals vs Fitted” que la línea roja no es del todo recta por lo que puede que no se cumpla el supuesto de linealidad.
lmtest::dwtest(modelo)
##
## Durbin-Watson test
##
## data: modelo
## DW = 2, p-value = 0.000000000005
## alternative hypothesis: true autocorrelation is greater than 0
DW: El valor calculado de la estadística de prueba de Durbin-Watson (DW) es 1.6713. Este valor puede variar entre 0 y 4. Por lo tanto el valor arrojado sugiere que no hay autocorrelación de primer orden en los residuos, adicionalmente los residuos no muestran una relación lineal significativa con sus valores anteriores en la serie.
p-value = 0.000000000005: El valor p obtenido de la prueba es extremadamente pequeño, lo que indica que es muy poco probable que el valor de DW sea el resultado de la aleatoriedad. En este caso, el valor p es esencialmente cero.
En resumen, los resultados de la prueba de Durbin-Watson indican que existe evidencia significativa de autocorrelación positiva (dependencia positiva entre los residuos actuales y los residuos anteriores) en los residuos del modelo de regresión. Esto sugiere que el supuesto de independencia de los errores puede no cumplirse, lo que podría tener implicaciones importantes en la interpretación y validez de las estimaciones del modelo. La autocorrelación positiva en los residuos debe ser abordada y corregida si es relevante para el análisis.
Se espera que la data no contenga datos atípicos que generen sesgos en los estimadores de los coeficientes.
Como se aprecia en el gráfico “Residuals vs Leverage,” se identifican numerosos puntos atípicos, lo que sugiere que podrían ejercer una influencia significativa en la determinación de una línea de regresión.
De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.
Para detectar cuál de las trasformaciones es la más apropiada utilizamos la función boxcox que nos proporcionará un λ
bc <- boxcox(modelo)
lambda <-bc$x[which.max(bc$y)]
Por lo tanto, la mejor transformación sería y^lambda = y^-0.1010
Modelo2
modelo2=lm((((vivienda4$preciom^lambda)-1)/lambda)~vivienda4$areaconst)
De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.
summary(modelo2)
##
## Call:
## lm(formula = (((vivienda4$preciom^lambda) - 1)/lambda) ~ vivienda4$areaconst)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.4672 -0.0942 -0.0142 0.0991 0.6362
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.769169 0.008347 451.6 <0.0000000000000002 ***
## vivienda4$areaconst 0.004146 0.000088 47.1 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.13 on 1704 degrees of freedom
## Multiple R-squared: 0.566, Adjusted R-squared: 0.566
## F-statistic: 2.22e+03 on 1 and 1704 DF, p-value: <0.0000000000000002
De acueso con los resultados de este segundo modelo de regresión se evidencia que la variable independiente “areaconst” tiene un impacto significativo en la variable preciom, y el modelo en su conjunto es estadísticamente sólido. El R-cuadrado múltiple sugiere que el modelo explica una proporción sustancial (56.6%) de la variabilidad en la variable dependiente transformada. Sin embargo, este R-cuadrado es menor al R-cuadrado del modelo inicial (58.2%)
par(mfrow=c(2,2))
plot(modelo2)
En la gráfica “Q-Q residuals” podemos evidenciar que la mayoría de puntos caen en la línea de referencia de 45 grados; existen datos atípicos, pero es mejor que el gráfico del modelo inicial.
shapiro.test(modelo2$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo2$residuals
## W = 1, p-value = 0.000002
W: El valor de la estadística de prueba de Shapiro-Wilk es 1, que nos ayuda a evaluar cuán bien se ajustan los datos a una distribución normal. Un valor de W cercano a 1 indica una mejor concordancia con una distribución normal.
p-value <0.000002: El valor p obtenido es mejor que el del modelo inicial, sin embargo, sigue siendo muy pequeño. Lo que sugiere una fuerte evidencia en contra de la hipótesis nula de que los residuos siguen una distribución normal.
De acuerdo con el gráfico “Scale-Location”, se evidencia que la línea roja aunque no es totalmente horizontal, mejora respecto al modelo inicial. Sin embargo, puede que el supuesto de Homocedasticidad no se cumpla.
lmtest::bptest(modelo2)
##
## studentized Breusch-Pagan test
##
## data: modelo2
## BP = 39, df = 1, p-value = 0.0000000003
BP: El valor calculado de la estadística de prueba (Breusch-Pagan) es 39. p-value <0.0000000003: El valor p obtenido es mejor que el del modelo inicial, sin embargo, sigue siendo muy pequeño, lo que sugiere la presencia de heterocedasticidad.
Podemos observar en el gráfico “Residuals vs Fitted” que la línea roja no es recta por lo que puede que no se cumpla el supuesto de linealidad.
lmtest::dwtest(modelo2)
##
## Durbin-Watson test
##
## data: modelo2
## DW = 1, p-value <0.0000000000000002
## alternative hypothesis: true autocorrelation is greater than 0
DW: El valor calculado de la estadística de prueba de Durbin-Watson (DW) es 1. Este valor puede variar entre 0 y 4. Por lo tanto el valor arrojado sugiere una autocorrelación positiva.
p-value = 0.0000000000000002: El valor p obtenido de la prueba es extremadamente pequeño (más pequeño que en el modelo inicial).
En resumen, el resultado del Durbin-Watson test indica que hay evidencia significativa de autocorrelación en los residuos del modelo 2 (autocorrelación positiva). Esto puede tener implicaciones importantes, ya que sugiere que los errores no son independientes entre sí y que el modelo de regresión puede no ser apropiado en su forma actual.
Como se aprecia en el gráfico “Residuals vs Leverage,” se identifican aún puntos atípicos, lo que sugiere que podrían ejercer una influencia significativa en la determinación de una línea de regresión.
Estime varios modelos y compare los resultados obtenidos. En el mejor de los modelos, ¿se cumplen los supuestos sobre los errores?
Modelo Inicial: Lineal-Lineal
modelo = lm(preciom~areaconst, data = vivienda4)
Modelo 2: Lineal-Logartimica
modelo2 = lm(preciom~log(areaconst), data = vivienda4)
Modelo 3: Logartimica-Lineal
modelo3 = lm(log(preciom)~areaconst, data = vivienda4)
Modelo 4: Logartimica-logaritmica
modelo4 = lm(log(preciom)~log(areaconst), data = vivienda4)
Para realizar la comparación empezaremos con una vista general de los modelos y posteriormente evaluaremos los supuestos.
stargazer(modelo, modelo2, modelo3, modelo4, type="text", df=FALSE)
##
## =======================================================================
## Dependent variable:
## ---------------------------------------------------
## preciom log(preciom)
## (1) (2) (3) (4)
## -----------------------------------------------------------------------
## areaconst 1.800*** 0.007***
## (0.037) (0.0002)
##
## log(areaconst) 190.000*** 0.780***
## (3.600) (0.014)
##
## Constant 67.000*** -610.000*** 4.700*** 1.900***
## (3.500) (16.000) (0.014) (0.063)
##
## -----------------------------------------------------------------------
## Observations 1,706 1,706 1,706 1,706
## R2 0.580 0.610 0.570 0.640
## Adjusted R2 0.580 0.610 0.570 0.640
## Residual Std. Error 56.000 53.000 0.230 0.210
## F Statistic 2,374.000*** 2,715.000*** 2,267.000*** 3,012.000***
## =======================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Para determinar cuál es el mejor modelo entre los cuatro que se están comparando, generalmente, se considera el modelo con el valor más alto de R^2 ajustado (Adjusted R^2) o el modelo con el valor más bajo de Residual Standard Error (Error Estándar de los Residuos). Estos son dos indicadores comunes de la bondad de ajuste de un modelo de regresión.
Los resultados son los siguientes:
Modelo 1: R^2: 0.580 R^2 ajustado: 0.580 Residual Std. Error: 56.000
Modelo 2: R^2: 0.610 R^2 ajustado: 0.610 Residual Std. Error: 53.000
Modelo 3: R^2: 0.570 R^2 ajustado: 0.570 Residual Std. Error: 0.230
Modelo 4: R^2: 0.640 R^2 ajustado: 0.640 Residual Std. Error: 0.210
En este caso, el “Modelo 4” tiene el valor más alto de R^2 (0.640), lo que significa que explica la mayor cantidad de variabilidad en los datos. Además, también tiene el valor más bajo de Residual Standard Error (0.210), lo que indica que tiene menos error residual en las predicciones.
Por lo tanto, en base a estos resultados, el “Modelo 4” parece ser el mejor modelo de los cuatro.
par(mfrow=c(1,4))
plot(modelo, 2, caption = "Modelo 1")
plot(modelo2, 2, caption = "Modelo 2")
plot(modelo3, 2, caption = "Modelo 3")
plot(modelo4, 2, caption = "Modelo 4")
shapiro.test(modelo$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo$residuals
## W = 0.9, p-value <0.0000000000000002
shapiro.test(modelo2$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo2$residuals
## W = 0.9, p-value <0.0000000000000002
shapiro.test(modelo3$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo3$residuals
## W = 1, p-value = 0.0000002
shapiro.test(modelo4$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo4$residuals
## W = 1, p-value = 0.0000007
Al analizar las gráficas “Q-Q residuals” podemos evidenciar que los modelos que presentan un comportamiento donde la mayoría de puntos caen en la línea de referencia de 45 grados son el modelo 3 y 4. De acuerdo con el test de Shapiro, todos presentan un W igual de 0.9 que es cercano a 1, sin embargo, el p-value cambia y aunque todos son pequeños el mejor es el del modelo 3, puesto que esto indica que es menos probable que los datos se desvíen de una distribución normal.
par(mfrow=c(1,4))
plot(modelo, 3, caption = "Modelo 1")
plot(modelo2, 3, caption = "Modelo 2")
plot(modelo3, 3, caption = "Modelo 3")
plot(modelo4, 3, caption = "Modelo 4")
lmtest::bptest(modelo)
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 153, df = 1, p-value <0.0000000000000002
lmtest::bptest(modelo2)
##
## studentized Breusch-Pagan test
##
## data: modelo2
## BP = 146, df = 1, p-value <0.0000000000000002
lmtest::bptest(modelo3)
##
## studentized Breusch-Pagan test
##
## data: modelo3
## BP = 53, df = 1, p-value = 0.0000000000003
lmtest::bptest(modelo4)
##
## studentized Breusch-Pagan test
##
## data: modelo4
## BP = 65, df = 1, p-value = 0.0000000000000007
De acuerdo con el gráfico “Scale-Location”, se evidencia que ningún modelo cumple con el supuesto de Homoscedasticidad.
El modelo que tiene el mejor p-valor (el valor más alto) en la prueba de Breusch-Pagan es “modelo4” con un p-valor de 0.0000000000000007. Aunque este valor es muy bajo, es el más alto entre los 4 modelos, lo que sugiere que los residuos de “modelo4” muestran menos evidencia de heterocedasticidad en comparación con los otros modelos.
Por lo tanto, el “modelo4” parece ser el mejor modelo en términos de la prueba de Breusch-Pagan en función de los p-valores más altos. Esto indicaría que los residuos de “modelo4” tienen una varianza más constante y, por lo tanto, cumplen mejor con el supuesto de homocedasticidad en un modelo de regresión. #### Linealidad
par(mfrow=c(1,4))
plot(modelo, 1, caption = "Modelo 1")
plot(modelo2, 1, caption = "Modelo 2")
plot(modelo3, 1, caption = "Modelo 3")
plot(modelo4, 1, caption = "Modelo 4")
Podemos observar en el gráfico “Residuals vs Fitted” que ningún modelo presenta una línea roja recta por lo que puede que no se cumpla el supuesto de linealidad.
lmtest::dwtest(modelo)
##
## Durbin-Watson test
##
## data: modelo
## DW = 2, p-value = 0.000000000005
## alternative hypothesis: true autocorrelation is greater than 0
lmtest::dwtest(modelo2)
##
## Durbin-Watson test
##
## data: modelo2
## DW = 2, p-value = 0.00000000008
## alternative hypothesis: true autocorrelation is greater than 0
lmtest::dwtest(modelo3)
##
## Durbin-Watson test
##
## data: modelo3
## DW = 2, p-value <0.0000000000000002
## alternative hypothesis: true autocorrelation is greater than 0
lmtest::dwtest(modelo4)
##
## Durbin-Watson test
##
## data: modelo4
## DW = 2, p-value <0.0000000000000002
## alternative hypothesis: true autocorrelation is greater than 0
De acuerdo con los resultados del test de Durbin-Watson podemos concluir que todos los modelos tienen un valor de Durbin-Watson (DW) igual a 2, lo que indica que no hay evidencia de autocorrelación en los residuos de ninguno de los modelos. Sin embargo, es importante señalar que el valor de DW es simplemente una estadística que se encuentra en el rango de 0 a 4, y un valor de 2 sugiere la ausencia de autocorrelación.
Dado que todos los modelos tienen DW igual a 2, no hay diferencias significativas en términos de autocorrelación entre ellos.
par(mfrow=c(1,4))
plot(modelo, 5, caption = "Modelo 1")
plot(modelo2, 5, caption = "Modelo 2")
plot(modelo3, 5, caption = "Modelo 3")
plot(modelo4, 5, caption = "Modelo 4")
Como se aprecia en los gráficos “Residuals vs Leverage,” de los 4
modelos, se identifican puntos atípicos en todos los modelos, lo que
sugiere que podrían ejercer una influencia significativa en la
determinación de una línea de regresión.
Con los resultados obtenidos construya un informe para los directivos de la inmobiliaria, indicando el modelo apropiado y sus principales características. A este informe se deben añadir los anexos como evidencia de la realización de los pasos anteriores.
En el análisis previo, inicialmente se consideró que el modelo original tenía potencial, ya que el 58.2% de la variabilidad total en los precios de las viviendas se atribuía a las variaciones en el área construida. Sin embargo, al evaluar los supuestos, quedó claro que este modelo no cumplía con ninguno de ellos.
Luego, al realizar las transformaciones se determinó que el modelo 4 (preciom = exp(1.9189) * areaconst^0.7802) ofrecía mejoras significativas. Este modelo explicaba el 64% de la variabilidad total de los precios de las viviendas a través de las variaciones en el área construida. Además, demostró tener el menor error residual en las predicciones.
A pesar de estas mejoras, es fundamental destacar que, al evaluar los supuestos, el modelo 4 solo cumplió con el supuesto de Normalidad. Incluso si los supuestos se cumplieran en su totalidad, es crucial considerar el análisis descriptivo de los datos y el análisis bivariado.
De manera significativa, se evidencia que todas las observaciones se concentran en la zona sur (78.78%), el 100% de las propiedades pertenecen al estrato 4 y aproximadamente el 80% son apartamentos. Estos factores sugieren que no es posible construir un modelo sólido que oriente a la inmobiliaria respecto a los precios de todas las propiedades, en todas las zonas basándonos únicamente en el área construida. Sería necesario considerar otras variables y recopilar más observaciones para obtener un modelo de predicción robusto y completo.