Informe

Estimados señores Inmobiliaria A&C

Teniendo en cuenta su solicitud, procedemos a realizar el análisis descriptivo de los datos compartidos de los apartamentos de estrato 4 en la ciudad de Cali y a compartir los resultados del modelo que se construyó según los pasos indicados por sus asesores.

Los apartamentos se encuentran concentrados en el sector Sur de la ciudad y en menor proporción en el norte de la misma, con pocos datos en las otras zonas de la ciudad. De la muestra entregada que corresponde a 1363 apartamentos, en promedio el valor de un apartamento se encuentra en 243 millones de pesos aproximadamente y el área construida en promedio es de 75.48 m2 para un costo aproximado por m2 de 3.16.

ggplot(apartamento4, aes(x = zona)) +                      
  geom_bar(width=0.5, colour="black", fill="turquoise2") +        
  labs(x="Tipo de vivienda",y= "Cantidad")  +              
  ylim(c(0, 1100)) +
  theme_bw(base_size = 12) +                
  geom_text(aes(label=after_stat(count)), stat='count', 
            position=position_dodge(0.9), 
            vjust=-0.5, 
            size=5.0
            ) + 
  facet_wrap(~"Viviendas por Tipo")    

histograma2 <- ggplot(apartamento4, aes(x=preciom)) +
  ggtitle("Histograma de precio de apartamentos") +
  theme_fivethirtyeight() +
  geom_histogram(color="#28324a", fill="#4876FF", bins=30)
histograma2

Para ver el comportamiento del precio de los apartamentos teniendo en cuenta el área construida se define el siguiente modelo de regresión lineal que, después del análisis realizado, nos da los mejores resultados:

Precio = 200.1 + 0.4984(Área Construida)+ε

Se define que el modelo de regresión lineal simple es el que mejor sirve para predecir el comportamiento de la variable precio en función del área construida. El modelo cumple con todos los supuestos y presenta el mejor ajuste, en comparación con los resultados de otros modelos, lo que nos dice que modelo explica una gran cantidad de la variabilidad en el precio.

Es importante indicar que este modelo puede servir como apoyo para la empresa en cuanto a la toma de decisiones, usando este modelo para predecir valores y generando de acuerdo a esto las mejores ofertas que beneficien tanto a los clientes como a la empresa.

Adjunto este informe se encuentran los anexos, donde se muestra el proceso más detallado de la estadística descriptiva y las validaciones realizadas para llegar al modelo planteado.

Anexos

1. Estadística descriptiva

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.

Se realiza el cargue de los datos correspondientes a las viviendas de tipo apartamento en estrato 4, teniendo en cuenta que el conjunto tiene también casas, se hace la limpieza correspondiente a la información.

data(vivienda4)
summary(vivienda4)
##            zona      estrato     preciom        areaconst     
##  Zona Centro :   8   3:   0   Min.   :207.4   Min.   : 40.00  
##  Zona Norte  : 288   4:1706   1st Qu.:230.7   1st Qu.: 60.00  
##  Zona Oeste  :  60   5:   0   Median :238.8   Median : 75.00  
##  Zona Oriente:   6   6:   0   Mean   :243.7   Mean   : 87.63  
##  Zona Sur    :1344            3rd Qu.:251.5   3rd Qu.: 98.00  
##                               Max.   :309.7   Max.   :200.00  
##           tipo     
##  Apartamento:1363  
##  Casa       : 343  
##                    
##                    
##                    
## 
apartamento4 <- subset(vivienda4, tipo == 'Apartamento')
summary(apartamento4)
##            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  
##                    
##                    
##                    
## 

En la tabla anterior se observa, que son los apartamentos de estrato 4 se encuentran en su mayoría principalmente ubicados en el sur y en menor proporción en el norte. Con un promedio de área construida de 75.48 m2 y con un precio promedio de 236.1 millones de pesos.

Realizamos el histograma para la variable area construida:

