Los mínimos cuadrados son un método utilizado en estadística y matemáticas para encontrar la línea que mejor se ajusta a un conjunto de puntos de datos. Se utiliza comúnmente en regresión lineal para encontrar la línea de mejor ajuste a través de los datos, minimizando la suma de los cuadrados de las diferencias entre los valores observados y los valores predichos por la línea de regresión.
En cuanto a los supuestos de los mínimos cuadrados, las condiciones que deben cumplirse para que los resultados obtenidos mediante el método de mínimos cuadrados sean válidos y confiables son:
Estos supuestos son importantes para garantizar que las conclusiones derivadas del análisis de regresión sean precisas y válidas. Si alguno de estos supuestos no se cumple, los resultados pueden sesgarse o las inferencias pueden ser incorrectas. Por lo tanto, es importante realizar pruebas para verificar si los supuestos se cumplen antes de confiar en los resultados del análisis de mínimos cuadrados.
El objetivo de esta entrega es revisar la base de viviendas y apartamentos de la ciudad de Cali y elaborar un modelo de regresión lineal utilizando mínimos cuadrados, verificando el cumplimeinto de los supuestos, hacer una predicción y hacer transformaciones del modelo para verificar si hay mejoras en el mismo.
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.
En primer lugar se obtienen los principales indicadores de las variables precio y área.
##
## Attaching package: 'e1071'
## The following objects are masked from 'package:rapportools':
##
## kurtosis, skewness
Se observa que las variables precio y área tienen una distribución asimétrica sesgada a la derecha (coeficientes de asimetría de 1.44 y 2.09 respectivamente), esto significa que hay valores muy altos en el extremo, por lo que la cola de la derecha es más larga. En cuanto a la curtosis, ambas variables son leptocúrticas (tienen picos más altos que una distribución normal), es decir, que concentran una gran cantidad de valores en torno a la media, sin embargo el área presenta mayor concentración.
En cuanto a la dispersión, las desviaciones estandar son elevadas, lo que muestra que los datos son dispersos alrededor de la media y presentan alta variabilidad.
A continuación se muestran los histogramas para ver cómo se distribuyen las variables.
De entrada, ambos histogramas muestran lo que se explicó de curtosis y asimetría, en general, ambas variables no tienen una distribución normal sino que están sesgadas a la derecha.
##
## Attaching package: 'cowplot'
## The following object is masked from 'package:lubridate':
##
## stamp
boxplot_precio <- ggplot(vivienda, aes(x = "", y = preciom)) +
geom_boxplot() +
labs(title = "Precio en millones") +
theme_minimal()
boxplot_area <- ggplot(vivienda, aes(x = "", y = areaconst)) +
geom_boxplot() +
labs(title = "Área en mt cuadrados") +
theme_minimal()
# Combinar los dos boxplots en un solo gráfico de 1x2 (vertical)
plot_grid(boxplot_precio, boxplot_area, ncol = 2)El boxplot del precio muestra que la distribución del precio es ligeramente asimétrica a la derecha. Esto significa que hay más casas con precios altos que con precios bajos. también se presentan valores atípicos altos.
De otra parte, la distribución del área es más simétrica que la distribución del precio. Esto significa que hay una distribución más uniforme de las casas en términos de área. El área tiene más valores atípicos que el precio y quizá representen alguna dificyultades para la construcción del modelo. Sin embargo, desde ya se aclara que no se eliminarán registros de la base de datos.
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.
Se utilizó un gráfico de dispersión para ver el tipo de relación entre las dos variables, en el gráfico se observa que para valores entre 50 y 100 de areaconst hay una concentración de puntos que de alguna manera se acercan a la línea de la regresión, en la medida que areaconst crece los puntos se dispersan más, el R cuadrado explica que la variabilidad entre las variables se explica en un 57% y que la pendiente es de 2,16, es decir que por cada metro que aumente, el precio se incrementa en promedio en 2,16 millones.
ggplot(vivienda, aes(x = areaconst, y = preciom)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(x = "Área construida",
y = "Precio (en millones de pesos") +
ggtitle("Correlación entre Precio y Área Construida") +
stat_poly_eq(aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
formula = y ~ x, parse = TRUE)## `geom_smooth()` using formula = 'y ~ x'
Estime el modelo de regresión lineal simple entre precio=f(area)+ε Interprete los coeficientes del modelo β0, β1.
##
## Call:
## lm(formula = preciom ~ areaconst, data = vivienda)
##
## 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
## Validación de supuestos:
A continuación se calcula el test de Shapiro para verificar si hay una distribución normal de los residuales:
##
## Shapiro-Wilk normality test
##
## data: modelo$residuals
## W = 0.96486, p-value < 2.2e-16
Resultado: Se rechaza la hipótesis nula de normalidad (p-valor < 2.2e-16). Los residuos de su modelo no siguen una distribución normal.
### Test de Jarque-Bera
Esta prueba de normalidad es considerada más sensible a colas pesadas que la prueba de Shapiro-Wilk.
##
## Anderson-Darling normality test
##
## data: modelo$residuals
## A = 9.1199, p-value < 2.2e-16
Resultado: Rechaza la hipótesis nula de normalidad (p-valor < 2.2e-16). Similar a la prueba de Shapiro-Wilk, los residuos no siguen una distribución normal.
Esta prueba se utiliza para comparar la distribución empírica de una muestra con una distribución normal teórica.
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: modelo$residuals
## D = 0.060955, p-value = 6.975e-13
Resultado: Se rechaza la hipótesis nula de normalidad (p-valor < 2.2e-16). Consistente con las otras pruebas de normalidad, los residuos se desvían significativamente de una distribución normal.
En conclusión, las tres pruebas de normalidad rechazan fuertemente la suposición de que los residuos siguen una distribución normal. Esto implica que el modelo no cumple con los supuestos de algunos métodos estadísticos que dependen de la normalidad.
Evalúa si la varianza de los residuos es constante a lo largo del rango de la variable independiente.
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 292.99, df = 1, p-value < 2.2e-16
Resultado: Se rechaza la hipótesis nula de homoscedasticidad (p-valor < 2.2e-16). Hay evidencia de heteroscedasticidad en los residuos, lo que significa que la varianza no es constante.
Prueba específicamente si la varianza aumenta o disminuye con la variable independiente.
##
## Goldfeld-Quandt test
##
## data: modelo
## GQ = 0.72777, df1 = 680, df2 = 679, p-value = 1
## alternative hypothesis: variance increases from segment 1 to 2
Resultado: No se rechaza la hipótesis nula de no tendencia en la varianza (p-valor = 1). Esta prueba sugiere que la varianza podría estar aumentando con un segmento, lo que podría ser un patrón específico en lugar de una variación aleatoria.
La prueba de Breusch-Pagan indica una posible heteroscedasticidad, mientras que la prueba de Goldfeld-Quandt sugiere una posible tendencia creciente en la varianza. La heteroscedasticidad puede afectar la eficiencia de las estimaciones de los parámetros de su modelo y la precisión de las pruebas de hipótesis.
Evalúa si hay autocorrelación (correlación serial) en los residuos.
##
## Durbin-Watson test
##
## data: modelo
## DW = 1.443, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Resultado: Se rechaza la hipótesis nula de no autocorrelación (p-valor < 2.2e-16). Hay evidencia de autocorrelación positiva en los residuos, lo que significa que los errores están correlacionados positivamente.
En conclusión, a partir de los resultados de los test practicados, se concluye que los supuestos del modelo de regresión lineal no se cumplen.
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.
## 2.5 % 97.5 %
## areaconst 2.06264 2.266826
El intervalo de confianza del 95% para el coeficiente β1 en una regresión lineal indica que, en la población, el valor verdadero de β1 tiene una probabilidad del 95% de estar dentro de ese intervalo. Los límites del intervalo son 2.06264 y 2.266826.
Esto significa que si se repitiera el estudio muchas veces y se calculara el intervalo de confianza en cada ocasión, aproximadamente el 95% de los intervalos resultantes contendrían el valor verdadero de β1. En otras palabras, existe un nivel alto de confianza de que el valor de β1 se encuentra dentro de ese intervalo.
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 39.046787 4.09976963 9.524142 7.307017e-21
## areaconst 2.164733 0.05204291 41.595152 1.056327e-244
En la prueba de hipótesis t, se plantean dos hipótesis: la hipótesis nula (H0) y la hipótesis alternativa (H1). La hipótesis nula establece que no hay relación significativa entre la variable independiente y la variable dependiente, lo que implica que el coeficiente β1 es igual a cero. La hipótesis alternativa, por otro lado, sostiene que hay una relación significativa y que el coeficiente β1 no es igual a cero.
El t valor es mayor que cero por lo tanto se infiere que existe una relación entre las variables.
# Valor específico de X para la predicción
x0 <- 30 # Valor específico de X para la predicción
# Hacer la predicción de E[Y|X=x0]
prediccion <- predict(modelo, newdata = data.frame(areaconst = x0), interval = "confidence", level = 0.95)
prediccion## fit lwr upr
## 1 103.9888 98.80604 109.1715
fit: Este valor representa la predicción puntual del modelo para el nuevo valor de areaconst especificado en X = 30 (un apartamento de 30 metros cuadrados). En este caso, la predicción puntual es 103,9888. Esto significa que, según el modelo, se espera que el precio sea de 103,9 millones para el valor de un apartamento de 30 metros cuadrados.
lwr: Este valor representa el límite inferior del intervalo de confianza del 95%. En este caso, el límite inferior es 98,8 millones. Esto significa que existe un 95% de probabilidad de que el verdadero valor del precio se encuentre por encima de este valor.
upr: Este valor representa el límite superior del intervalo de confianza del 95%. En este caso, el límite superior es 109,2 millones. Esto significa que existe un 95% de probabilidad de que el verdadero valor del precio se encuentre por debajo de este valor.
Calcule e interprete el indicador de bondad R2.
## [1] 0.5597117
El R cuadrado, es una medida estadística que indica la fuerza de la relación lineal entre la variable dependiente y las variables independientes en un modelo de regresión lineal. Su valor oscila entre 0 y 1, donde:
0: Indica que no existe ninguna relación lineal entre las variables. 1: Indica que existe una perfecta relación lineal entre las variables, es decir, que todas las observaciones se encuentran exactamente sobre la línea de regresión. En el caso de un R cuadrado de 0.5597117, se concluye que aproximadamente el 55.97% de la variabilidad total de la variable dependiente se explica por las variables independientes incluidas en el modelo. Esto significa que el modelo es capaz de capturar una proporción significativa de la variabilidad de la variable dependiente.
El 44.03% restante de la variabilidad de la variable dependiente no se explica por las variables independientes del modelo. Esto puede deberse a varios factores, como la presencia de variables no observadas, errores de medición o una relación no lineal entre las variables.
Es importante tener en cuenta que un R cuadrado alto no garantiza necesariamente que el modelo sea bueno o que las variables independientes sean relevantes. Se deben considerar otros indicadores como la significancia estadística de los coeficientes de regresión, la normalidad de los residuos y la ausencia de multicolinealidad para evaluar la calidad del modelo, que como ya se observó, no cumple con los supuestos para que el modelo sea consistente y preciso.
¿Cuál sería el precio promedio estimado para un apartamento de 110 metros cuadrados?
# Valor específico de X para la predicción
x0 <- 110 # Valor específico de X para la predicción
# Hacer la predicción de E[Y|X=x0]
prediccion <- predict(modelo, newdata = data.frame(areaconst = x0), interval = "confidence", level = 0.95)
prediccion## fit lwr upr
## 1 277.1674 272.9573 281.3775
El modelo estima que el valor de un apartamento de 110 metros es de 277,2 millones, con un intervalo de confianza de 95%.
¿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? La respuesta es que SI es una buena oferta pues el modelo estimó que dicho apartamento cuesta 277 millones, el límite inferior de la estimación da 272 millones, es decir que aún con el intervalo inferior, sigue siendo una buena oferta. ¿Qué consideraciones adicionales se deben tener?. En este caso, asumimos que los precios tienen el mismo comportamiento entre zonas, pues solo se utilizó un modelo que explica el precio en función del área manteniendo constantes las demás variables.
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.
Este gráfico ayuda a evaluar si existe alguna relación sistemática entre los residuos (diferencia entre los valores reales y los valores ajustados por el modelo) y los valores ajustados. Si se observa alguna forma de patrón o estructura en el gráfico, podría indicar una violación del supuesto de linealidad.
Si los residuos están distribuidos aleatoriamente alrededor de cero, sin mostrar un patrón claro, entonces el supuesto de linealidad se cumple. De lo contrario, si hay un patrón evidente, por el contrario, como se evidencia, el patron no es claro mostrando una amplia concentración de los puntos con valores ajustados entre 150 y 250, de allí en adelante los puntos tienen un comportamiento volatil. La linealidad no es tan obvia en la gráfica.
Este gráfico permite evaluar si existe alguna relación sistemática entre los residuos y las variables independientes.
Si no se observa ningún patrón claro en estos gráficos y los residuos están distribuidos aleatoriamente alrededor de cero para todas las variables independientes, entonces se cumple el supuesto de independencia. Para el caso nuestro, los residuos no se distribuyen alrededor de cero, presumiendo que no se cumple el supuesto de independencia, tal como se evidenció en las pruebas.
El gráfico QQ (Quantile-Quantile) compara la distribución de los residuos con una distribución teórica, como la distribución normal.
Si los puntos en el gráfico QQ se ajustan aproximadamente a una línea recta, indica que los residuos siguen una distribución normal. Si los puntos se desvían significativamente de la línea recta, podría haber una violación del supuesto de normalidad.
El gráfico muestra que se presentan colas largas en la distribución de residuos, por lo tanto, la distribución es asimétrica, no se cumple el supuesto de normalidad de residuos.
De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.
A continuación se hacen las transformaciones empleando el modelo original y 3 modelos alternativos, es decir, el modelo1 es el modelo original, el modelo2 corresponde a la variable preciom con sus datos originales y la variable areaconst con logaritmo, el modelo3 tiene logaritmo en la variable precio y el modelo4 tiene los valores de ambas variables transformadas en logaritmos.
modelo1=lm(preciom ~ areaconst, data=vivienda) # Lin - Lin
modelo2=lm(preciom ~ log(areaconst), data=vivienda) # Lin - Log
modelo3=lm(log(preciom) ~ areaconst, data=vivienda) # Log - Lin
modelo4=lm(log(preciom) ~ log(areaconst), data=vivienda) # Log - LogLos siguientes son los gráficos de dispersión de cada modelo.
# Crear los gráficos de dispersión y las ecuaciones para cada modelo
grafico1 <- ggplot(vivienda, aes(x = areaconst, y = preciom)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(x = "Área",
y = "Precio") +
ggtitle("Modelo 1: Lin - Lin") +
stat_poly_eq(aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
formula = y ~ x, model = modelo1, parse = TRUE)
grafico2 <- ggplot(vivienda, aes(x = log(areaconst), y = preciom)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(x = "Logaritmo Área",
y = "Precio") +
ggtitle("Modelo 2: Lin - Log") +
stat_poly_eq(aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
formula = y ~ log(x), model = modelo2, parse = TRUE)
grafico3 <- ggplot(vivienda, aes(x = areaconst, y = log(preciom))) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(x = "Área",
y = "Logaritmo Precio") +
ggtitle("Modelo 3: Log - Lin") +
stat_poly_eq(aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
formula = log(y) ~ x, model = modelo3, parse = TRUE)
grafico4 <- ggplot(vivienda, aes(x = log(areaconst), y = log(preciom))) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(x = "Logaritmo de Área",
y = "Logaritmo de Precio") +
ggtitle("Modelo 4: Log - Log") +
stat_poly_eq(aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
formula = log(y) ~ log(x), model = modelo4, parse = TRUE)
# Crear el grid de gráficos
grid.arrange(grafico1, grafico2, grafico3, grafico4, ncol = 2)## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
En las gráficas no se aprecia una mejora del modelo, los logaritmos hacen que la distancia entre el valor observado y la línea de la regresión se minimicen en escala, pero la estructura sigue siendo la misma. Se observa un incremento poco significativo del R cuadrado en el modelo 2, sin embargo no es lo suficientemente cercano a 1 para inferir que el modelo cumple los supuestos.
De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.
El código elaborado recoge los test para medir la normalidad, varianza y no autocorrelación de cada modelo.
# Crear una lista para almacenar los resultados de cada prueba
resultados_normalidad <- list()
resultados_varianza <- list()
resultados_autocorrelacion <- list()
# Aplicar las pruebas de normalidad a cada modelo
modelos <- list(modelo1, modelo2, modelo3, modelo4)
nombres_modelos <- c("Modelo 1", "Modelo 2", "Modelo 3", "Modelo 4")
for (i in 1:4) {
resultados_normalidad[[nombres_modelos[i]]] <- c(
shapiro.test(residuals(modelos[[i]]))$p.value,
ad.test(residuals(modelos[[i]]))$p.value,
lillie.test(residuals(modelos[[i]]))$p.value
)
resultados_varianza[[nombres_modelos[i]]] <- c(
bptest(modelos[[i]])$p.value,
gqtest(modelos[[i]])$p.value
)
resultados_autocorrelacion[[nombres_modelos[i]]] <- dwtest(modelos[[i]])$p.value
}
# Crear tablas comparativas
tabla_normalidad <- as.data.frame(resultados_normalidad)
tabla_varianza <- as.data.frame(resultados_varianza)
tabla_autocorrelacion <- as.data.frame(resultados_autocorrelacion)
# Nombrar las filas de las tablas
rownames(tabla_normalidad) <- c("Shapiro-Wilk", "Anderson-Darling", "Lilliefors")
rownames(tabla_varianza) <- c("Breusch-Pagan", "Goldfeld-Quandt")
rownames(tabla_autocorrelacion) <- c("Durbin-Watson")
# Imprimir salidas redondeadas y con formato
# Redondear los valores de la tabla a 5 decimales
tabla_normalidad <- round(tabla_normalidad, 6)
tabla_varianza <- round(tabla_varianza, 6)
tabla_autocorrelacion <- round(tabla_autocorrelacion, 6)Las siguientes tablas presentan el p-valor de cada prueba practicada a cada modelo, se muestran los valores redondeados a 6 decimales.
| Modelo.1 | Modelo.2 | Modelo.3 | Modelo.4 | |
|---|---|---|---|---|
| Shapiro-Wilk | 0 | 0 | 0.000000 | 0.000000 |
| Anderson-Darling | 0 | 0 | 0.000004 | 0.000008 |
| Lilliefors | 0 | 0 | 0.001022 | 0.000304 |
Con todas estas pruebas, se comprueba la hipótesis nula que los datos se distribuyen normalmente. Así pues, la hipótesis nula es que la distribución de frecuencias de los datos se distribuye normalmente. Para rechazar o no rechazar la hipótesis nula, se obtiene un valor p de todas estas pruebas y se verifica que el p-valor sea mayor o menor que 0,05
Como se aprecia en la tabla, ningún p-valor supera el 0,05, por lo tanto no se asume que los residuos no siguen una distribución normal.
| Modelo.1 | Modelo.2 | Modelo.3 | Modelo.4 | |
|---|---|---|---|---|
| Breusch-Pagan | 0.000000 | 0 | 0.000000 | 0.000000 |
| Goldfeld-Quandt | 0.999982 | 1 | 0.999769 | 0.999998 |
En cuanto a la verificación que los residuos presentan una varianza constante, se evidencia que el test de Breusch Pagan arroja p-valores inferiores a 0,05 en todas las transformaciones, esto significa que existe heterocedasticidad, el test de Goldfeld-Quandt con los p-valor obtenidos no rechaza la hipótesis nula, indicando una posible tendencia creciente en la varianza de los residuos.
| Modelo.1 | Modelo.2 | Modelo.3 | Modelo.4 | |
|---|---|---|---|---|
| Durbin-Watson | 0 | 0 | 0 | 0 |
Por último, el test de Durbin-Watson indica que si el p-valor es cercano a 2, los residuos no se correlacionan, si tiende a cero, se indica una autocorrelación positiva, como es el caso de los resultados en los 4 modelos. En conclusión, no se observan mejoras en el test de autocorrelación de errores en ninguno de los modelos planteados.
Para cerrar este punto, se concluye que pese a hacer transformaciones en el modelo, ninguna de las opciones logra hacer que los supuestos de la regresión lineal se puedan verificar.
Estime varios modelos y compare los resultados obtenidos. En el mejor de los modelos, ¿se cumplen los supuestos sobre los errores?
Se realizó la estimación del precio de cada modelo cuando el área de un apartamento es igual a 50, 80, 100, 150 y 200. Se tuvo cuidado de transformar los resultados de los modelos 3 y 4 que se expresaban en logaritmos.
# Crear un data frame con los valores de areaconst
valores_areaconst <- data.frame(areaconst = c(50, 80, 100, 150, 200))
# Calcular los valores estimados para cada modelo y cada valor de areaconst
valores_estimados <- data.frame(
areaconst = valores_areaconst$areaconst,
modelo1 = predict(modelo1, newdata = valores_areaconst),
modelo2 = (predict(modelo2, newdata = valores_areaconst)),
modelo3 = exp(predict(modelo3, newdata = valores_areaconst)),
modelo4 = exp(predict(modelo4, newdata = valores_areaconst))
)
# Imprimir la tabla con los valores estimados
valores_estimadosDe acuerdo con la tabla anterior, los modelos 1 y 4 presentan estimaciones similares para el área igual a 80, 100, 150 y 200 metros. Los modelos 2 y 30 presentan estimaciones más bajas y más altas respectivamente.
Para comparar los resultados estimados con los valores de la tabla original, se hizó un promedio del preciom para cada valor de areaconst igual a 50, 80, 100, 150 y 200 metros cuadrados. Este valor se agregó a la tabla de los valores estimados para compararlos.
# Filtrar los resultados cuando areaconst tiene los valores 50, 80, 100, 150 y 200
valores_areaconst <- c(50, 80, 100, 150, 200)
resultados_or <- subset(vivienda, areaconst %in% valores_areaconst)
# Calcular el promedio de preciop por cada valor de areaconst
promedios <- aggregate(preciom ~ areaconst, data = resultados_or, FUN = mean)valores_estimados <- merge(valores_estimados, promedios[, c("areaconst", "preciom")], by = "areaconst")
print(valores_estimados)## areaconst modelo1 modelo2 modelo3 modelo4 preciom
## 1 50 147.2834 128.9503 152.0044 138.8194 145.7308
## 2 80 212.2254 220.7978 201.8449 210.1038 223.1463
## 3 100 255.5201 264.4042 243.8517 255.7907 260.8000
## 4 150 363.7567 343.6397 391.1968 365.7246 315.0000
## 5 200 471.9934 399.8582 627.5740 471.3239 413.3333
Al comparar los resultados de cada modelo con el valor promedio para cada areaconst = 50, 80, 100, 150 y 200, se percibe cierta consistencia o proximidad para todos los modelos con areaconst = 50, pero cuando areaconst = 200, los valores estimados se vuelven volátiles. Esto es un efecto de los valores atípicos que se evidenciaban en los boxplot y en los histogramas.
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.
Con los resultados obtenidos se recomienda la utilización del modelo lineal sin transformaciones, aunque en general si se va a utilizar debe hacerse con reservas puesto que no se cumplen los supuestos de homocedasticidad, de independencia de errores y de normalidad, el R cuadrado mostró que el 56% de la variabilidad del modelo se explica por la variable independiente (areaconst). Así las cosas, se debe revisar la base datos para depurar valores atípicos que están generando sesgos en las predicciones, tambnién se recomienda incluir variables adicionales o utilizar modelos distintos que se ajusten más a la realidad de los datos.
En conclusión, se recomienda: 1. Incorporar variabless adicionales 2. Revisar la calidad de los datos y hacer un tratamiento de valores atípicos 3. Explorar modelos distintos al modelo lineal que tenga unos supuestos que se puedan validar con los datos existentes.