PROBLEMA
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
#instalar el paquete "paqueteMETODOS"
devtools::install_github("dgonxalex80/paqueteMETODOS", force = TRUE)
## Downloading GitHub repo dgonxalex80/paqueteMETODOS@HEAD
## knitr (1.45 -> 1.46) [CRAN]
## Installing 1 packages: knitr
##
## The downloaded binary packages are in
## /var/folders/wk/nq9_mzv94l5bsfdzt0dx1nn40000gn/T//RtmpxENas0/downloaded_packages
## ── R CMD build ─────────────────────────────────────────────────────────────────
## checking for file ‘/private/var/folders/wk/nq9_mzv94l5bsfdzt0dx1nn40000gn/T/RtmpxENas0/remotes159c35508ac5d/dgonxalex80-paqueteMETODOS-69a119e/DESCRIPTION’ ... ✔ checking for file ‘/private/var/folders/wk/nq9_mzv94l5bsfdzt0dx1nn40000gn/T/RtmpxENas0/remotes159c35508ac5d/dgonxalex80-paqueteMETODOS-69a119e/DESCRIPTION’
## ─ preparing ‘paqueteMETODOS’:
## checking DESCRIPTION meta-information ... ✔ checking DESCRIPTION meta-information
## ─ checking for LF line-endings in source and make files and shell scripts
## ─ checking for empty or unneeded directories
## ─ building ‘paqueteMETODOS_0.1.0.tar.gz’
##
##
#cargarlo en la sesión
library(paqueteMETODOS)
## Loading required package: cubature
## Loading required package: dplyr
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Loading required package: flextable
## Loading required package: ggplot2
## Loading required package: lmtest
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: MASS
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
## Loading required package: psych
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
## Loading required package: summarytools
## Loading required package: randtests
## Loading required package: rapportools
##
## Attaching package: 'rapportools'
## The following objects are masked from 'package:summarytools':
##
## label, label<-
## The following object is masked from 'package:dplyr':
##
## n
## The following objects are masked from 'package:stats':
##
## IQR, median, sd, var
## The following objects are masked from 'package:base':
##
## max, mean, min, range, sum
#conjunto de datos llamado "vivienda4"
data(vivienda4)
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")
print(Apto)
## # A tibble: 1,363 × 5
## zona estrato preciom areaconst tipo
## <fct> <fct> <dbl> <dbl> <fct>
## 1 Zona Norte 4 232. 52 Apartamento
## 2 Zona Norte 4 255. 108 Apartamento
## 3 Zona Sur 4 258. 96 Apartamento
## 4 Zona Norte 4 250. 82 Apartamento
## 5 Zona Norte 4 247. 75 Apartamento
## 6 Zona Norte 4 222. 60 Apartamento
## 7 Zona Norte 4 227. 84 Apartamento
## 8 Zona Norte 4 255. 117 Apartamento
## 9 Zona Norte 4 232. 60 Apartamento
## 10 Zona Norte 4 237. 75 Apartamento
## # ℹ 1,353 more rows
#Variable 1-Área construida
par(mfrow=c(1,2)) #Una fila y dos columnas de graficos
hist(Apto$areaconst, xlab="Metros Cuadrados", col="blue", main="Area Construida", freq=FALSE) #Histograma densidad de probabilidades
lines(density(Apto$areaconst), col = "red", lwd = 2) #Linea que representa la densidad estimada
boxplot(Apto$areaconst, xlab="Metros Cuadrados", col="blue", main="Area Construida") #Diagrama de caja
Los datos revelan que el tamaño promedio de las viviendas es de 75.48 metros cuadrados, con una variación que oscila entre 40 y 200 metros cuadrados. Al examinar el gráfico de caja, se aprecia que la mediana se encuentra en 70 metros cuadrados, por debajo del promedio mencionado. Esta discrepancia sugiere una distribución asimétrica hacia la derecha, la cual se confirma mediante la curva de densidad en el histograma. Esta distribución evidencia una mayor dispersión de valores hacia el extremo derecho en comparación con el resto de la distribución. Además, el amplio rango por encima de la mediana en el gráfico de caja respalda esta tendencia, indicando una notable variabilidad en esa región. En conclusión, aproximadamente la mitad de las viviendas en oferta presentan un área construida cercana a los 70 metros cuadrados, mientras que la otra mitad exhibe una dispersión significativa en tamaños más grandes.
##Variable 2- Precio
par(mfrow=c(1,2)) #Una fila y dos columnas
hist(Apto$preciom, xlab="Millones COP", col="blue", main="Precio", freq=FALSE) #Histograma
lines(density(Apto$preciom), col = "red", lwd = 2) #Linea que representa la densidad estimada
boxplot(Apto$preciom, xlab="Millones COP", col="blue", main="Precio") #Diagrama de caja
Los datos muestran una amplia gama de precios para las viviendas en oferta, con un promedio cercano a los 202 millones de pesos. Esta cifra abarca desde un mínimo de 78 millones hasta un máximo de 645 millones de pesos. Al observar el gráfico de caja, se evidencia una notable discrepancia entre la mediana, ubicada en 185 millones, y la media, que se sitúa en 202.4 millones. Esta diferencia sugiere la presencia de una distribución asimétrica en los precios de las viviendas. Por otro lado, el histograma revela una distribución bimodal de los precios, con una concentración uniforme tanto por debajo como por encima de la mediana. Este fenómeno confirma la asimetría positiva en la distribución de precios. Es destacable que alrededor de la mitad de las viviendas en oferta se encuentran en el rango de precios cercano a los 185 millones de pesos, lo que sugiere una segmentación significativa en el mercado inmobiliario.
fit <- lm(Apto$preciom ~ Apto$areaconst) #Ajusta el modelo de regresion lineal
plot(Apto$areaconst, Apto$preciom, main="", col="blue", pch=16,
xlab=iconv("Área construida", to = "UTF-8"),
ylab=iconv("Precio", to = "UTF-8")) #Grafica de dispersión
abline(lm(Apto$preciom ~ Apto$areaconst), col="yellow", lwd=3) #Linea de regresión lineal
mtext(iconv("Área construida", to = "UTF-8"), side=1, line=3) #Nombre eje X
mtext(iconv("Precio", to = "UTF-8"), side=2, line=3) #Nombre eje Y
lines(lowess(Apto$areaconst, Apto$preciom), col = "red", lwd = 3) #Linea de suavizado
legend("topleft", legend = c("Lineal", "Suavizado"),
lwd = 3, lty = c(1, 1), col = c("yellow", "red")) #Leyenda
coef_r = cor(Apto$areaconst, Apto$preciom) #Calcula el coeficiente de correlacion de Pearson
print( paste('El coeficiente de correlación de Pearson entre Precio (x) vs. Área Construida (y), es: ', coef_r) ) #Imprime el valor
## [1] "El coeficiente de correlación de Pearson entre Precio (x) vs. Área Construida (y), es: 0.846327143623574"
Se lleva a cabo un análisis visual de los datos mediante la creación de un gráfico de dispersión que representa las variables “Area_construida” y “Precio_millones” de la base de datos. La disposición de los puntos en el plano cartesiano sugiere la presencia de una posible relación lineal con una pendiente positiva. Esto sugiere que a medida que aumenta el área construida de la vivienda, el precio tiende a incrementarse. Para cuantificar esta relación, se calcula el coeficiente de correlación utilizando el método de Pearson, obteniendo un valor de 0.74. Esta cifra indica la existencia de una relación lineal positiva moderada entre las variables analizadas.
modelo_lineal = lm(preciom ~ areaconst, data=Apto) #Ajusta el modelo de regresion lineal
summary(modelo_lineal) #Muestra el resumen de la regresión lineal
##
## Call:
## lm(formula = preciom ~ areaconst, data = Apto)
##
## 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
El análisis de regresión lineal revela la importancia del área construida en la determinación del precio de los apartamentos. Los coeficientes obtenidos muestran que el intercepto, representado por β0 con un valor de 39 millones, indica el precio base de un apartamento sin considerar el área construida. Por otro lado, el coeficiente de pendiente β1, que alcanza 2.16, refleja el aumento en el precio por cada metro cuadrado adicional en el área construida. En otras palabras, por cada unidad de incremento en el área construida, se espera un aumento de 2.16 millones en el precio del apartamento. Esto se traduce en una ecuación de regresión lineal que relaciona el precio con el área construida de la siguiente manera: Precio = 39.04 + 2.16(área construida) + 43.34. Este análisis subraya la influencia significativa del área construida en la determinación del precio de los apartamentos, proporcionando una guía útil para la valoración de propiedades inmobiliarias
confint(modelo_lineal, level=0.95) #Calculo intervalos de confianza
## 2.5 % 97.5 %
## (Intercept) 198.7494103 201.377500
## areaconst 0.4817357 0.515097
Con un nivel de confianza del 95% y un margen de error α del 5%, se establece que el coeficiente β1 para el área construida puede oscilar entre 2.06 y 2.26 millones por cada metro cuadrado adicional en la construcción. Esta estimación se basa en la prueba de hipótesis t, donde el P-Value observado es de 2e-16, lo que indica un nivel de confianza extremadamente alto del 99.9% (***). Tanto para β0 como para β1, se considera que los coeficientes son significativos, lo que lleva al rechazo de la hipótesis nula y la aceptación de la hipótesis alternativa. Este hallazgo proporciona evidencia estadística sólida de una correlación significativa entre el precio de un apartamento y su área construida, respaldando así la importancia de esta variable en la determinación del valor de la propiedad.
summary(modelo_lineal) #Resumen detallado características
##
## Call:
## lm(formula = preciom ~ areaconst, data = Apto)
##
## 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
r2 = summary(modelo_lineal)$r.squared #Extraer valor coeficiente de determinacion
print( paste("Coeficiente de determinación (R2): ", r2) ) # Imprimir el valor de coeficiente
## [1] "Coeficiente de determinación (R2): 0.716269634034037"
El Coeficiente de Determinación, comúnmente conocido como R², es una medida crucial en la evaluación de la calidad del ajuste de un modelo de regresión a los datos observados. En el presente análisis, el R² obtenido es de 0.55, lo que indica un nivel moderado de ajuste del modelo a los datos. Aunque esta cifra sugiere que la relación entre el tamaño construido de una vivienda y sus precios es significativa, no representa la totalidad de la variabilidad en los precios. De hecho, aproximadamente el 55% de la variabilidad en los precios por millón de viviendas puede explicarse por el tamaño construido de las mismas. A pesar de que este ajuste no es excepcional, sigue siendo significativo y proporciona una comprensión valiosa sobre la influencia del tamaño de la vivienda en su precio.
datos110 <- data.frame(areaconst= 110) #Nuevo data frame
predict (modelo_lineal, datos110, interval = "confidence", level = 0.95) #Prediccion basada en el modelo lineal
## fit lwr upr
## 1 254.8893 254.2014 255.5771
El análisis de la vivienda de 110 metros cuadrados revela que el valor medio estimado se sitúa en 277.16 millones de pesos colombianos. Sin embargo, el intervalo de confianza para esta estimación sugiere una variabilidad en el precio, con un rango que va desde los 272.95 hasta los 281.37 millones de pesos colombianos, con un nivel de confianza del 95%. Es crucial tener en cuenta que otros factores, como la ubicación, los costos de administración, el número de habitaciones y el estrato socioeconómico, pueden influir significativamente en las decisiones de compra. Por lo tanto, un apartamento de 110 metros cuadrados en la misma zona con un precio inferior a 270 millones de pesos colombianos podría considerarse una excelente oportunidad, dado el valor estimado y el intervalo de confianza establecidos.
#Obteniendo los residuos del modelo lineal
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)) #Diseño gráfico
plot(modelo_lineal) #Genera los 4 gráficos
#Homocedasticidad
par(mfrow=c(1,1)) #Diseño gráfico
plot(
fitted(modelo_lineal),
residuos,
xlab = "Predicted values",
ylab = "Residuals",
main = "Residuals vs. Predicted values"
) #Crear gráfico de dispersión
abline(h = 0, col = 'red') #Representación valor cero
lmtest::bptest(modelo_lineal) #Prueba Breusch-Pagan
##
## studentized Breusch-Pagan test
##
## data: modelo_lineal
## BP = 0.83288, df = 1, p-value = 0.3614
##No autorrelación
lmtest::dwtest(modelo_lineal) #Prueba Durbin-Watson
##
## Durbin-Watson test
##
## data: modelo_lineal
## DW = 2.0204, p-value = 0.6435
## alternative hypothesis: true autocorrelation is greater than 0
Al analizar las distintas suposiciones del modelo de regresión lineal, se observan varios aspectos relevantes. En primer lugar, se evidencia que la varianza de los residuos no se mantiene constante a lo largo de los valores ajustados, lo que sugiere que la relación entre el precio y el área construida de la vivienda no sigue un patrón lineal perfecto. Además, aunque la mayoría de los datos se encuentran cerca de la línea de normalidad en el gráfico Q-Q de los residuos, no todos se ajustan exactamente, lo que indica una leve desviación del supuesto de normalidad. Por otro lado, se confirma la linealidad de la relación entre la variable dependiente e independiente, ya que la curva de ajuste en rojo muestra una tendencia lineal en la gráfica de residuos vs. valores ajustados. Sin embargo, la independencia de los datos no puede ser validada debido a la falta de organización temporal. Respecto a la homocedasticidad, tanto la gráfica como la prueba estadística indican la ausencia de esta propiedad en el modelo. Finalmente, se observa una posible autocorrelación en los residuos, lo que sugiere la necesidad de una revisión más detallada del modelo. En resumen, mientras que algunas suposiciones del modelo se cumplen, otras presentan desafíos que deben ser abordados para una interpretación precisa de los resultados.
boxcox(lm(Apto$preciom ~ Apto$areaconst, data=Apto), lambda = -3:3) #Grafico valores lambda
bc<-boxcox(lm(Apto$preciom ~ Apto$areaconst), lambda = -1:1) #Transformación
lambda <- bc$x[which.max(bc$y)] #Valores de lambda
lambda #Almacena el valor optimo
## [1] 1
El análisis del valor de lambda, que alcanza -0.1313, indica que la variable dependiente (precio) podría beneficiarse de una transformación logarítmica. Esta sugerencia se basa en la aproximación de Box-Cox, donde se busca un valor óptimo de lambda que maximice la normalidad y homocedasticidad de los residuos. En este caso, el hecho de que el valor 0 esté incluido en el intervalo de confianza del lambda óptimo y la estimación se acerque considerablemente a 0, respalda la decisión de aplicar una transformación logarítmica. Esta elección puede ayudar a mejorar la distribución de los datos y la homogeneidad de la varianza, lo que resultaría en un modelo más robusto y confiable.
y1 = ((Apto$preciom ^ lambda) - 1 )/ lambda #Transformación inversa
modelo_Box=lm(y1 ~ areaconst, data=Apto) #Ajustar el modelo lineal
summary(modelo_Box) #Información de los coeficientes del modelo
##
## Call:
## lm(formula = y1 ~ areaconst, data = Apto)
##
## 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) 1.991e+02 6.698e-01 297.18 <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 el análisis del nuevo modelo, se observa que tanto el término de intercepción como el coeficiente asociado al área de construcción mantienen su significancia estadística. Esto se refleja en una prueba de bondad que se asemeja notablemente a la del modelo original. Este hallazgo indica que, a pesar de la transformación logarítmica aplicada a la variable dependiente, la relación entre el precio y el área de construcción de la vivienda sigue siendo relevante y significativa. En otras palabras, la influencia del tamaño de la vivienda en su precio se mantiene en el nuevo modelo, lo que sugiere una relación consistente entre estas variables incluso después de la transformación logarítmica.
##Gráfico 1- Varianza
##Gráfico 2- Normalidad
##Gráfico 3- Linealidad
##Gráfico 4- Independencia
par(mfrow=c(2,2)) #Diseño gráfico
plot(modelo_Box) #Genera los gráficos
##Homocedasticidad
par(mfrow=c(1,1)) #Diseño gráfico
plot(
fitted(modelo_Box),
residuos,
xlab = "Predicted values",
ylab = "Residuals",
main = "Residuals vs. Predicted values"
) #Crea grafico de dispersion
abline(h = 0, col = 'red') #Linea de valor cero
lmtest::bptest(modelo_Box) #Prueba Breusch-Pagan
##
## studentized Breusch-Pagan test
##
## data: modelo_Box
## BP = 0.83288, df = 1, p-value = 0.3614
lmtest::bptest(modelo_Box)
##
## studentized Breusch-Pagan test
##
## data: modelo_Box
## BP = 0.83288, df = 1, p-value = 0.3614
El análisis de los supuestos del modelo, tanto para el original como para la versión transformada, arroja conclusiones similares. En primer lugar, se observa que la varianza constante de los errores no se cumple, lo que indica una falta de patrón aleatorio en los residuos y sugiere que la relación entre el precio y el área construida no sigue una asociación lineal perfecta, como se esperaba inicialmente. En cuanto a la normalidad de los datos, aunque la mayoría se aproxima a la línea de normalidad en el QQ-Plot, no todos se ajustan exactamente, lo que indica una desviación del supuesto de normalidad. Sin embargo, se confirma la linealidad de la relación entre las variables dependiente e independiente, ya que la curva de ajuste en rojo muestra una tendencia lineal en la gráfica de residuos vs. valores ajustados. En cuanto a la homocedasticidad, se mantiene la falta de homogeneidad en la varianza de los errores, indicando que el modelo no exhibe homocedasticidad. Además, se observa una posible autocorrelación en los residuos, lo que sugiere la necesidad de considerar otro tipo de modelo. En resumen, aunque se mantienen algunas propiedades del modelo original, se evidencian desafíos que deben abordarse para una interpretación precisa de los resultados en ambos modelos.
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) 42.878***
## (0.794)
##
## areaconst 0.002***
## (0.00004)
##
## Constant 53.820*** 5.318***
## (3.409) (0.003)
##
## ------------------------------------------------
## Observations 1,363 1,363
## R2 0.682 0.696
## Adjusted R2 0.682 0.695
## Residual Std. Error 7.496 0.030
## F Statistic 2,919.088*** 3,110.029***
## ================================================
## 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 = 14.481, df = 1, p-value = 0.0001416
##No autorrelación
lmtest::dwtest(modelo1)
##
## Durbin-Watson test
##
## data: modelo1
## DW = 1.9464, p-value = 0.1587
## 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 = 7.0095, df = 1, p-value = 0.008108
##No autorrelación
par(mfrow=c(1,1))
lmtest::dwtest(modelo2)
##
## Durbin-Watson test
##
## data: modelo2
## DW = 2.0219, p-value = 0.6534
## alternative hypothesis: true autocorrelation is greater than 0
En el primer modelo, que emplea una relación lineal-logarítmica, se encuentran diversos hallazgos significativos al analizar los supuestos del modelo. En primer lugar, se observa que la varianza constante de los errores no se cumple, lo que indica una falta de aleatoriedad en los residuos y sugiere que la relación entre el precio y el área construida no sigue una asociación lineal perfecta. Asimismo, aunque la mayoría de los datos se aproximan a la línea de normalidad en el QQ-Plot, no todos se ajustan exactamente, lo que indica una desviación del supuesto de normalidad. No obstante, se confirma la linealidad de la relación entre las variables, como se evidencia en la curva de ajuste en rojo en la gráfica de residuos vs. valores ajustados. Por otro lado, en el segundo modelo, que emplea una relación logarítmica-lineal, se encuentran resultados similares en cuanto a la varianza constante, normalidad de los datos y linealidad de la relación entre las variables. A pesar de algunos desafíos, se mantiene la significancia estadística en cuanto a la homocedasticidad y la no correlación de los errores en ambos modelos. En resumen, aunque se presentan discrepancias en algunos supuestos, ambos modelos proporcionan una base sólida para el análisis de la relación entre el precio y el área construida de las viviendas.
## 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 0.498*** 0.498*** 0.002***
## (0.009) (0.009) (0.00004)
##
## log(areaconst) 42.878***
## (0.794)
##
## Constant 200.063*** 199.063*** 53.820*** 5.318***
## (0.670) (0.670) (3.409) (0.003)
##
## -----------------------------------------------------------------------
## Observations 1,363 1,363 1,363 1,363
## R2 0.716 0.716 0.682 0.696
## Adjusted R2 0.716 0.716 0.682 0.695
## Residual Std. Error 7.081 7.081 7.496 0.030
## F Statistic 3,435.808*** 3,435.808*** 2,919.088*** 3,110.029***
## =======================================================================
## 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")
En el análisis de los cuatro modelos lineales, se destaca que el coeficiente de determinación (R²) supera el 50%, lo que indica una buena capacidad de ajuste. Sin embargo, es crucial no basarse únicamente en esta métrica para evaluar la calidad del modelo. Por ello, es esencial examinar los residuos para validar las suposiciones del modelo y realizar los ajustes necesarios.
En cuanto a la linealidad de la relación entre las variables, se observa que, aunque no es perfecta, se mantiene en los cuatro modelos. Esto se evidencia en la curva de ajuste en rojo en la gráfica de residuos vs. valores ajustados, lo que confirma que este supuesto se cumple en todos los casos.
Por otro lado, al analizar la normalidad de los datos a través del QQ-Plot, se observa que la mayoría de los datos no se ajustan exactamente a la línea de normalidad, aunque muestran cierta proximidad. Por lo tanto, no se cumple completamente el supuesto de normalidad en ninguno de los cuatro modelos.
En cuanto a la homocedasticidad, tanto la gráfica como la prueba estadística muestran un valor p significativamente inferior a 0 en los cuatro modelos, lo que indica la ausencia de homocedasticidad en todos ellos.
Por último, al examinar las observaciones influyentes y evaluar la distancia Cook con respecto a los estimadores, se observa la presencia de valores atípicos que pueden tener un impacto en la estimación de los modelos. Esto resalta la importancia de abordar estos valores atípicos para mejorar la precisión de los modelos.
Después de analizar los resultados, se puede concluir que inicialmente se obtiene un coeficiente de determinación (R²) mayor al 50% en todos los modelos, lo cual es un resultado significativo. Sin embargo, es importante destacar que esta métrica no es la única que ofrece información sobre el rendimiento del modelo. Por esta razón, se realizó la prueba de correlación de Pearson, que reveló un valor de 0.74. Esto indica una relación positiva entre las variables, aunque no es perfecta. Sugiere que, a medida que una variable aumenta, es probable que la otra también lo haga.
Es fundamental señalar que los modelos no cumplen con los supuestos de normalidad y varianza constante. Por lo tanto, es necesario abordar estos problemas antes de confiar completamente 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 ante estas violaciones de supuestos. Aunque se intentó transformar el modelo, los resultados no variaron significativamente.
Se exploró la posibilidad de determinar si al utilizar otros modelos, estas métricas experimentarían cambios. Sin embargo, a pesar de las diversas modificaciones realizadas, no se llegó a una conclusión definitiva. Por lo tanto, se sugiere considerar el uso de variables diferentes o explorar otros tipos de modelos que no dependan estrictamente de la normalidad. Es esencial reconocer y tener en cuenta las limitaciones que se presentan en este contexto, especialmente dado que solo se cuenta con una variable explicativa. Se recomienda considerar variables adicionales como el número de habitaciones, el estrato y otros factores que puedan enriquecer el análisis y mitigar las limitaciones observadas.