histograma <- ggplot(apartamento4, aes(x=areaconst)) +
  ggtitle("Área construida en apartamentos") +
  theme_fivethirtyeight() +
  geom_histogram(color="#28324a", fill="#836FFF", bins=50)
histograma

En el histograma anterior podemos ver gráficamente que la mayoría de los apartamentos tiene entre 50 a 100 m2 y observando un pico en la media que se indicó anteriormente.

Realizamos un histograma para la variable precio:

histograma2 <- ggplot(apartamento4, aes(x=preciom)) +
  ggtitle("Precio de los apartamentos") +
  theme_fivethirtyeight() +
  geom_histogram(color="#28324a", fill="#63B8FF", bins=50)
histograma2

En los histogramas anteriores podemos ver que la mayoria de los apartamentos tienen precios entre 100 a 250 millones de pesos

Ahora aplicamos el gráfico de cajas y bigotes para ver el los datos atípicos de la variable precio:

boxplot(apartamento4$preciom, main='Cajas y bigotes para la variable precio', col = "#FFE1FF")

Se procede a realizar el análisis de las variables a utilizar para el modelo, las cuales son área y precio de la vivienda, comenzando por la variable precio.

summarytools::descr(apartamento4$preciom)
## Descriptive Statistics  
## apartamento4$preciom  
## N: 1363  
## 
##                     preciom
## ----------------- ---------
##              Mean    237.68
##           Std.Dev     13.29
##               Min    207.41
##                Q1    228.79
##            Median    236.14
##                Q3    243.59
##               Max    305.19
##               MAD     10.98
##               IQR     14.79
##                CV      0.06
##          Skewness      1.28
##       SE.Skewness      0.07
##          Kurtosis      3.19
##           N.Valid   1363.00
##         Pct.Valid    100.00

La variable precio es una variable continua cuantitativa, y se observa que es asimétrica con una distribución de datos positivamente sesgada. Vemos que el precio promedio de un apartamento en Cali está en los $247.7 millones de pesos; con apartamentos desde los $207.4 hasta los $305.2 millones de pesos.

El análisis de indicadores cómo la desviación estandar (13.29), el rango intercuartilico (14.70) y el coeficiente de variación (0,06) indican que los datos son bastante homogéneos y con baja dispersión de datos. El valor del sesgo (Skewness) es de 1.28, indica que la distribución de los precios está sesgada hacia la derecha.

Realizamos el mismo proceso para la variable areaconst.

summarytools::descr(apartamento4$areaconst)
## Descriptive Statistics  
## apartamento4$areaconst  
## N: 1363  
## 
##                     areaconst
## ----------------- -----------
##              Mean       75.48
##           Std.Dev       22.56
##               Min       40.00
##                Q1       60.00
##            Median       70.00
##                Q3       84.00
##               Max      200.00
##               MAD       14.83
##               IQR       24.00
##                CV        0.30
##          Skewness        2.08
##       SE.Skewness        0.07
##          Kurtosis        6.32
##           N.Valid     1363.00
##         Pct.Valid      100.00

La variable areaconst es una variable continua cuantitativa, y se observa que es asimétrica con una distribución de datos positivamente sesgada. Vemos que el promedio del área para los apartamentos está en los 75.48 m2; con viviendas desde los 40 hasta los 200 m2 de área construida, y una gran concentración de área construida entre los 60 y 90 m2.

El análisis de indicadores cómo la desviación estandar (22.56), el rango intercuartilico (24.00) y el coeficiente de variación (0.30) indican una variabilidad moderada en relación con la media de los datos. Los datos presentan una forma sesgada hacia la derecha (Skewness 2.08), caracterizada por una concentración de valores más bajos hacia el lado derecho de la media.

Realizamos el gráfico de densidad de la distribución de precios.

plot(density(apartamento4$preciom))
media_precio = mean(apartamento4$preciom)
abline(v = media_precio, col = "red", lty = 2)

Esto nos muestra gráficamente que la distribución es asimétrica con sesgo hacia la derecha.

