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 interpretados.
# Descarga de la base de datos
# install.packages("devtools")
devtools::install_github("dgonxalex80/paqueteMETODOS")
library(paqueteMETODOS)
library(dplyr)
data("vivienda4")
#Revision de que no falten datos en la base de datos
faltantes <- colSums(is.na(vivienda4))
#creo el subconjuto de datos solo con los datos de apartamento
apartamento = subset(vivienda4, vivienda4$tipo == "Apartamento")
attach(apartamento)
Se genera un resumen estadistico de la variables en la base de datos
#resumen estadistico
resumen_ap1 = summary(apartamento)
print(resumen_ap1)
## zona estrato preciom areaconst
## Zona Centro : 7 3: 0 Min. :207.4 Min. : 40.00
## Zona Norte : 237 4:1363 1st Qu.:228.8 1st Qu.: 60.00
## Zona Oeste : 52 5: 0 Median :236.1 Median : 70.00
## Zona Oriente: 2 6: 0 Mean :237.7 Mean : 75.48
## Zona Sur :1065 3rd Qu.:243.6 3rd Qu.: 84.00
## Max. :305.2 Max. :200.00
## tipo
## Apartamento:1363
## Casa : 0
##
##
##
##
Como se observa en el resumen estadístico, la base de datos posee 1363 observaciones por cada variable, y tiene 5 variables entre las que se encuentran dos variables cualitativas que son zona y tipo de vivienda, y tres variables cuantitativas correspondientes a estrato, precio de la vivienda y área construida.
En este resumen podemos observar que la variable estrato solo tiene un tipo de observación que es 4, indicando que los datos tomados son para viviendas de estrato 4, y la variable tipo de vivienda su observación es solo apartamento, concluyendo que los datos son de apartamentos de estrato 4.
Para la variable zona, se utilizo un grafico de barras para indicar la frecuencia de las observaciones en cada zona.
frecuencia_ap = table(apartamento$zona)
par(mfrow = c(1,1))
barplot(frecuencia_ap,
col = "lightblue",
main = "Frecuencia de apartamentos por zona",
xlab = "Cantidad de apartamentos")
Como se observa en el grafico se tienen datos de apartamentos en la zona sur, norte, oeste, centro y oriente. La zona que mas cuenta con datos es la zona sur con un total de 1065 observaciones, seguida de la zona norte con 237 observaciones, para las zonas restantes sus observaciones se encuentran por debajo de los 100 datos; como se ve en el gráfico y en la tabla de resumen estadístico. Indicando que la robustez de la información de los apartamentos va a estar enfocado en la zona sur.
En cuanto a la variable precio se utilizó dos graficas para su análisis junto con el resumen estadístico
resumen_ap = summarytools::descr(apartamento)
print(resumen_ap)
## Non-numerical variable(s) ignored: zona, estrato, tipo
## Descriptive Statistics
## apartamento
## N: 1363
##
## areaconst preciom
## ----------------- ----------- ---------
## Mean 75.48 237.68
## Std.Dev 22.56 13.29
## Min 40.00 207.41
## Q1 60.00 228.79
## Median 70.00 236.14
## Q3 84.00 243.59
## Max 200.00 305.19
## MAD 14.83 10.98
## IQR 24.00 14.79
## CV 0.30 0.06
## Skewness 2.08 1.28
## SE.Skewness 0.07 0.07
## Kurtosis 6.32 3.19
## N.Valid 1363.00 1363.00
## Pct.Valid 100.00 100.00
par(mfrow = c(1,2))
hist(preciom,
col = "green",
main = "Distribucion de
precio de apartamentos",
xlab = "Precio")
boxplot(preciom,
col = "green",
main = "Diagrama de caja de
precio de apartamento",
ylab ="Precio")
En el gráfico de distribución se observa una distribución simétrica, donde alrededor de 500 datos de precios de apartamentos se concentran en el intervalo de 220 a 240 millones de pesos. En este mismo intervalo se encuentra tanto la media de los datos (237.68 millones) como la mediana (236.14 millones), lo que indica una distribución aproximadamente normal de los precios.
Esto se confirma mediante el diagrama de caja y bigotes, que muestra un rango de precios desde el mínimo de 207.41 millones hasta el máximo de 305.19 millones, lo que resulta en un rango intercuartil de 14.79 millones. Aproximadamente el 50 % de los datos están concentrados entre el primer cuartil (Q1) de 228.79 millones y el tercer cuartil (Q3) de 243.59 millones.
La baja variabilidad de los datos se evidencia también en la desviación estándar de 13 millones de pesos y el coeficiente de variación de 0.06, lo cual indica una homogeneidad en el grupo de datos.
Además, se observa la presencia de algunos datos atípicos por encima de los 305 millones, aunque su frecuencia no supera los 25 casos, lo que sugiere que estos valores extremos no son muy comunes en el conjunto de datos.
par(mfrow = c(1,2))
hist(areaconst,
col = "blue",
main = "Distribucion del
area del Apartamento",
xlab = "Area de construccion")
boxplot.default(areaconst,
col = "blue",
main = "Diagarama de cajas del
Area de construccion del apto",
ylab = "Area de construccion (m2)")
Para la variable de área construida, en el gráfico de distribución se observa una distribución asimétrica positiva, sesgada hacia la derecha, con una concentración de datos en los intervalos de 50 a 80 metros cuadrados construidos. Esta concentración se confirma en el diagrama de cajas y bigotes, donde el primer cuartil se encuentra en 60 mts2, el tercer cuartil en 84 mts2 y el rango inter-cuartil es de 24 mts2, mostrando una alta dispersión de los datos con respecto a la media (75.48 mts2) Como medidas de tendencia central, la media se sitúa en 75.48 mts2 y la mediana en 70 mts2. Esto sugiere que la mitad de los apartamentos tienen un área construida igual o por debajo de los 70 metros. Es importante tener en cuenta que la diferencia entre la media y la mediana puede indicar cierto grado de asimetría en la distribución de los datos, como se ve en la gráfica de distribución. Como se encuentra en el resumen estadístico, la desviación estándar de 22 metros indica una variabilidad relativamente alta, lo cual sugiere cierta heterogeneidad en el conjunto de datos, corroborado por el coeficiente de variación de 0.3.
Realice un análisis exploratorio bivariado de datos, enfocado en la relación entre la variable respuesta (precio) en función de la variable predictora (área construida) - incluir gráficos e indicadores apropiados interpretados.
par(mfrow = c(1,1))
plot(areaconst,preciom,
main = "Diagrama de dispersion Area Construida vs Precio",
xlab = "Area Construida",
ylab = "Precio")
#correlacion entre las variables
correlacion = cor(areaconst,preciom, method = c("pearson"))
print(correlacion)
## [1] 0.8463271
El diagrama presenta la relación entre el área construida como variable independiente y el precio como variable dependiente. Se observa que más del 50% de los datos se concentran en el intervalo de 50 a 100 metros cuadrados construidos y sus precios también se concentran por debajo de los 260 millones de pesos. Además, se identifica una relación lineal entre las dos variables, lo que significa que a medida que aumenta el área construida en el apartamento, su precio tiende a aumentar también. Esta relación se confirma mediante el coeficiente de correlación de Pearson, que arrojó un valor de 0.846. Dado que este valor es bastante alto, sugiere una correlación positiva fuerte entre el precio y el área construida. Entonces, los datos tienden a ajustarse bien a una línea recta en el gráfico de dispersión, lo que respalda la existencia de una relación lineal positiva entre el precio y el área construida de los apartamentos.
Estime el modelo de regresión lineal simple entre precio=f(area)+ε Interprete los coeficientes del modelo β0, β1 en caso de ser correcto.
#creacion modelo
modelo_precio_ap = lm(preciom~areaconst, data = apartamento)
resumen_modelo_ap = summary(modelo_precio_ap)
print(resumen_modelo_ap)
##
## Call:
## lm(formula = preciom ~ areaconst, data = apartamento)
##
## Residuals:
## Min 1Q Median 3Q Max
## -26.5139 -5.0886 -0.0031 4.6406 24.3309
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.001e+02 6.698e-01 298.67 <2e-16 ***
## areaconst 4.984e-01 8.503e-03 58.62 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.081 on 1361 degrees of freedom
## Multiple R-squared: 0.7163, Adjusted R-squared: 0.7161
## F-statistic: 3436 on 1 and 1361 DF, p-value: < 2.2e-16
En los estadísticos del modelo se muestra el coeficiente para el β₀ y β₁: Para el coeficiente del intercepto (β₀), el valor estimado es de 200.1. Esto significa que el precio esperado de un apartamento cuando el área construida es igual a cero es de aproximadamente 200.1 millones de pesos. Sin embargo, en el contexto de este problema, este valor podría no tener una interpretación práctica, ya que no hay apartamentos con área construida cero. Para el coeficiente de la variable independiente (β₁), el valor estimado es de aproximadamente 0.4984. Esto significa que, en promedio, por cada metro cuadrado adicional construido en el apartamento, el precio esperado del apartamento aumenta en aproximadamente 0.4984 millones de pesos.
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.
confianza = confint(object = modelo_precio_ap, level = 0.95)
print(confianza)
## 2.5 % 97.5 %
## (Intercept) 198.7494103 201.377500
## areaconst 0.4817357 0.515097
Se observa que, para un intervalo de confianza del 95%, el coeficiente β₁ es diferente de cero, ya que se encuentra entre 0.490 y 0.506. Esto indica que el valor verdadero de β₁ se encuentra en ese rango con una confianza del 95%. Además, esta interpretación sugiere que el área construida tiene un impacto significativo en el precio del apartamento. Al compararlo con las pruebas de hipótesis t de los estadísticos del modelo, observamos que el valor p (<2e-16) está por debajo del valor de significancia (0.05). Esto lleva a rechazar la hipótesis de que β₁ = 0, lo que nuevamente muestra que el área construida tiene un valor significativo para el precio del apartamento.
Calcule e interprete el indicador de bondad R2.
#calculo de r2
R_cuadrado = summary(modelo_precio_ap)$r.squared
print(R_cuadrado)
## [1] 0.7162696
El resultado de R2 de 0.7162696 indica que aproximadamente el 71.63% de la variabilidad en el precio de los apartamentos puede ser explicada por el modelo de regresión lineal que incluye el área construida como variable predictora. Esto indica que el modelo proporciona un ajuste bastante bueno a los datos, ya que una proporción considerable de la variación en los precios de los apartamentos puede ser explicada por la variación en el área construida. Pero entonces el 28.37% de la variabilidad en los precios de los apartamentos que no explica el modelo, podría deberse a otros componentes como la ubicación, acabados, el diseño del apartamento, entre otros.
¿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 oferta? ¿Qué consideraciones adicionales se deben tener?
#prediccion
prediccion_precio = predict(modelo_precio_ap, newdata = data.frame(areaconst = 110))
print(prediccion_precio)
## 1
## 254.8893
Para un apartamento de área construida de 110 metros cuadrados, el modelo de regresión lineal arroja un valor de 254 millones. Si se tiene una oferta de venta de un apartamento en 200 millones , comparada con el precio predicho por el modelo, se puede considerar que se esta frente a una oferta atractiva, debido a que el comprador puede estar ahorrándose sobre 50 millones de pesos en la compra, pero si se consideran otros aspectos como acabados del apartamento, ubicación exacto, servicios adicionales con los que cuenta, etc, se puede estar frente a una excelente oferta de compra si dichas consideraciones son positivas, o simplemente puede ser una oferta ordinaria que se compensa con lo que se tiene que invertir demás, si esas consideraciones son negativas.
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.
par(mfrow = c(2,2))
plot(modelo_precio_ap)
normalidad = shapiro.test(modelo_precio_ap$residuals)
print(normalidad)
##
## Shapiro-Wilk normality test
##
## data: modelo_precio_ap$residuals
## W = 0.99885, p-value = 0.5419
homoscedasticidad = lmtest::bgtest(modelo_precio_ap)
print(homoscedasticidad)
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: modelo_precio_ap
## LM test = 0.15038, df = 1, p-value = 0.6982
no_autocorrelacion = lmtest::dwtest(modelo_precio_ap)
print(no_autocorrelacion)
##
## Durbin-Watson test
##
## data: modelo_precio_ap
## DW = 2.0204, p-value = 0.6435
## alternative hypothesis: true autocorrelation is greater than 0
Normalidad:
En la validación de supuestos, observamos que el gráfico QQ de los residuos no muestra evidencia de desviación de la normalidad, ya que los puntos residuales se distribuyen alrededor de la línea central. Esto se confirma con la prueba de Shapiro-Wilk, donde el valor de W es 0.99885, indicando una buena aproximación a una distribución normal. Además, el valor p = 0.5419 está muy por encima del nivel de significancia (0.05), lo que sugiere que no hay suficiente evidencia para rechazar la hipótesis nula de que el modelo sigue una distribución normal. En resumen, tanto el gráfico QQ de los residuos como la prueba de Shapiro-Wilk respaldan la conclusión de que el modelo tiene un comportamiento normal.
Homoscedasticidad:
En el gráfico de residuos vs. valores ajustados, se observa que los puntos no muestran un patrón evidente y se distribuyen aleatoriamente alrededor de la línea central. Esto sugiere que los residuos tienen una variabilidad constante en todas las combinaciones de valores ajustados, lo que respalda la validez del supuesto de homocedasticidad en el modelo de regresión lineal. Además, este hallazgo se sustenta en el resultado del test de Breusch-Godfrey, donde el valor del estadístico LM es 0.15038, indicando un nivel bajo de correlación serial en los residuos. El valor p asociado con la prueba es 0.6982, que está muy por encima del nivel de significancia (0.05). Esto significa que no hay suficiente evidencia para rechazar la hipótesis nula de ausencia de correlación serial en los residuos. En conjunto, tanto el gráfico de residuos vs. valores ajustados como el test de Breusch-Godfrey respaldan la conclusión de que los residuos del modelo no muestran correlación serial y que el supuesto de homocedasticidad se cumple.
No autocorrelacion:
En cuanto al supuesto de no autocorrelación, el test de Durbin-Watson arrojó un valor de DW = 2.0204, lo que indica que no hay autocorrelación significativa en los residuos del modelo. Este resultado se basa en el hecho de que el valor de DW está cerca de 2, lo que sugiere una ausencia de autocorrelación. Además, el valor p asociado con el test es de 0.6435, significativamente mayor que el nivel de significancia (0.05). Esto significa que no hay suficiente evidencia para rechazar la hipótesis nula de ausencia de autocorrelación en los residuos.
Outliers:
Al observar el gráfico de residuos versus leverage, observamos que la mayoría de los puntos están concentrados en el rango de 0 a 0.005 en el eje X (leverage). Esto sugiere que la mayoría de las observaciones tienen un bajo leverage, lo que indica un impacto limitado en el modelo lineal. Estas observaciones representan características típicas de los apartamentos en la base de datos, lo que significa que tienen atributos comunes a la mayoría de los apartamentos en el conjunto de datos. Este resultado es importante porque indica que el modelo puede capturar adecuadamente la relación entre las características de los apartamentos y sus precios, ya que las observaciones con bajo leverage no ejercen una influencia desproporcionada en el ajuste del modelo.
Estime varios modelos y compare los resultados obtenidos. En el mejor de los modelos, ¿se cumplen los supuestos sobre los errores?
modelo_precio_ap_log = lm(preciom~log(areaconst), data = apartamento)
resumen_modelo_ap_log = summary(modelo_precio_ap_log)
print(resumen_modelo_ap_log)
##
## Call:
## lm(formula = preciom ~ log(areaconst), data = apartamento)
##
## Residuals:
## Min 1Q Median 3Q Max
## -22.9725 -5.4109 -0.1832 4.9141 24.1899
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 53.8202 3.4091 15.79 <2e-16 ***
## log(areaconst) 42.8778 0.7936 54.03 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.496 on 1361 degrees of freedom
## Multiple R-squared: 0.682, Adjusted R-squared: 0.6818
## F-statistic: 2919 on 1 and 1361 DF, p-value: < 2.2e-16
En el modelo transformado logarítmicamente, se observa que existe una relación entre el logaritmo del área construida y el precio de los apartamentos. Los coeficientes asociados al intercepto y al logaritmo del área construida son altamente significativos (p < 2.2e-16), lo que indica que existe una relación estadísticamente significativa entre estas variables. Específicamente, el coeficiente para el logaritmo del área construida sugiere que, en promedio, por cada aumento unitario en el logaritmo de los metros construidos, el precio del apartamento aumenta en aproximadamente 42.8 millones, lo que resalta la importancia de esta variable en la predicción del precio. Además, el R-cuadrado del modelo es de 0.682, lo que significa que aproximadamente el 68.2% de la variabilidad en los precios puede ser explicada por el logaritmo del área construida. Esto indica que el modelo proporciona una buena aproximación a la relación subyacente entre estas variables.
modelo_precio_ap_rc = lm(preciom~sqrt(areaconst), data = apartamento)
resumen_modelo_ap_rc = summary(modelo_precio_ap_rc)
print(resumen_modelo_ap_rc)
##
## Call:
## lm(formula = preciom ~ sqrt(areaconst), data = apartamento)
##
## Residuals:
## Min 1Q Median 3Q Max
## -25.1087 -5.2451 -0.0772 4.7355 23.6388
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 156.3863 1.4349 108.99 <2e-16 ***
## sqrt(areaconst) 9.4454 0.1652 57.19 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.206 on 1361 degrees of freedom
## Multiple R-squared: 0.7061, Adjusted R-squared: 0.7059
## F-statistic: 3271 on 1 and 1361 DF, p-value: < 2.2e-16
En el modelo transformado con raíz cuadrada, se observa una relación significativa entre la raíz cuadrada del área construida y el precio de los apartamentos. Los coeficientes asociados al intercepto y la raíz cuadrada del área construida son altamente significativos (p < 2.2e-16), lo que indica una relación estadísticamente significativa entre estas variables. Además, el R-cuadrado del modelo es de 0.7059, lo que sugiere que aproximadamente el 70.5% de la variabilidad en los precios puede ser explicada por la raíz cuadrada del área construida. También indica que, por cada unidad de raíz cuadrada en metros construidos, el precio aumentará en 9.44 millones de pesos, en promedio.
library(MASS)
# Calcular el valor óptimo de lambda usando boxcox
bc = boxcox(modelo_precio_ap)
# Obtener el valor óptimo de lambda
lambda_optimo = bc$x[which.max(bc$y)]
# Aplicar la transformación de Box-Cox a la variable dependiente
precios_transformados = ((apartamento$preciom^lambda_optimo) - 1) / lambda_optimo
# Ajustar un nuevo modelo con la variable dependiente transformada
modelo_transformado = lm(precios_transformados ~ areaconst, data = apartamento)
resumen_modeltrans = summary(modelo_transformado)
print(resumen_modeltrans)
##
## Call:
## lm(formula = precios_transformados ~ areaconst, data = apartamento)
##
## Residuals:
## Min 1Q Median 3Q Max
## -25.0717 -4.8106 0.0008 4.3900 23.0151
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.906e+02 6.338e-01 300.71 <2e-16 ***
## areaconst 4.714e-01 8.046e-03 58.59 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.7 on 1361 degrees of freedom
## Multiple R-squared: 0.7161, Adjusted R-squared: 0.7159
## F-statistic: 3433 on 1 and 1361 DF, p-value: < 2.2e-16
En el modelo transformado con Box-Cox, se observa una relación significativa entre el área construida y el precio transformado con el valor óptimo de lambda, demostrando una relación altamente significativa (p < 2.2e-16). El R-cuadrado del modelo es de 0.7159, lo que indica que aproximadamente el 71.5% de la variabilidad en los precios se puede explicar con el área construida. Lo más destacado de este modelo es su bajo error estándar residual, que es de 6.7, considerablemente menor que los errores estándar de los modelos anteriores e incluso del modelo original. Esto sugiere que el modelo tiene un mejor ajuste a los datos en comparación con las transformaciones anteriores, además que podría proporcionar unas predicciones más precisas.
#obtener la normalidad de todos los modelos
normalidad_2= shapiro.test(modelo_precio_ap_log$residuals)
normalidad_3= shapiro.test(modelo_precio_ap_rc$residuals)
normalidad_4= shapiro.test(modelo_transformado$residuals)
#Crear un data frame con los resultados de los tests de Shapiro
resultados_normalidad <- data.frame(
Test = c("Normalidad_modelo_1", "Normalidad_modelo_2", "Normalidad_modelo_3","Normalidad_modelo_4"),
Estadistico_W = c( normalidad$statistic, normalidad_2$statistic, normalidad_3$statistic,normalidad_4$statistic),
Valor_p = c(normalidad$p.value, normalidad_2$p.value, normalidad_3$p.value,normalidad_4$p.value))
# Imprimir la tabla de resultados
print(resultados_normalidad)
## Test Estadistico_W Valor_p
## 1 Normalidad_modelo_1 0.9988535 0.54193664
## 2 Normalidad_modelo_2 0.9970951 0.01301947
## 3 Normalidad_modelo_3 0.9983234 0.19832359
## 4 Normalidad_modelo_4 0.9988604 0.54791841
Los modelos 1, 3 y 4 cumplen con el supuesto de normalidad de los residuos, mientras que el modelo 2 no lo hace, esto indica que los residuos del modelo no siguen una distribución normal, mientras que en los otros modelos si lo hacen.
# obtener la homoscedasticidad de los modelos
homoscedasticidad_2 = lmtest::bgtest(modelo_precio_ap_log)
homoscedasticidad_3 = lmtest::bgtest(modelo_precio_ap_rc)
homoscedasticidad_4 = lmtest::bgtest(modelo_transformado)
#Crear un data frame con los resultados de los tests homoscedasticidad
resultados_homocedasticidad <- data.frame(
Test = c("modelo_1", "modelo_2", "modelo_3","modelo_4"),
Estadistico_W = c( homoscedasticidad$statistic, homoscedasticidad_2$statistic, homoscedasticidad_3$statistic,homoscedasticidad_4$statistic),
Valor_p = c(homoscedasticidad$p.value, homoscedasticidad_2$p.value, homoscedasticidad_3$p.value, homoscedasticidad_4$p.value))
print(resultados_homocedasticidad)
## Test Estadistico_W Valor_p
## 1 modelo_1 0.1503772 0.6981752
## 2 modelo_2 0.9399534 0.3322898
## 3 modelo_3 0.0343073 0.8530547
## 4 modelo_4 0.1509468 0.6976322
Todos los modelos cumplen con el supuesto de homocedasticidad, lo que significa que la varianza de los residuos es constante en todos los niveles de la variable independiente.
# obtencion del supuesto de no-autocorrelacion
no_autocorrelacion_2 = lmtest::dwtest(modelo_precio_ap_log)
no_autocorrelacion_3 = lmtest::dwtest(modelo_precio_ap_rc)
no_autocorrelacion_4 = lmtest::dwtest(modelo_transformado)
#Crear un data frame con los resultados de los tests no_autocorrelacion
resultados_no_autocorrelacion <- data.frame(
Test = c("modelo_1", "modelo_2", "modelo_3","modelo_4"),
Estadistico_W = c( no_autocorrelacion$statistic, no_autocorrelacion_2$statistic, no_autocorrelacion_3$statistic,no_autocorrelacion_4$statistic),
Valor_p = c(no_autocorrelacion$p.value, no_autocorrelacion_2$p.value, no_autocorrelacion_3$p.value, no_autocorrelacion_4$p.value))
print(resultados_no_autocorrelacion)
## Test Estadistico_W Valor_p
## 1 modelo_1 2.020421 0.6435162
## 2 modelo_2 1.946439 0.1586902
## 3 modelo_3 1.989103 0.4163405
## 4 modelo_4 2.020461 0.6437935
Todos los modelos cumplen con el supuesto de no autocorrelación, lo que significa que los errores no están correlacionados entre sí.
#graficas de los supuestos por cada modelo
par(mfrow = c(2, 4))
plot(modelo_precio_ap)
plot(modelo_precio_ap_log)
plot(modelo_precio_ap_rc)
plot(modelo_transformado)
Las graficas se muestran en el orden de los modelos de arriba hacia abajo, y como se observa, el modelo de transformación logarítmica y el de transformación de raíz cuadrada, no cumplen con la relación lineal entre los residuales y los valores ajustados, ya que muestra un patrón curvo, solo el modelo original y el modelo con transformación Box-Cox presentan una distribución aleatoria sin mostrar ningún patrón de los residuales vs los valores ajustados, indicándonos que si tienen una relación lineal, lo anterior se puede ver en los resultados de las pruebas de hipótesis de los supuestos, en donde los resultados de l modelo 1 y 4 fueron los mejores de los cuatro modelos.
El análisis comparativo de varios modelos de regresión lineal simple permitió evaluar diferentes transformaciones de las variables predictoras y de la variable respuesta. Esto ayudó a identificar el modelo que mejor se ajusta a los datos y presenta una la relación significativa entre las variables. Al examinar los coeficientes de los modelos, se pudo entender cómo cada unidad de cambio en las variables independientes afecta al precio de los apartamentos. Las transformaciones aplicadas permitieron interpretar estos coeficientes de manera significativa. Mediante la aplicación de pruebas de hipótesis y la visualización de gráficos diagnósticos, se evaluo si los modelos cumplen con los supuestos de la regresión lineal, como la linealidad, homocedasticidad y normalidad de los residuos. Esta validación es crucial para asegurar la fiabilidad de las predicciones. Después de comparar los diferentes modelos y validar sus supuestos, se identifico el modelo que ofrece la mejor combinación de ajuste y validez de los supuestos. Este modelo permite predecir los precios de los apartamentos en función de su área construida. Con este trabajo se comprende mejor la relación entre el tamaño de los apartamentos y sus precios, utilizando técnicas de modelado estadístico y validación. Los hallazgos obtenidos son de utilidad a la inmobiliaria, porque podrá predecir con bastante exactitud el precio de un apartamento a través de su área construida, influenciando con esto, en las estrategias de fijación de precios, marketing y negociación de ventas.