##Elbert del Piero Coaquira Alvarez
##Cargando las librerias y leer datos
library(readxl)
library(see)
dat1=read_excel("dca_ejemplos.xlsx", sheet = "dca-mezcla-cemento")
dat1$mezcla<-as.factor(dat1$mezcla)
##Prueba Bartlett para verificar la homogeneidad de las varianzas entre los grupos definidos por mezcla
EnvStats::varGroupTest( y~mezcla, data = dat1, test = "Bartlett")
##
## Results of Hypothesis Test
## --------------------------
##
## Null Hypothesis: Ratio of each pair of variances = 1
##
## Alternative Hypothesis: At least one variance differs
##
## Test Name: Bartlett's Test for
## Homogenity of Variance
## (With Correction Factor)
##
## Estimated Parameter(s): activado = 12.915
## programado = 11.357
## semiactivado = 10.185
##
## Data: y
##
## Grouping Variable: mezcla
##
## Data Source: dat1
##
## Sample Sizes: activado = 5
## programado = 5
## semiactivado = 5
##
## Test Statistic: Chisq = 0.05228261
##
## Test Statistic Parameter: df = 2
##
## P-value: 0.9741974
#INTERPRETACIÓN#
#Los resultados de la prueba de Bartlett sugieren que las varianzas de los grupos “activado” “programado” y “semiactivado” son homogéneas. Esto es un requisito importante para realizar un análisis de varianza#
##ESTADISTICA DESCRIPTIVA##
#Se crea un boxplot que muestra la distribución de “y” para cada nivel de “mezcla”. Esto ayuda a visualizar la variabilidad y la mediana de cada grupo
#GRÁFICA BOXPLOT#
boxplot(y ~ mezcla, data = dat1, xlab = "mezcla", ylab = "mezcla", las=1,
cex.axis=1.2, cex.lab=1.2)
#1)El grupo “activado” tiene el valor mediano mas bajo alrededor de 15 y el rango o dispersión de valores mas pequeño, lo que indica valores relativamente bajos y consistentes de “y” para este grupo.
#2)El grupo “programado” tiene el valor mediano mas alto alrededor de 36 y un rango mas amplio de valores, lo que sugiere de “y” mas altos y mas variables para este grupo
#3)El grupo “semiactivado” tiene un valor mediano en torno a 22 y un rango de valores moderadamente amplio, lo que indica valores intermedios y variabilidad de “y” en comparación con los otros dos grupos
#Los diagramas de caja proporcionan una representación clara de las diferencias en la tendencia central (medianas) y las dispersión(variabilidad) de los valores “y” en las tres “mezclas”
#El diagrama de caja ayuda a contextualizar y explorar mas a fondo la naturaleza del concepto que el factor “mezcla” tiene un efecto significativo en la variable “y”
###ANOVA###
#Se realiza un análisis de varianza(ANOVA) para evaluar si hay diferencias en “Y” entre los grupos “mezcla”
fit1 = aov(y ~ mezcla, data=dat1)
summary(fit1)
## Df Sum Sq Mean Sq F value Pr(>F)
## mezcla 2 1202.6 601.3 52.35 1.18e-06 ***
## Residuals 12 137.8 11.5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##Los resultados del ANOVA proporcionan evidencia sólida de que los los valores medios de “y” son significativamente diferentes entre los tres grupos de “mezcla”
##El valor p es menor que el nivel de significancia lo que podemos rechazar la hipótesis nula de que las medias son iguales
##Esto indica que el factor “mezcla” tiene un efecto altamente significativo sobre la variable dependiente “y”
##Por lo tanto los resultados del ANOVA confirman que eisten diferencias estadisticamente significativas en los valores medios de “y” entre los tres grupos de “mezcla”.
##VERIFICACION DE HIPóTESIS## ##RESIDUOS
resi_fit1=fit1$residuals
LOS VALORES AJUSTADOS
yhat_fit1=fit1$fitted.values
los valores observados ajustados y residuos
# datos observados, ajuste residuos
cbind(dat1$y, yhat_fit1, resi_fit1)
## yhat_fit1 resi_fit1
## 1 36.6 35.48 1.12
## 2 39.2 35.48 3.72
## 3 30.4 35.48 -5.08
## 4 37.1 35.48 1.62
## 5 34.1 35.48 -1.38
## 6 17.5 20.90 -3.40
## 7 20.6 20.90 -0.30
## 8 18.7 20.90 -2.20
## 9 25.7 20.90 4.80
## 10 22.0 20.90 1.10
## 11 15.0 14.00 1.00
## 12 10.4 14.00 -3.60
## 13 18.9 14.00 4.90
## 14 10.5 14.00 -3.50
## 15 15.2 14.00 1.20
##Aunque el análisis ANOVA indica diferencias significativas entre los grupos de “mezcla” en relación con “y”, la evaluación de los residuos sugiere que el modelo podría mejorarse.
##NORMALIDAD DE LOS ERRORES
#gráfica de probabilidad normal
plot(fit1,which=2, col="BLUE", pch=19, las=2, cex=1.8 )
##La alineación de los puntos sugiere que los residuos del modelo ANOVA tienen una distribución aproximadamente normal. Este resultado es positivo porque indica que el supuesto de normalidad de los errores es razonable
shapiro.test(residuals(fit1))
##
## Shapiro-Wilk normality test
##
## data: residuals(fit1)
## W = 0.94319, p-value = 0.4242
##Con la prueba de shapiro podemos concluir si sigue o no una distribución normal, en nuestro caso evaluando el resultado si sigue una distribución normal
##Paquete car-como se distribuyen los residuos##
car::qqPlot(fit1$residuals, distribution="norm", id=FALSE, ylab="residuales",
las=1)
#Línea Azul Central:La línea azul central representa la línea de referencia para una distribución normal. Los puntos deberían alinearse cerca de esta línea si los residuos siguen una distribución normal.
#Puntos de los Residuos:En este gráfico, los puntos representan los cuantiles de los residuos observados en comparación con los cuantiles de una distribución normal teórica.La mayoría de los puntos están bastante cerca de la línea de referencia, lo cual sugiere que los residuos se acercan a una distribución normal.
#Intervalo de Confianza (Área Sombreada):El área azul claro alrededor de la línea representa un intervalo de confianza para los residuos.La mayoría de los puntos se encuentran dentro de esta banda de confianza, lo cual indica que los residuos siguen la normalidad.
#Usando el paquete performance-observar la normalidad de los residuos del modelo
library(performance)
norm_fit1=check_normality(fit1)
plot(norm_fit1, type="qq")
##Línea de Referencia Verde:La línea verde en el centro representa el valor esperado si los residuos siguen una distribución normal. Idealmente, los puntos deberían alinearse cerca de esta línea.
#Puntos de los Cuantiles de los Residuos:Los puntos azules representan los residuos en comparación con los cuantiles de una distribución normal.La dispersión y alineación de estos puntos en relación a la línea verde ayuda a evaluar si los residuos siguen una distribución normal.
#Área de Confianza (Sombreado en Gris):El área gris alrededor de la línea de referencia indica el intervalo de confianza. Si los puntos caen dentro de esta área, es una señal de que no se alejan significativamente de la normalidad.
#Por lo tanto la mayoria de puntos caen dentro del area sombreada lo que representa la normalidad del caso, en cuanto a los puntos que se alejan de la linea de referencia, son desviaciones aceptables dentro de un modelo estadítico.
##INDEPENDENCIA DE LOS ERRORES
plot(fit1$residuals, col=2,cex=1.4, las=1, pch=19, xlab = "orden", ylab = "residuos")
##Al ver que en mi gráfica los puntos son distribuidos de manera aleatoria(no hay ningun patron) entonces muestra que los residuos son independientes
##HOMOCEDASTICIDAD
plot(fit1,which=1, pch=19,col="blue", main="residuos ajustados")
##La gráfica muestra que los residuos están distribuidos de manera uniforme alrededor de la línea horizontal (en cero), sin un patrón claro de expansión o contracción.En conclusión la homocedasticidad se cumple.
##PRUEBA DE BARTLETT PRUEBA DE HIPOTESIS ASUME LA NORMALIDAD DE LOS DATOS, PARA LAS PRUEBAS DE LAS HIPOTESIS ESTADISTICAS SON
Hipótesis nula (\(H_0\)):
\[ \sigma_1^2 = \sigma_2^2 = \cdots =
\sigma_k^2 \]
(Todas las varianzas son iguales).
Hipótesis alternativa (\(H_1\)):
\[ \exists\, i, j \text{ tal que } \sigma_i^2
\neq \sigma_j^2 \]
(Al menos una varianza es diferente).
bartlett.test(y~mezcla, data=dat1)
##
## Bartlett test of homogeneity of variances
##
## data: y by mezcla
## Bartlett's K-squared = 0.050976, df = 2, p-value = 0.9748
##DE LA PRUEBA DE BARTLEST SE OBSERVA QUE EL VALOR P ES IGUAL A 0.9748 CONSIDERANDO UN NIVEL DE SIGNIFICANCIA DE 0.05, ENTONCES DE ACUERDO CON LA PRUeba DE BARTLett ENTONCES NO SE RECHAZA LA HIPOtesis NULA ASI LAS VARIANZAS SON INGULAES(EN TAL CASO, Y DE ESTA FORMA SE VERIFICA LA HOMOCESTECIDAD DE LA VARIANZAS)
##De la prueba de bartlest se observa que el valor p es igual a 0.9748 considerando un nivel de significancia de 0.05, entonces de acuerdo con la prueba de bartlett, no se rechaza la hipótesis nula asi las varianzas son iguales(en talcaso, y de esta forma se verifica la homocedasticidad)
##CALCULAR LA PRUEBA DE BARTLET CON EL SIGUIENTE PAQUETE## ES MAS EFECTIVO##
##PAQUETE ENVSTATs
EnvStats::varGroupTest( y~mezcla, data = dat1, test = "Bartlett")
##
## Results of Hypothesis Test
## --------------------------
##
## Null Hypothesis: Ratio of each pair of variances = 1
##
## Alternative Hypothesis: At least one variance differs
##
## Test Name: Bartlett's Test for
## Homogenity of Variance
## (With Correction Factor)
##
## Estimated Parameter(s): activado = 12.915
## programado = 11.357
## semiactivado = 10.185
##
## Data: y
##
## Grouping Variable: mezcla
##
## Data Source: dat1
##
## Sample Sizes: activado = 5
## programado = 5
## semiactivado = 5
##
## Test Statistic: Chisq = 0.05228261
##
## Test Statistic Parameter: df = 2
##
## P-value: 0.9741974
##Aqui observamos que el p valor es 0.9741974(mas preciso) es mayor que el nivel de significancia típico, por lo tanto se asume varianzas iguales
##De aqui en adelante se emplean diferentes paquetes encargados de realizar el mismo analisis de varianza como el anterior , difiriendo en su sensibilidad a la normalidad de los datos y en las medidas de tendencia central
##USANDO EL PAQUETE VARTEST
vartest::bartletts.test(y~mezcla,dat1,alpha=0.05)
##
## Bartlett's Test (alpha = 0.05)
## -------------------------------------------------------------
## data : y and mezcla
##
## statistic : 0.05097554
## df : 2
## p.value : 0.9748343
##
## Result : Variances are homogeneous.
## -------------------------------------------------------------
##PRUEBA DE LEVENCE ASUME LA ORMALIDAD DE DATOS MAS ESTRICTO##
#paquetecar
car::leveneTest(y~mezcla,data=dat1)
##USANDO EL PAQUETE VARTEST##
vartest::levene.test(y~mezcla, dat1, center="median", deviation="absolute")
##
## Levene's Test (alpha = 0.05)
## -------------------------------------------------------------
## data : y and mezcla
##
## statistic : 0.03271307
## num df : 2
## denom df : 12
## p.value : 0.9679022
##
## Result : Variances are homogeneous.
## -------------------------------------------------------------
##USANDO EL PAQUETE LAWSTAT AQUI APLICA LA MEDIA ARTIMETICA SIN EMBARGO NOS INTERESA LA MEDIANA
lawstat::levene.test( dat1$y, dat1$mezcla, location="mean")
##
## Classical Levene's test based on the absolute deviations from the mean
## ( none not applied because the location is not set to median )
##
## data: dat1$y
## Test Statistic = 0.095435, p-value = 0.9097
##USANDO EL PAQUETE ENVSTATS
EnvStats::varGroupTest( y~mezcla, data = dat1, test = "Levene")
##
## Results of Hypothesis Test
## --------------------------
##
## Null Hypothesis: Ratio of each pair of variances = 1
##
## Alternative Hypothesis: At least one variance differs
##
## Test Name: Levene's Test for
## Homogenity of Variance
##
## Estimated Parameter(s): activado = 12.915
## programado = 11.357
## semiactivado = 10.185
##
## Data: y
##
## Grouping Variable: mezcla
##
## Data Source: dat1
##
## Sample Sizes: activado = 5
## programado = 5
## semiactivado = 5
##
## Test Statistic: F = 0.09543515
##
## Test Statistic Parameters: num df = 2
## denom df = 12
##
## P-value: 0.9096602
#La prueba de Fligner-Killeen es una de las muchas pruebas de homogeneidad de varianzas que es mas robusta frente alas desviaciones de la normalidad.
fligner.test(y ~ mezcla,data=dat1)
##
## Fligner-Killeen test of homogeneity of variances
##
## data: y by mezcla
## Fligner-Killeen:med chi-squared = 0.036704, df = 2, p-value = 0.9818