Con base en los datos de ofertas de vivienda descargadas del portal Fincaraiz para apartamento de estrato 4 con área construida menor a 200 m2 (vivienda4.RDS) la inmobiliaria A&C requiere el apoyo de un cientifico de datos en la construcción de un modelo que lo oriente sobre los precios de inmuebles.Con este propósito el equipo de asesores a diseñado los siguientes pasos para obtener un modelo y así poder a futuro determinar los precios de los inmuebles a negociar.
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
## Loading required package: GGally
## Loading required package: ggplot2
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
## Loading required package: MASS
## Loading required package: summarytools
## Loading required package: psych
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
## Loading required package: tidyverse
## ── 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
library(ggplot2)
library(dplyr)
library(nortest)
library(stargazer)
##
## Please cite as:
##
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
data(vivienda4)
Apto <- filter(vivienda4, tipo == "Apartamento")
chuck(Apto)
## # A tibble: 1,363 × 5
## zona estrato preciom areaconst tipo
## <fct> <fct> <dbl> <dbl> <fct>
## 1 Zona Norte 4 220 52 Apartamento
## 2 Zona Norte 4 320 108 Apartamento
## 3 Zona Sur 4 290 96 Apartamento
## 4 Zona Norte 4 220 82 Apartamento
## 5 Zona Norte 4 220 75 Apartamento
## 6 Zona Norte 4 162 60 Apartamento
## 7 Zona Norte 4 225 84 Apartamento
## 8 Zona Norte 4 370 117 Apartamento
## 9 Zona Norte 4 155 60 Apartamento
## 10 Zona Norte 4 240 75 Apartamento
## # ℹ 1,353 more rows
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.
#Variable 1-Área construida
par(mfrow=c(1,2))
hist(Apto$areaconst, xlab="Metros Cuadrados", col="pink", main="Area Construida", freq=FALSE)
lines(density(Apto$areaconst), col = "yellow", lwd = 2)
boxplot(Apto$areaconst, xlab="Metros Cuadrados", col="pink", main="Area Construida")
summary(Apto$areaconst)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 40.00 60.00 70.00 75.48 84.00 200.00
Los datos muestran que, en promedio, las viviendas tienen un área construida de 75.48 m2, con tamaños que varían desde un mínimo de 40 m2 hasta un máximo de 200 m2. Al analizar el gráfico de caja, se observa que la mediana es de 70 m2, lo que la sitúa por debajo de la media de 75.48 m2. Esto indica una distribución asimétrica positiva hacia la derecha, evidenciada por la curva de densidad en el histograma. Esto sugiere la presencia de valores más dispersos respecto a la media en el extremo derecho.El gráfico de caja también confirma esta tendencia, ya que el rango es más amplio por encima de la mediana, indicando una mayor dispersión de datos en esa zona. Adicionalmente, se puede concluir que la mitad de las viviendas en oferta tienen un área construida cercano al 70 m2.
##Variable 2- Precio
par(mfrow=c(1,2))
hist(Apto$preciom, xlab="Millones COP", col="pink", main="Precio", freq=FALSE)
lines(density(Apto$preciom), col = "yellow", lwd = 2)
boxplot(Apto$preciom, xlab="Millones COP", col="pink", main="Precio")
summary(Apto$preciom)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 78.0 153.5 185.0 202.4 240.0 645.0
Los datos indican que el precio promedio de las viviendas ofertadas es de 202 millones, con valores que varían entre 78 millones (mínimo) y 645 millones (máximo). Según lo representado en el gráfico de caja, se observa que la mediana (185 millones) está separada de la media (202.4 millones). El histograma muestra una distribución bimodal, con una concentración de precios relativamente uniforme tanto por debajo como por encima. Esto confirma una asimetría positiva. También es importante destacar que aproximadamente la mitad de las viviendas se ofrecen a un precio cercano al 185 millones.
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 (area construida) - incluir gráficos e indicadores apropiados interpretados.
fit <- lm(Apto$preciom ~ Apto$areaconst)
plot(Apto$areaconst, Apto$preciom, main="", col="blue", pch=16,
xlab=iconv("Área construida", to = "UTF-8"),
ylab=iconv("Precio", to = "UTF-8"))
abline(lm(Apto$preciom ~ Apto$areaconst), col="yellow", lwd=3)
mtext(iconv("Área construida", to = "UTF-8"), side=1, line=3)
mtext(iconv("Precio", to = "UTF-8"), side=2, line=3)
lines(lowess(Apto$areaconst, Apto$preciom), col = "red", lwd = 3)
legend("topleft", legend = c("Lineal", "Suavizado"),
lwd = 3, lty = c(1, 1), col = c("yellow", "red"))
coef_r = cor(Apto$areaconst, Apto$preciom)
print( paste('El coeficiente de correlación de Pearson entre Precio (x) vs. Área Construida (y), es: ', coef_r) )
## [1] "El coeficiente de correlación de Pearson entre Precio (x) vs. Área Construida (y), es: 0.74813885119095"
Se genera un gráfico de dispersión para examinar el comportamiento de los datos correspondientes a las variables “Area_construida” y “Precio_millones” en la base de datos. Al observar el gráfico, se aprecia una distribución de puntos en el plano cartesiano, sugiriendo una posible tendencialineal con una pendiente positiva. Esto implica que, a medida que aumenta el área construida de la vivienda, el precio tiende a incrementar. Se procede a calcular el coeficiente de correlación, el cual arroja un valor de 0.74 utilizando el método de Pearson. Este resultado indica que existe una relación lineal positiva debil entre las variable mencionadas.
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_lineal = lm(preciom ~ areaconst, data=Apto)
summary(modelo_lineal)
##
## Call:
## lm(formula = preciom ~ areaconst, data = 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
Al aplicar le modelo de regresión lineal se puede observar que se tienen lo coeficientes de intercepto con un valor de 39.04 y una pendiente de 2.16, el área es signifitiva dentro de la explicación del precio. Mediante la aplicación del modelo de regresión lineal a los apartamentos, se nota que el valor de β0 (intercepto) es de 39 millones. Esto significa que este sería el precio sin tomar en cuenta la superficie construida, representando efectivamente el valor del área en el cual se erigirá el apartamento. En cuanto a β1, que es de 2.16, denota la inclinación o pendiente. Es decir, por cada metro cuadrado adicional en el apartamento, el precio aumentaría en 2.16 millones. Por lo tanto, la ecuación será:
Precio = 39.04 + 2.16(área construida) + 43.34
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_lineal, level=0.95)
## 2.5 % 97.5 %
## (Intercept) 31.00423 47.089340
## areaconst 2.06264 2.266826
Con un nivel de confianza del 95% y un margen de error α del 5%, podemos afirmar que el coeficiente β1 para el área construida puede variar entre 2,06 y 2,26 millones por cada metro cuadrado construido. Además, al examinar la prueba de hipótesis t en el resumen del modelo de regresión lineal, se observa un P-Value de 2e-16, indicando un nivel de confianza del 99.9% (***). Para β0 como β1, decimos que los coeficientes son significativos y por tanto se rechaza hipotesis nula y se acepta la hipótesis alterna. Lo que proporciona evidencia estadística de una correlación significativa entre el precio y el área construida.
Calcule e interprete el indicador de bondad R2.
summary(modelo_lineal)
##
## Call:
## lm(formula = preciom ~ areaconst, data = 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
r2 = summary(modelo_lineal)$r.squared
print( paste("Coeficiente de determinación (R2): ", r2) )
## [1] "Coeficiente de determinación (R2): 0.559711740661315"
El Coeficiente de Determinación, o R², es una métrica que evalúa si las predicciones obtenidas a través de la línea de regresión realmente representan la realidad. En este modelo, el R² es de 0.55, lo que indica un ajuste adecuado a los datos, aunque no sobresaliente. Esto nos sugiere que el tamaño construido de una vivienda explica aproximadamente el 55% de la variabilidad en los precios por millón de dichas viviendas.
¿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?.
datos110 <- data.frame(areaconst= 110)
predict (modelo_lineal, datos110, interval = "confidence", level = 0.95)
## fit lwr upr
## 1 277.1674 272.9573 281.3775
El valor medio estimado de una vivienda de 110 metros cuadrados es de 277.16 millones de pesos colombianos. El intervalo de confianza para esta estimación sugiere que el promedio podría oscilar entre 272.95 y 281.37 millones de pesos colombianos, con una confianza del 95%. Es importante tener en cuenta que otras variables como la ubicación, pago de administración, número de habitaciones y el estrato socioeconómico pueden influir en la decisiones. Por lo tanto, un apartamento de 110 metros cuadrados en la misma zona con un precio inferior a 270 millones sería claramente una excelente oferta.
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.
#Obteniendo los residuos del modelo
residuos <- residuals(modelo_lineal)
##Gráfico 1- Varianza
##Gráfico 2- Normalidad
##Gráfico 3- Linealidad
##Gráfico 4- Independencia
par(mfrow=c(2,2))
plot(modelo_lineal)
#Homocedasticidad
par(mfrow=c(1,1))
plot(
fitted(modelo_lineal),
residuos,
xlab = "Predicted values",
ylab = "Residuals",
main = "Residuals vs. Predicted values"
)
abline(h = 0, col = 'red')
lmtest::bptest(modelo_lineal)
##
## studentized Breusch-Pagan test
##
## data: modelo_lineal
## BP = 292.99, df = 1, p-value < 2.2e-16
##No autorrelación
lmtest::dwtest(modelo_lineal)
##
## Durbin-Watson test
##
## data: modelo_lineal
## DW = 1.443, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Varianza constante (Gráfica #1 - “Residuales vs. Valores Ajustados”): El supuesto de que los errores se distribuyen aleatoriamente no se cumple. Esto indica que los residuos no siguen un patrón aleatorio, lo que sugiere que la relación entre el precio y el área construida de la vivienda no es una asociación lineal perfecta, a diferencia de lo que indica la gráfica de dispersión.
Normalidad (Gráfica #2 - “Q-Q Residuales”): La mayoría de los datos no se ajustan de forma exacta a la línea de normalidad del QQ-Plot, aunque están ligeramente cerca de ella. Por lo tanto, el supuesto de normalidad no se cumple por completo.
Linealidad (Gráfica #1 - “Residuales vs. Valores Ajustados”): La variable dependiente parece tener una relaciónlineal con la variable independiente. Esto es evidente en la curva de ajuste en rojo, por lo tanto, este supuesto se cumple, a pesar de que no es completamente lineal.
Independencia: Dado que los datos no están organizados en función del tiempo, no es posible validar este supuesto. Por lo tanto, se descarta para esta aproximación lineal y para futuras transformaciones.
Homocedasticidad: La gráfica y la prueba estadística realizada con un valor p significativamente menor a 0 (2.2e-16) indican que el modelo no muestra homocedasticidad.
No correlación: Al examinar la gráfica, se nota que los residuos no muestran una distribución aleatoria en el gráfico, lo que indica la posible existencia de autocorrelación.
De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.
boxcox(lm(Apto$preciom ~ Apto$areaconst, data=Apto), lambda = -3:3)
bc<-boxcox(lm(Apto$preciom ~ Apto$areaconst), lambda = -1:1)
lambda <- bc$x[which.max(bc$y)]
lambda
## [1] -0.1313131
El valor de lambda, que es -0.1313, sugiere que la variable dependiente (precio) debería ser expresada en una escala logarítmica. Dado que el gráfico muestra que el valor 0 está incluido en el intervalo de confianza del λ óptimo y la estimación está muy cerca de 0, en este caso, la mejor opción sería aplicar la transformación logarítmica.
y1 = ((Apto$preciom ^ lambda) - 1 )/ lambda
modelo_Box=lm(y1 ~ areaconst, data=Apto)
summary(modelo_Box)
##
## Call:
## lm(formula = y1 ~ areaconst, data = Apto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.48740 -0.06527 -0.00535 0.07957 0.32740
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.4459708 0.0097192 354.55 <2e-16 ***
## areaconst 0.0046628 0.0001234 37.79 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1027 on 1361 degrees of freedom
## Multiple R-squared: 0.5121, Adjusted R-squared: 0.5117
## F-statistic: 1428 on 1 and 1361 DF, p-value: < 2.2e-16
Se puede evidenciar que, en el nuevo modelo, tanto el punto de intercepción como el coeficiente correspondiente al área de construcción siguen manteniendo su significancia, con una prueba de bondad muy similar a la que teníamos en el modelo original.
De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.
##Gráfico 1- Varianza
##Gráfico 2- Normalidad
##Gráfico 3- Linealidad
##Gráfico 4- Independencia
par(mfrow=c(2,2))
plot(modelo_Box)
##Homocedasticidad
par(mfrow=c(1,1))
plot(
fitted(modelo_Box),
residuos,
xlab = "Predicted values",
ylab = "Residuals",
main = "Residuals vs. Predicted values"
)
abline(h = 0, col = 'red')
lmtest::bptest(modelo_Box)
##
## studentized Breusch-Pagan test
##
## data: modelo_Box
## BP = 130.48, df = 1, p-value < 2.2e-16
##No autorrelación
lmtest::dwtest(modelo_Box)
##
## Durbin-Watson test
##
## data: modelo_Box
## DW = 1.3101, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Varianza Constante (Gráfica #1 - “Residuales vs. Valores Ajustados”): El supuesto de que los errores se distribuyen aleatoriamente no se cumple, lo mismo que ocurre en el modelo lineal original. Esto indica que los residuos no siguen un patrón aleatorio, lo que sugiere que la relación entre el precio y el área construida de la vivienda no es una asociación lineal perfecta, a diferencia de lo que indica la gráfica de dispersión.
Normalidad (Gráfica #2 - “Q-Q Residuales”): La mayoría de los datos no se ajustan de forma exacta a la línea de normalidad del QQ-Plot, aunque están ligeramente cerca de ella. Por lo tanto, el supuesto de normalidad no se cumple por completo.
Linealidad (Gráfica #1 - “Residuales vs. Valores Ajustados”): La variable dependiente parece tener una relación lineal con la variable independiente. Esto es evidente en la curva de ajuste en rojo, por lo tanto, este supuesto se cumple, a pesar de que no es completamente lineal, tanto en el modelo original y en la aplicación de la transformación.
Independencia: Dado que los datos no están organizados en función del tiempo, no es posible validar este supuesto en ninguno de los dos modelos. Por lo tanto, se descarta para esta aproximación lineal y se recomienda considerar otro tipo de modelo.
Homocedasticidad: La gráfica y la prueba estadística realizada muestran un valor p significativamente menor a 0, al igual que en el modelo original. Esto indica que el modelo no exhibe homocedasticidad.
No Correlación: Al examinar la gráfica, se observa que los residuos no muestran una distribución aleatoria en el gráfico, lo que indica la posible existencia de autocorrelación, al igual que ocurre en el modelo anterior.
Estime varios modelos y compare los resultados obtenidos. En el mejor de los modelos, ¿se cumplen los supuestos sobre los errores?
modelo1=lm(preciom ~ log(areaconst), data=Apto) # Lin - Log
modelo2=lm(log(preciom) ~ areaconst, data=Apto) # Log - Lin
stargazer(modelo1, modelo2, type="text", df=FALSE)
##
## ================================================
## Dependent variable:
## ----------------------------
## preciom log(preciom)
## (1) (2)
## ------------------------------------------------
## log(areaconst) 195.419***
## (4.445)
##
## areaconst 0.009***
## (0.0002)
##
## Constant -635.532*** 4.551***
## (19.092) (0.019)
##
## ------------------------------------------------
## Observations 1,363 1,363
## R2 0.587 0.520
## Adjusted R2 0.587 0.519
## Residual Std. Error 41.982 0.205
## F Statistic 1,933.199*** 1,473.424***
## ================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
##MODELO 1 Lin- Log
##Gráfico 1- Varianza
##Gráfico 2- Normalidad
##Gráfico 3- Linealidad
##Gráfico 4- Independencia
par(mfrow=c(2,2))
plot(modelo1)
##Homocedasticidad
par(mfrow=c(1,1))
plot(
fitted(modelo1),
residuos,
xlab = "Predicted values",
ylab = "Residuals",
main = "Residuals vs. Predicted values"
)
abline(h = 0, col = 'red')
lmtest::bptest(modelo1)
##
## studentized Breusch-Pagan test
##
## data: modelo1
## BP = 214.66, df = 1, p-value < 2.2e-16
##No autorrelación
lmtest::dwtest(modelo1)
##
## Durbin-Watson test
##
## data: modelo1
## DW = 1.4775, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
##MODELO 2 Log-Lin
##Gráfico 1- Varianza
##Gráfico 2- Normalidad
##Gráfico 3- Linealidad
##Gráfico 4- Independencia
par(mfrow=c(2,2))
plot(modelo2)
##Homocedasticidad
par(mfrow=c(1,1))
plot(
fitted(modelo2),
residuos,
xlab = "Predicted values",
ylab = "Residuals",
main = "Residuals vs. Predicted values"
)
abline(h = 0, col = 'red')
lmtest::bptest(modelo2)
##
## studentized Breusch-Pagan test
##
## data: modelo2
## BP = 150.38, df = 1, p-value < 2.2e-16
##No autorrelación
par(mfrow=c(1,1))
lmtest::dwtest(modelo2)
##
## Durbin-Watson test
##
## data: modelo2
## DW = 1.3187, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Varianza Constante (Gráfica #1 - “Residuales vs. Valores Ajustados”): No se cumple la suposición de que los errores se distribuyan de manera aleatoria. Esto implica que los residuos no exhiben un patrón de dispersión aleatorio, lo que sugiere que la relación entre el precio y el área construida de la vivienda no sigue una asociación lineal perfecta, a diferencia de lo que indica el gráfico de dispersión.
Normalidad (Gráfica #2 - “Q-Q Residuales”): La mayoría de los datos no se ajustan de manera precisa a la línea de normalidad del QQ-Plot, aunque muestran una cercanía leve. Por lo tanto, no se cumple completamente el supuesto de normalidad.
Linealidad (Gráfica #1 - “Residuales vs. Valores Ajustados”): Se observa que la variable dependiente parece tener una relación lineal con la variable independiente. Esto es evidente en la curva de ajuste en rojo, por lo tanto, se cumple este supuesto.
Independencia: Dado que los datos no están organizados en función del tiempo, no es posible validar este supuesto en ninguno de los dos modelos. Por lo tanto, se descarta para esta aproximación lineal.
Homocedasticidad: Tanto la gráfica como la prueba estadística muestran un valor p significativamente menor a 0, similar al modelo original.
No Correlación: Al examinar la gráfica, se observa que los residuos no siguen una distribución aleatoria en el gráfico, lo que indica la posible existencia de autocorrelación.
Varianza Constante (Gráfica #1 - “Residuales vs. Valores Ajustados”): El supuesto de que los errores se distribuyan aleatoriamente no se satisface. Esto sugiere que los residuos no presentan un patrón aleatorio, lo que implica que la relación entre el precio y el área construida de la vivienda no sigue una asociación lineal perfecta, en contraste con lo que sugiere la gráfica de dispersión.
Normalidad (Gráfica #2 - “Q-Q Residuales”): La mayoría de los datos no se ajustan de manera precisa a la línea de normalidad en el QQ-Plot, aunque muestran una aproximación cercana. En consecuencia, el supuesto de normalidad no se cumple en su totalidad.
Linealidad (Gráfica #1 - “Residuales vs. Valores Ajustados”): La variable dependiente parece mostrar una relación lineal con la variable independiente, como lo indica la curva de ajuste en rojo. Por lo tanto, este supuesto se mantiene válido.
Independencia: Dado que los datos no están organizados en función del tiempo, no es posible verificar este supuesto en ninguno de los dos modelos. Por lo tanto, se excluye este requerimiento en el contexto de la aproximación lineal.
Homocedasticidad: Tanto la gráfica como la prueba estadística exhiben un valor p significativamente inferior a 0, al igual que en el modelo original.
No Correlación: Al examinar la gráfica, se nota que los residuos no presentan una distribución aleatoria en el gráfico, lo que sugiere la posible existencia de autocorrelación, un hallazgo que se repite en ambos modelos.
## Comparación de modelos
#R2
stargazer(modelo_lineal, modelo_Box, modelo1, modelo2, type="text", df=FALSE)
##
## =======================================================================
## Dependent variable:
## ---------------------------------------------------
## preciom y1 preciom log(preciom)
## (1) (2) (3) (4)
## -----------------------------------------------------------------------
## areaconst 2.165*** 0.005*** 0.009***
## (0.052) (0.0001) (0.0002)
##
## log(areaconst) 195.419***
## (4.445)
##
## Constant 39.047*** 3.446*** -635.532*** 4.551***
## (4.100) (0.010) (19.092) (0.019)
##
## -----------------------------------------------------------------------
## Observations 1,363 1,363 1,363 1,363
## R2 0.560 0.512 0.587 0.520
## Adjusted R2 0.559 0.512 0.587 0.519
## Residual Std. Error 43.339 0.103 41.982 0.205
## F Statistic 1,730.157*** 1,428.335*** 1,933.199*** 1,473.424***
## =======================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
#Linealidad
par(mfrow=c(2,2))
plot(modelo_lineal, 1, caption = "Modelo Lineal")
plot(modelo_Box, 1, caption = "Modelo transformado")
plot(modelo1, 1, caption = "Modelo 1")
plot(modelo2, 1, caption = "Modelo 2")
#Normalidad comparativo
par(mfrow=c(2,2))
plot(modelo_lineal, 2, caption = "Modelo Lineal")
plot(modelo_Box, 2, caption = "Modelo transformado")
plot(modelo1, 2, caption = "Modelo 1")
plot(modelo2, 2, caption = "Modelo 2")
plot(density(modelo_lineal$residuals))
plot(density(modelo_Box$residuals))
plot(density(modelo1$residuals))
plot(density(modelo2$residuals))
#Homocedasticidad comparativo
par(mfrow=c(2,2))
plot(modelo_lineal, 3, caption = "Modelo Lineal")
plot(modelo_Box, 3, caption = "Modelo transformado")
plot(modelo1, 3, caption = "Modelo 1")
plot(modelo2, 3, caption = "Modelo 2")
# Observaciones Influyentes. Leverage y Valores Atípicos
par(mfrow=c(2,2))
plot(modelo_lineal, 5, caption = "Modelo Lineal")
plot(modelo_Box, 5, caption = "Modelo transformado")
plot(modelo1, 5, caption = "Modelo 1")
plot(modelo2, 5, caption = "Modelo 2")
R2: En los cuatro modelos lineales que hemos analizado, se
aprecia que el coeficiente de determinación (R2) supera el 50%. Sin
embargo, es crucial no depender exclusivamente de esta métrica. Por esta
razón, resulta fundamental examinar los residuos para validar las
suposiciones del modelo y determinar los ajustes necesarios.
Linealidad (Gráfica #1 - “Residuales vs. Valores Ajustados”): Se aprecia que la variable dependiente mantiene una relación lineal con la variable independiente en los cuatro modelos. Aunque la linealidad no es perfecta, es evidente en la curva de ajuste en rojo. Por lo tanto, este supuesto se cumple en todos los casos.
Normalidad (Gráfica #2 - “Q-Q Residuales”): La mayoría de los datos no se ajustan exactamente a la línea de normalidad en el QQ-Plot, aunque muestran una leve proximidad. Por lo tanto, no se cumple completamente el supuesto de normalidad en ninguno de los cuatro modelos.
Homocedasticidad: Tanto la gráfica como la prueba estadística realizada muestran un valor p significativamente inferior a 0 en los cuatro modelos. Esto indica que el modelo no presenta homocedasticidad.
Observaciones influyentes: Al examinar las observaciones y evaluar la distancia Cook con respecto a los estimadores en los cuatro modelos, se evidencia la presencia de valores atípicos (outliers) que pueden tener un impacto en la estimación de los modelos.
Tras analizar los resultados, podemos deducir que inicialmente obtenemos un coeficiente de determinación (R2) mayor al 50% en todos los modelos, lo cual es notable. Sin embargo, es crucial tener en cuenta que esta prueba no es la única que proporciona información sobre el desempeño del modelo. Por esta razón, se llevó a cabo la prueba de correlación de Pearson, que arrojó un valor de 0.74. Esto sugiere una relación positiva entre las variables, aunque no es perfecta. Esto implica que, a medida que una variable aumenta, es probable que la otra también lo haga.
Es importante señalar que los modelos no satisfacen los supuestos de normalidad y varianza constante. Por tanto, es necesario abordar estos problemas antes de confiar plenamente en las conclusiones del modelo. Esto podría implicar transformar las variables, considerar diferentes especificaciones del modelo o, en algunos casos, optar por métodos estadísticos alternativos más robustos frente a estas violaciones de supuestos. En nuestro caso, aunque se realizó una transformación del modelo, los resultados se mantuvieron en lo mismo.
Se intentó determinar si al utilizar otros modelos, estas métricas experimentarían cambios. Sin embargo, a pesar de las diversas modificaciones realizadas, no se obtuvo una respuesta concluyente. Por tanto, se sugiere considerar el uso de variables diferentes o explorar otros tipos de modelos que no dependan estrictamente de la normalidad. Es crucial reconocer y tener en cuenta las limitaciones que se presentan en este contexto, dado que, solo se cuenta con una variable explicativa, se sugiera usar variables como habitación, estrato y demás factores que no nos limiten tanto.