Rpubs: https://rpubs.com/sgcifuentes/940515
Actividad OLX
library(readxl)
datos_OLX = read_excel("C:/Users/User/Downloads/Ok_mazda_2_colombia.xlsx")
View(datos_OLX)
y = datos_OLX$precio
x1 = datos_OLX$modelo
x2 = datos_OLX$kilometraje
x3 = datos_OLX$transmision
cor(datos_OLX[,2:4], use = "complete.obs")
## precio modelo kilometraje
## precio 1.0000000 0.8058056 -0.6568037
## modelo 0.8058056 1.0000000 -0.7738466
## kilometraje -0.6568037 -0.7738466 1.0000000
plot(x = datos_OLX[,2:4])
modelo_1 = lm(y ~ x1 + x2, data = datos_OLX)
summary(modelo_1)
##
## Call:
## lm(formula = y ~ x1 + x2, data = datos_OLX)
##
## Residuals:
## Min 1Q Median 3Q Max
## -72361782 -5090717 -1560134 2411170 104357802
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.315e+09 5.085e+08 -14.387 <2e-16 ***
## x1 3.657e+06 2.517e+05 14.533 <2e-16 ***
## x2 -3.858e+01 2.377e+01 -1.623 0.105
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12570000 on 333 degrees of freedom
## (47 observations deleted due to missingness)
## Multiple R-squared: 0.6521, Adjusted R-squared: 0.65
## F-statistic: 312.1 on 2 and 333 DF, p-value: < 2.2e-16
Como se puede observar, se tiene una correlación entre las variables en ambos sentidos, es decir, el modelo del carro aumenta el precio y a mayor kilometraje disminuye el precio. Esto quiere decir que la variable kilometraje no es significativa estando la variable modelo en el modelo de regresión
Entonces hacemos una selección de variables
modelo_2= step(modelo_1)
## Start: AIC=10988.25
## y ~ x1 + x2
##
## Df Sum of Sq RSS AIC
## <none> 5.2647e+16 10988
## - x2 1 4.1661e+14 5.3064e+16 10989
## - x1 1 3.3394e+16 8.6041e+16 11151
summary(modelo_2)
##
## Call:
## lm(formula = y ~ x1 + x2, data = datos_OLX)
##
## Residuals:
## Min 1Q Median 3Q Max
## -72361782 -5090717 -1560134 2411170 104357802
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.315e+09 5.085e+08 -14.387 <2e-16 ***
## x1 3.657e+06 2.517e+05 14.533 <2e-16 ***
## x2 -3.858e+01 2.377e+01 -1.623 0.105
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12570000 on 333 degrees of freedom
## (47 observations deleted due to missingness)
## Multiple R-squared: 0.6521, Adjusted R-squared: 0.65
## F-statistic: 312.1 on 2 and 333 DF, p-value: < 2.2e-16
Se observa que el proceso de selección de variables indica que ambas variables deben ser consideradas en el modelo para explicar el precio del carro.
Ahora veamos como más se puede mejorar este modelo
plot(x1+x2,y)
plot(modelo_2)
Como se observa en las gráficas se identifica que la varianza en constante, la prueba de normalidad es correcta y el error es mínimo.
Validamos si con una transformación se mejora el modelo
plot(x1+x2,log(y))
modelo_3 = lm(log(y) ~ x1 + x2, data = datos_OLX)
summary(modelo_3)
##
## Call:
## lm(formula = log(y) ~ x1 + x2, data = datos_OLX)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.46867 -0.06958 -0.00958 0.06289 1.41929
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.294e+02 8.526e+00 -15.179 <2e-16 ***
## x1 7.301e-02 4.220e-03 17.301 <2e-16 ***
## x2 -1.349e-07 3.985e-07 -0.338 0.735
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2108 on 333 degrees of freedom
## (47 observations deleted due to missingness)
## Multiple R-squared: 0.6978, Adjusted R-squared: 0.696
## F-statistic: 384.5 on 2 and 333 DF, p-value: < 2.2e-16
plot(modelo_3)
Observamos que el modelo con la variable transformada con logaritmo mejora en ajuste a un 70% y adicionalmente los supuestos de linealidad y normalidad a nivel gráfico se ajustan mejor
Ahora, hagamos una predicción ¿cuál sería el precio de un carro modelo 2018 con 50.000 km?
y_log = predict (modelo_3, list(x1=2018, x2=50000))
exp(y_log)
## 1
## 59688575
El precio de un carro modelo 2018 con 50 mil kilometros tiene un valor aproximado de $59.6 millones.
boxplot(y~x3,col="gray")
modelo_4 = lm(log(y) ~ x1 + x2 + x3, data = datos_OLX)
summary(modelo_4)
##
## Call:
## lm(formula = log(y) ~ x1 + x2 + x3, data = datos_OLX)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.39190 -0.07543 -0.00997 0.06576 1.36556
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.229e+02 8.555e+00 -14.364 < 2e-16 ***
## x1 6.978e-02 4.234e-03 16.481 < 2e-16 ***
## x2 -6.830e-08 3.934e-07 -0.174 0.862274
## x3Automática Secuencial 5.472e-02 4.071e-02 1.344 0.179872
## x3Mecánica -8.709e-02 2.478e-02 -3.514 0.000503 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2072 on 326 degrees of freedom
## (52 observations deleted due to missingness)
## Multiple R-squared: 0.7122, Adjusted R-squared: 0.7087
## F-statistic: 201.7 on 4 and 326 DF, p-value: < 2.2e-16
Se observa que la variable transmisión no es muy relevante en el modelo ya que incrementa su ajuste a 71%, sin embargo, si se evidencia que sólo se debería tener en cuenta la transmisión mecánica que influye en el precio del carro.
y_log_transmision = predict (modelo_4, list(x1=2018, x2=50000, x3="Mecánica"))
exp(y_log_transmision)
## 1
## 56117850
MAE_OLX = mean(abs(exp(modelo_4$residuals)))
MAE_OLX
## [1] 1.020219
Evidenciamos la estimación del precio de un carro modelo 2018 con 50 mil kilometros y mecánico tiene un valor aproximado de $56.1 millones, con un error aproximado de 1 millón.
modelo_5 = lm(y ~ x1, data = datos_OLX)
summary(modelo_5)
##
## Call:
## lm(formula = y ~ x1, data = datos_OLX)
##
## Residuals:
## Min 1Q Median 3Q Max
## -72398473 -5258160 -1447431 2497986 105383194
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.955e+09 3.220e+08 -24.70 <2e-16 ***
## x1 3.973e+06 1.598e+05 24.87 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12600000 on 334 degrees of freedom
## (47 observations deleted due to missingness)
## Multiple R-squared: 0.6493, Adjusted R-squared: 0.6483
## F-statistic: 618.4 on 1 and 334 DF, p-value: < 2.2e-16
modelo_6 = lm(y ~ x1 + x3, data = datos_OLX)
summary(modelo_6)
##
## Call:
## lm(formula = y ~ x1 + x3, data = datos_OLX)
##
## Residuals:
## Min 1Q Median 3Q Max
## -67245401 -4938189 -1439890 2902433 101414535
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.455e+09 3.320e+08 -22.456 < 2e-16 ***
## x1 3.726e+06 1.646e+05 22.633 < 2e-16 ***
## x3Automática Secuencial 2.517e+06 2.416e+06 1.042 0.298
## x3Mecánica -6.157e+06 1.469e+06 -4.190 3.59e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12300000 on 327 degrees of freedom
## (52 observations deleted due to missingness)
## Multiple R-squared: 0.6707, Adjusted R-squared: 0.6676
## F-statistic: 222 on 3 and 327 DF, p-value: < 2.2e-16
Se observa que dejando afuera la variable kilometros, baja el ajuste y precisión del modelo 64% y 66%
Informe Moluscos:
Realizamos analisis exploratorio bivariado -(Relación entre consumo de occigeno contra las distintas concentraciones de agua de mar.)
load("C:/Users/User/Downloads/moluscos.RData")
consumo_oxi=mean(BD_moluscos$cons_o,na.rm = TRUE)
mediana_consumo_oxi=median(BD_moluscos$cons_o,na.rm = TRUE)
tabla = data.frame(consumo_oxi,mediana_consumo_oxi)
tabla
## consumo_oxi mediana_consumo_oxi
## 1 9.304792 9.7
require(ggplot2)
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.1.3
require(plotly)
## Loading required package: plotly
## Warning: package 'plotly' was built under R version 4.1.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(agricolae)
## Warning: package 'agricolae' was built under R version 4.1.3
library(daewr)
## Warning: package 'daewr' was built under R version 4.1.3
## Registered S3 method overwritten by 'DoE.base':
## method from
## factorize.factor conf.design
a = BD_moluscos$cons_o
b1 = BD_moluscos$c_agua
b2 = BD_moluscos$molusco
b1= as.factor(b1)
b2= as.factor(b2)
g1 = ggplot(BD_moluscos,aes(x=b1,y=a))+
geom_boxplot()
g1
g2 = ggplot(BD_moluscos,aes(x=b2,y=a))+
geom_boxplot()
g2
g3 = ggplot(BD_moluscos,aes(x=b2, y=a, fill=b1)) + geom_boxplot() + geom_point() + facet_wrap(b1, scale = "free")
g3
cor(BD_moluscos$c_agua,BD_moluscos$cons_o)
## [1] -0.4009984
Se observa que el consumo de oxigeno en ambos tipos de molusco no tienen mucha varianza, sin embargo, entre menos concentración de agua de mar se tenga hay mayor consumo de oxigeno por parte del molusco, es decir el molusco para vivir no necesita tanta concentración de agua de mar.
modelo_1_molusco = lm(a ~ b1, data = BD_moluscos)
summary(modelo_1_molusco)
##
## Call:
## lm(formula = a ~ b1, data = BD_moluscos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.8706 -2.0445 -0.4766 2.2494 6.5494
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 12.2506 0.7515 16.302 < 2e-16 ***
## b175 -5.2581 1.0627 -4.948 1.09e-05 ***
## b1100 -3.5794 1.0627 -3.368 0.00156 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.006 on 45 degrees of freedom
## Multiple R-squared: 0.3621, Adjusted R-squared: 0.3338
## F-statistic: 12.77 on 2 and 45 DF, p-value: 4.043e-05
plot(b1,a)
plot(modelo_1_molusco)
Como se puede observar, se tiene un valor b1 negativo, es decir entre mayor sea la concentración de agua de mar para el molusco le va ser más dificil el consumo de oxigeno y la variable que mayor aporta al consumo de oxigeno es la concentración de oxigeno al 75% de concentración y su representación es de la relación es del 33%.
Ahora vamos a validar si con la otra variable molusco el modelo aumenta un poco su representación.
modelo_2_molusco = lm(a ~ b1 + b2, data = BD_moluscos)
summary(modelo_2_molusco)
##
## Call:
## lm(formula = a ~ b1 + b2, data = BD_moluscos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.1750 -1.9877 -0.7019 2.1244 6.1450
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 12.9463 0.8521 15.193 < 2e-16 ***
## b175 -5.2581 1.0436 -5.038 8.49e-06 ***
## b1100 -3.5794 1.0436 -3.430 0.00132 **
## b2B -1.3913 0.8521 -1.633 0.10966
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.952 on 44 degrees of freedom
## Multiple R-squared: 0.3986, Adjusted R-squared: 0.3575
## F-statistic: 9.719 on 3 and 44 DF, p-value: 4.866e-05
plot(modelo_2_molusco)
Se observa que el modelo 2 aumenta la representación en 2 puntos, es decir, al 35%, sin embargo, sigue siendo muy baja para lograr un buen modelo de regresión entre las dos variables y considerarlas relacionables.
Ahora vamos a ver si la variable agua se relaciona con la variable molusco y determina su incremento en el modelo
modelo_3_molusco = lm(a ~ b1 + b2 + b1*b2, data = BD_moluscos)
summary(modelo_3_molusco)
##
## Call:
## lm(formula = a ~ b1 + b2 + b1 * b2, data = BD_moluscos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.946 -1.736 -0.710 2.237 6.625
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 12.1750 1.0466 11.633 1.02e-14 ***
## b175 -4.2850 1.4800 -2.895 0.00599 **
## b1100 -2.2387 1.4800 -1.513 0.13787
## b2B 0.1513 1.4800 0.102 0.91909
## b175:b2B -1.9462 2.0931 -0.930 0.35777
## b1100:b2B -2.6813 2.0931 -1.281 0.20722
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.96 on 42 degrees of freedom
## Multiple R-squared: 0.4226, Adjusted R-squared: 0.3539
## F-statistic: 6.149 on 5 and 42 DF, p-value: 0.0002324
plot(modelo_3_molusco)
annova1 = aov(modelo_3_molusco)
summary(annova1)
## Df Sum Sq Mean Sq F value Pr(>F)
## b1 2 230.8 115.41 13.171 3.63e-05 ***
## b2 1 23.2 23.23 2.651 0.111
## b1:b2 2 15.4 7.68 0.876 0.424
## Residuals 42 368.0 8.76
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Observamos que hay una variable destacada en su significancia la concentración de agua 75 e independiente del tipo de molusco el consumo de oxigeno es 12.17
En el analisis de varianzas annova, podemos observar que la única variable significativa es la de concentración de agua.
Validamos las pruebas de comparaciones multiples de medias con la variable concentración de agua que fue la que presentó significancia
shapiro.test(annova1$res)
##
## Shapiro-Wilk normality test
##
## data: annova1$res
## W = 0.95824, p-value = 0.08571
TukeyHSD(annova1)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = modelo_3_molusco)
##
## $b1
## diff lwr upr p adj
## 75-50 -5.258125 -7.8007168 -2.715533 0.0000289
## 100-50 -3.579375 -6.1219668 -1.036783 0.0039342
## 100-75 1.678750 -0.8638418 4.221342 0.2551550
##
## $b2
## diff lwr upr p adj
## B-A -1.39125 -3.115713 0.3332134 0.1109762
##
## $`b1:b2`
## diff lwr upr p adj
## 75:A-50:A -4.28500 -8.70331211 0.1333121 0.0619482
## 100:A-50:A -2.23875 -6.65706211 2.1795621 0.6582697
## 50:B-50:A 0.15125 -4.26706211 4.5695621 0.9999983
## 75:B-50:A -6.08000 -10.49831211 -1.6616879 0.0023423
## 100:B-50:A -4.76875 -9.18706211 -0.3504379 0.0277338
## 100:A-75:A 2.04625 -2.37206211 6.4645621 0.7369714
## 50:B-75:A 4.43625 0.01793789 8.8545621 0.0485578
## 75:B-75:A -1.79500 -6.21331211 2.6233121 0.8281801
## 100:B-75:A -0.48375 -4.90206211 3.9345621 0.9994669
## 50:B-100:A 2.39000 -2.02831211 6.8083121 0.5936863
## 75:B-100:A -3.84125 -8.25956211 0.5770621 0.1209401
## 100:B-100:A -2.53000 -6.94831211 1.8883121 0.5334845
## 75:B-50:B -6.23125 -10.64956211 -1.8129379 0.0017250
## 100:B-50:B -4.92000 -9.33831211 -0.5016879 0.0212746
## 100:B-75:B 1.31125 -3.10706211 5.7295621 0.9478135
Ahora hacemos un gráfico donde nos permita observar los conjuntos de grupos que existen de acuerdo a su concentración:
interaction.plot(b1,b2,a,main="Interacciones", xlab= "Concentración de agua", ylab= "media concentración de o2", legend=TRUE, trace.label = "moluscos", col = c("#0198f9","#f95b01"),lyt=1,lwd=4)
De esta forma podemos observar que el mayor consumo de oxigeno en cualquiera de los dos tipos de moluscos es en la conetración de agua 50 y el menor consumo es en la concentración 75
Salinidad
load("C:/Users/User/Downloads/Salinidad.RData")
plot(Salinidad)
c = cor(Salinidad)
c
## Biomasa pH Salinidad Zinc Potasio
## Biomasa 1.00000000 0.92810235 -0.06657756 -0.78146249 -0.07319518
## pH 0.92810235 1.00000000 -0.04458851 -0.72046995 0.03236212
## Salinidad -0.06657756 -0.04458851 1.00000000 -0.42663388 -0.01963288
## Zinc -0.78146249 -0.72046995 -0.42663388 1.00000000 0.07877268
## Potasio -0.07319518 0.03236212 -0.01963288 0.07877268 1.00000000
library(corrplot)
corrplot::corrplot(c,method = "color")
b. Estime el modelo de regresión lineal múltiple para explicar la biomasa en función de las covariables e interprete el valor p, los coeficientes de las variables significativas y el coeficiente R2.
modelo_salinidad_1 = lm(Salinidad$Biomasa ~ Salinidad$pH + Salinidad$Salinidad + Salinidad$Zinc + Salinidad$Potasio)
summary(modelo_salinidad_1)
##
## Call:
## lm(formula = Salinidad$Biomasa ~ Salinidad$pH + Salinidad$Salinidad +
## Salinidad$Zinc + Salinidad$Potasio)
##
## Residuals:
## Min 1Q Median 3Q Max
## -293.98 -88.83 -9.48 88.20 387.27
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1492.8076 453.6013 3.291 0.002091 **
## Salinidad$pH 262.8829 33.7304 7.794 1.51e-09 ***
## Salinidad$Salinidad -33.4997 8.6525 -3.872 0.000391 ***
## Salinidad$Zinc -28.9727 5.6643 -5.115 8.20e-06 ***
## Salinidad$Potasio -0.1150 0.0819 -1.404 0.167979
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 158.9 on 40 degrees of freedom
## Multiple R-squared: 0.9231, Adjusted R-squared: 0.9154
## F-statistic: 120 on 4 and 40 DF, p-value: < 2.2e-16
Observamos que las variables pH, salinidad y Zinc, son significativas para tomar la decisión de en donde se siembran las plantas forrajera, ya que su valor p da inferior a 5% y esto quiere decir que la hipotesis nula es falsa y continúo con la hipotesis alterna, con una representación alta del 91,5%, es decir muy confiable el modelo.
Sim embargo, ahora hacemos una selección de variable para el validar el modelo
step(modelo_salinidad_1, direction = "backward")
## Start: AIC=460.84
## Salinidad$Biomasa ~ Salinidad$pH + Salinidad$Salinidad + Salinidad$Zinc +
## Salinidad$Potasio
##
## Df Sum of Sq RSS AIC
## <none> 1009974 460.84
## - Salinidad$Potasio 1 49785 1059759 461.01
## - Salinidad$Salinidad 1 378486 1388460 473.17
## - Salinidad$Zinc 1 660588 1670562 481.49
## - Salinidad$pH 1 1533665 2543639 500.41
##
## Call:
## lm(formula = Salinidad$Biomasa ~ Salinidad$pH + Salinidad$Salinidad +
## Salinidad$Zinc + Salinidad$Potasio)
##
## Coefficients:
## (Intercept) Salinidad$pH Salinidad$Salinidad
## 1492.808 262.883 -33.500
## Salinidad$Zinc Salinidad$Potasio
## -28.973 -0.115
COn esto confirmamos que las variables que mejor representan el modelo son pH, salinidad y Zinc y hacemos un modelo con ellas:
modelo_salinidad_2 = lm(Salinidad$Biomasa ~ Salinidad$pH + Salinidad$Salinidad + Salinidad$Zinc)
summary(modelo_salinidad_2)
##
## Call:
## lm(formula = Salinidad$Biomasa ~ Salinidad$pH + Salinidad$Salinidad +
## Salinidad$Zinc)
##
## Residuals:
## Min 1Q Median 3Q Max
## -363.42 -107.14 8.51 78.33 398.36
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1502.349 458.894 3.274 0.00216 **
## Salinidad$pH 255.008 33.653 7.578 2.55e-09 ***
## Salinidad$Salinidad -34.800 8.704 -3.998 0.00026 ***
## Salinidad$Zinc -30.408 5.637 -5.394 3.13e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 160.8 on 41 degrees of freedom
## Multiple R-squared: 0.9193, Adjusted R-squared: 0.9134
## F-statistic: 155.7 on 3 and 41 DF, p-value: < 2.2e-16
shapiro.test(modelo_salinidad_2$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo_salinidad_2$residuals
## W = 0.97436, p-value = 0.4121
lmtest::gqtest(modelo_salinidad_2)
##
## Goldfeld-Quandt test
##
## data: modelo_salinidad_2
## GQ = 1.0778, df1 = 19, df2 = 18, p-value = 0.4386
## alternative hypothesis: variance increases from segment 1 to 2
lmtest::dwtest(modelo_salinidad_2)
##
## Durbin-Watson test
##
## data: modelo_salinidad_2
## DW = 1.5988, p-value = 0.05313
## alternative hypothesis: true autocorrelation is greater than 0
Encontramos las variables más significativas para conocer las condiciones necesarias para sembrar la planta forrajera, sin embargo, debemos realizar unos test para validar la calidad de los datos.
En el test de Shapiro el valor p da 0.4, es decir, no es posible rechazar la hipotesis nula, ya que los datos no vienen de distribución normal. En el test Goldfeld el valor de p es de 0.43 es decir que las varianzas no son iguales. En el test de Durbin Watson el valor de p es 0.05, es decir que no hay independencia en los errores.
Se validan todos los supuestos y se concluye que no cumplen las condiciones para que el modelo esté listo para cualquier uso de inferencias estadísticas.