2. Correlación

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.

Para ver la relación entre las dos variables realizamos el gráfico de dispersión:

   ggplot(data =apartamento4, aes(x=areaconst,y=preciom, color = "green")) +
     geom_point() +
     theme_bw() +
     theme(legend.position = "none") +
     labs(title="Gráfico de Dispersión Precio vs. Área Construida ",x="Área Construida", y = "Precio")

Al ver los resultados se observa que la relación entre las dos variables es una relación lineal positiva directa. Para ver la relación lineal entre las dos variables, utilizaremos el coeficiente de Pearson:

x <- apartamento4$areaconst
y <- apartamento4$preciom
cor(x,y)
## [1] 0.8463271

Dado que el coeficiente da un valor mayor a 0.8 se dice que la asociación lineal es positiva fuerte También lo podemos ver en el siguiente gráfico:

ggpairs(apartamento4[,3:4], title="Apartamentos de estrato 4") 

3. Modelo de regresión lineal simple

Estime el modelo de regresión lineal simple entre precio=f(area)+ε. Interprete los coeficientes del modelo β0, β1 en caso de ser correcto.

Se realiza el analisis de modelos para identificar su comportamiento

modelo1 = lm(preciom ~ areaconst, data = apartamento4)
resumen1 = summary(modelo1)
print(resumen1)
## 
## Call:
## lm(formula = preciom ~ areaconst, data = apartamento4)
## 
## 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

Se grafican los resultados de este modelo:

par(mfrow=c(2,2))
plot(modelo1)

El modelo de regresión simple es un modelo medianamente apropiado para describir la relación entre las dos variables precio y área construida. Los coeficientes del modelo β0 y β1 que corresponden al intercepto y la pendiente de la recta son los siguientes:

  • βo que corresponde al intercepto tiene un valor de 200 lo cual quiere decir que si la variable independiente área construida es 0, el precio esperado sería de 200.1 millones. En este contexto esto no tendría sentido pues un apartamento no puede venderse sin área construida.

  • β1 que es la pendiente de la recta tiene un valor estimado de aproximadamente 0.49 lo cual nos dice que por cada metro cuadrado que aumente el área construida, el precio aumentará en 490 mil pesos.

El valor p de ambos coeficientes es muy pequeño (tendiendo a 0) lo cual nos da evidencia de que el coeficiente es significativamente diferente de cero. Esto significa que hay una relación significativa entre la variable predictora correspondiente y la variable de respuesta en el modelo, es poco probable que el efecto observado sea el resultado del azar y, en cambio, es más probable que refleje una relación genuina entre las variables

4. Intervalo de confianza

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.

Se construye un intervalo de confianza con el 95% para el β1

conf_int_beta1 <- confint(modelo1)[2, ]
print(conf_int_beta1)
##     2.5 %    97.5 % 
## 0.4817357 0.5150970

Según los resultados del modelo el valor p es menor que el nivel de significancia (generalmente 0.05), entonces se rechaza la hipótesis nula de que β1 es igual a cero, lo que significa que hay evidencia suficiente para concluir que el coeficiente β1 es significativamente diferente de cero.

Si se aplica el test de correlación de Pearson, que realiza una prueba de hipótesis sobre la correlación entre las variables, al revisar el valor de p que tiene a 0 (p < 2.2e-16) se rechaza la hipótesis nula donde la relación entre las dos variables es 0, por lo tanto se acepta la hipótesis alterna que es nos dice que el área si influye en el valor del precio.

cor.test(apartamento4$preciom,apartamento4$areaconst)
## 
##  Pearson's product-moment correlation
## 
## data:  apartamento4$preciom and apartamento4$areaconst
## t = 58.616, df = 1361, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.8305531 0.8607445
## sample estimates:
##       cor 
## 0.8463271

5. Indicador de bondad R2

Calcule e interprete el indicador de bondad R2

r2 = resumen1$r.squared
cat("El indicador de bondad es: ", r2)
## El indicador de bondad es:  0.7162696

El indicador de bondad R2 es una medida que indica cuánta variabilidad en la variable de respuesta es explicada por el modelo de regresión. Con el valor obtenido se considera que el modelo tiene un buen ajuste y explica una cantidad sustancial de la variabilidad en la variable de respuesta

6. Predicción

¿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?

Para responder la pregunta se hace la predicción usando el modelo inicial

predict(modelo1, data.frame(areaconst=110), interval = "prediction", level = 0.95)
##        fit      lwr      upr
## 1 254.8893 240.9814 268.7971

Como vemos en la respuesta dada, el precio estimado sería de 254.88 y comparándolo con el valor propuesto de 200 millones seria una oferta atractiva, sin embargo se deben tener en cuenta otras variables como la zona donde se ubica el inmueble o el piso del apartamento, ya que esto puede influir en la calidad de la oferta y aumentar o disminuir el interés del cliente.

7. Validación de supuestos modelo inicial

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 .

Se realiza la validación de los supuestos con el modelo inicial, verificando primero el de normalidad, utilizando el test de Shapiro-Wilk

shapiro.test(modelo1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo1$residuals
## W = 0.99885, p-value = 0.5419

Aplicamos adicionalmente la Prueba de normalidad Jarque bera

jb.norm.test(modelo1$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo1$residuals
## JB = 0.56616, p-value = 0.745

Y también la prueba de normalidad Anderson - Darling

ad.test(modelo1$residuals)
## 
##  Anderson-Darling normality test
## 
## data:  modelo1$residuals
## A = 0.42398, p-value = 0.318

Por último aplicamos la Prueba de normalidad Lilliefors (Kolmogorov-Smirnov)

lillie.test(modelo1$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo1$residuals
## D = 0.016011, p-value = 0.541

Viendo los resultados de los test de normalidad, vemos que todos los valores p son mayores que el nivel de significancia (0.05) por lo tanto no hay suficiente evidencia para rechazar la hipótesis nula, con lo que se dice que el supuesto es válido y se asume que los errores tienen una distribución normal.

Se realiza la validación del supuesto de homocedasticidad (varianza constante) con el Test de Breusch-Pagan

lmtest::bptest(modelo1)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo1
## BP = 0.83288, df = 1, p-value = 0.3614

Y también con el test de Goldfeld-Quandt

lmtest::gqtest(modelo1)
## 
##  Goldfeld-Quandt test
## 
## data:  modelo1
## GQ = 1.0884, df1 = 680, df2 = 679, p-value = 0.135
## alternative hypothesis: variance increases from segment 1 to 2

Como en este caso los valores p son mayores que el nivel de significancia (0.05) no hay evidencia para rechazar la hipótesis nula y se asume que el supuesto de homocedasticidad es válido en este modelo.

Se verifica la autocorrelación de errores, con la prueba de Durbin-Watson

lmtest::dwtest(modelo1)
## 
##  Durbin-Watson test
## 
## data:  modelo1
## DW = 2.0204, p-value = 0.6435
## alternative hypothesis: true autocorrelation is greater than 0

Como el valor-p es 0.6435 es mayor que el nivel de significancia de 0.05, no se rechaza la hipótesis nula. Quiere decir que hay evidencia significativa de no autocorrelación en los residuos del modelo. Esto significa que los errores no están correlacionados entre sí, por lo tanto el supuesto es válido.

8, 9, 10 Transformaciones

    1. De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.
    1. De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.
    1. Estime varios modelos y compare los resultados obtenidos. En el mejor de los modelos, ¿se cumplen los supuestos sobre los errores?

Vamos a aplicar las transformaciones para verificar diferentes modelos de regresión y ver cual se ajusta mejor:

modelo2 = lm(preciom ~ log(areaconst), data = apartamento4)
modelo3 = lm(log(preciom) ~ areaconst, data = apartamento4)
modelo4 = lm(log(preciom) ~ log(areaconst), data = apartamento4)
stargazer(modelo1, modelo2, modelo3, modelo4, type="text", df=FALSE)
## 
## =======================================================================
##                                     Dependent variable:                
##                     ---------------------------------------------------
##                              preciom                log(preciom)       
##                         (1)          (2)          (3)          (4)     
## -----------------------------------------------------------------------
## areaconst             0.498***                  0.002***               
##                       (0.009)                  (0.00004)               
##                                                                        
## log(areaconst)                    42.878***                  0.174***  
##                                    (0.794)                   (0.003)   
##                                                                        
## Constant             200.063***   53.820***     5.318***     4.723***  
##                       (0.670)      (3.409)      (0.003)      (0.014)   
##                                                                        
## -----------------------------------------------------------------------
## Observations           1,363        1,363        1,363        1,363    
## R2                     0.716        0.682        0.696        0.674    
## Adjusted R2            0.716        0.682        0.695        0.674    
## Residual Std. Error    7.081        7.496        0.030        0.031    
## F Statistic         3,435.808*** 2,919.088*** 3,110.029*** 2,814.311***
## =======================================================================
## Note:                                       *p<0.1; **p<0.05; ***p<0.01

Como se puede observar, el modelo con el mejor R2 es el modelo Lin - Lin, que es el modelo inicial, pues su R2 es el más cercano a 1 con 0.716.

Para revisar si hay alguna transformación necesaria para mejorar el modelo de regresión lineal vamos a aplicar la transformación de Box-Cox

par(mfrow = c(1,2))
boxcox(modelo1, lambda = -3:3)
bc<-boxcox(modelo1, lambda = -1:1)

(lambda <- bc$x[which.max(bc$y)])
## [1] 1

El resultado (λ = 1) indica que la variable dependiente esta en la misma escala que la variable independiente y no se necesita realizar ninguna transformación al modelo, como se mencionó anteriormente.

Validación de supuestos otros modelos

Se realiza la validación de los supuestos para cada uno de los modelos generados para revisar su comportamiento:

Modelo 2 - Lin - Log

Prueba de normalidad de shapiro:

shapiro.test(modelo2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo2$residuals
## W = 0.9971, p-value = 0.01302

Prueba de normalidad Jarque bera:

jb.norm.test(modelo2$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo2$residuals
## JB = 6.2905, p-value = 0.0375

Prueba de normalidad Anderson - Darling:

ad.test(modelo2$residuals)
## 
##  Anderson-Darling normality test
## 
## data:  modelo2$residuals
## A = 1.1581, p-value = 0.005009

Prueba de normalidad Lilliefors (Kolmogorov-Smirnov):

lillie.test(modelo2$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo2$residuals
## D = 0.023906, p-value = 0.06555

Se realiza la validación del supuesto de varianza constante con el Test de Breusch-Pagan para el modelo Lin - Log:

lmtest::bptest(modelo2)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo2
## BP = 14.481, df = 1, p-value = 0.0001416

Y también con el test de Goldfeld-Quandt

lmtest::gqtest(modelo2)
## 
##  Goldfeld-Quandt test
## 
## data:  modelo2
## GQ = 0.9648, df1 = 680, df2 = 679, p-value = 0.6797
## alternative hypothesis: variance increases from segment 1 to 2

Se verifica la autocorrelación de errores, con la prueba de Durbin-Watson para este modelo:

lmtest::dwtest(modelo2)
## 
##  Durbin-Watson test
## 
## data:  modelo2
## DW = 1.9464, p-value = 0.1587
## alternative hypothesis: true autocorrelation is greater than 0

Se muestran gráficamente los resultados de este modelo.

par(mfrow=c(2,2))
plot(modelo2)

Se interpreta esto como evidencia de que los residuos de este modelo no siguen una distribución normal. En otras palabras, el test de normalidad sugiere que los residuos no son consistentes con la suposición de normalidad, que es una de las suposiciones clave de los modelos de regresión lineal. Hay suficiente evidencia para rechazar la hipótesis nula de que los residuos provienen de una distribución normal. Pero los supuestos de homocedasticidad y correlación si se están cumpliendo.

Modelo 3 - Log - Lin

Prueba de normalidad de shapiro:

shapiro.test(modelo3$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo3$residuals
## W = 0.99907, p-value = 0.7333

Prueba de normalidad Jarque bera:

jb.norm.test(modelo3$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo3$residuals
## JB = 0.57101, p-value = 0.746

Prueba de normalidad Anderson - Darling:

ad.test(modelo3$residuals)
## 
##  Anderson-Darling normality test
## 
## data:  modelo3$residuals
## A = 0.33717, p-value = 0.5044

Prueba de normalidad Lilliefors (Kolmogorov-Smirnov):

lillie.test(modelo3$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo3$residuals
## D = 0.013497, p-value = 0.7919

Se realiza la validación del supuesto de varianza constante con el Test de Breusch-Pagan para el modelo Log - Lin:

lmtest::bptest(modelo3)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo3
## BP = 7.0095, df = 1, p-value = 0.008108

Y también con el test de Goldfeld-Quandt

lmtest::gqtest(modelo3)
## 
##  Goldfeld-Quandt test
## 
## data:  modelo3
## GQ = 1.1117, df1 = 680, df2 = 679, p-value = 0.08389
## alternative hypothesis: variance increases from segment 1 to 2

Se verifica la autocorrelación de errores, con la prueba de Durbin-Watson para este modelo:

lmtest::dwtest(modelo3)
## 
##  Durbin-Watson test
## 
## data:  modelo3
## DW = 2.0219, p-value = 0.6534
## alternative hypothesis: true autocorrelation is greater than 0

Se muestran gráficamente los resultados de este modelo.

par(mfrow=c(2,2))
plot(modelo3)

Se interpreta esto como evidencia de que los residuos de este modelo si siguen una distribución normal. No hay suficiente evidencia para rechazar la hipótesis nula de que los residuos provienen de una distribución normal por lo tanto se asume como un supuesto válido y también los de homocedasticidad y correlación.

Modelo 4 - Log - Log

Prueba de normalidad de shapiro:

shapiro.test(modelo4$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo4$residuals
## W = 0.9985, p-value = 0.2868

Prueba de normalidad Jarque bera:

jb.norm.test(modelo4$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo4$residuals
## JB = 2.6617, p-value = 0.2575

Prueba de normalidad Anderson - Darling:

ad.test(modelo4$residuals)
## 
##  Anderson-Darling normality test
## 
## data:  modelo4$residuals
## A = 0.58718, p-value = 0.1259

Prueba de normalidad Lilliefors (Kolmogorov-Smirnov):

lillie.test(modelo4$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo4$residuals
## D = 0.020248, p-value = 0.1922

Se realiza la validación del supuesto de varianza constante con el Test de Breusch-Pagan para el modelo Log - Log:

lmtest::bptest(modelo4)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo4
## BP = 0.11855, df = 1, p-value = 0.7306

Y también con el test de Goldfeld-Quandt

lmtest::gqtest(modelo4)
## 
##  Goldfeld-Quandt test
## 
## data:  modelo4
## GQ = 1.019, df1 = 680, df2 = 679, p-value = 0.4031
## alternative hypothesis: variance increases from segment 1 to 2

Se verifica la autocorrelación de errores, con la prueba de Durbin-Watson para este modelo:

lmtest::dwtest(modelo4)
## 
##  Durbin-Watson test
## 
## data:  modelo4
## DW = 1.9635, p-value = 0.2469
## alternative hypothesis: true autocorrelation is greater than 0

Se muestran gráficamente los resultados de este modelo.

par(mfrow=c(2,2))
plot(modelo4)

Los residuos de este modelo si siguen una distribución normal. No hay suficiente evidencia para rechazar la hipótesis nula de que los residuos provienen de una distribución normal por lo tanto se asume como un supuesto válido y también los de homocedasticidad y correlación.