Una compañía farmacéutica desea evaluar el efecto que tiene la cantidad de almidón en la dureza de las tabletas. Se decidió producir lotes con una cantidad determinada de almidón, y que las cantidades de almidón a aprobar fueran 2%, 5% y 10%. La variable de respuesta sería el promedio de la dureza de 20 tabletas de cada lote. Se hicieron 4 réplicas por tratamiento y se obtuvieron los siguientes resultados:

library(readxl)
datos <- read_excel("/Users/jessiroa/Downloads/CDatos ejercicio 4.xlsx")
datos # para visualizar los datos
conteo_valoresAlmidón <- table(datos$Almidon)
conteo_valoresAlmidón
## 
## A B C 
## 4 4 4
library(summarytools)
summarytools::descr(datos[,2])
## Descriptive Statistics  
## datos$Dureza  
## N: 12  
## 
##                     Dureza
## ----------------- --------
##              Mean     6.58
##           Std.Dev     1.62
##               Min     4.30
##                Q1     5.00
##            Median     6.70
##                Q3     7.95
##               Max     9.00
##               MAD     2.15
##               IQR     2.77
##                CV     0.25
##          Skewness    -0.05
##       SE.Skewness     0.64
##          Kurtosis    -1.60
##           N.Valid    12.00
##         Pct.Valid   100.00
# Calcular estadísticas descriptivas por categoría
resultados_descriptivos <- aggregate(Almidon ~ Dureza, data = datos, summary)
# Imprimir los resultados descriptivos 
print(resultados_descriptivos)
##    Dureza Almidon.Length Almidon.Class Almidon.Mode
## 1     4.3              1     character    character
## 2     4.5              1     character    character
## 3     4.8              1     character    character
## 4     5.2              1     character    character
## 5     6.1              1     character    character
## 6     6.5              1     character    character
## 7     6.9              1     character    character
## 8     7.3              1     character    character
## 9     7.8              1     character    character
## 10    8.1              1     character    character
## 11    8.5              1     character    character
## 12    9.0              1     character    character

ANOVA

# Realizar el ANOVA
modelo_anova <- aov(Dureza~Almidon, data = datos)


# Resumen del ANOVA
resumen_anova <- summary(modelo_anova)

# Imprimir el resumen del ANOVA
print(resumen_anova)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## Almidon      2  26.73   13.36    58.1 7.16e-06 ***
## Residuals    9   2.07    0.23                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
boxplot(datos$Dureza~datos$Almidon, data = datos, col = c("red", "blue", "green","orange"), ylab = "Dureza", xlab = "Almidon")

PRUEBAS POST HOC

TukeyHSD(modelo_anova)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Dureza ~ Almidon, data = datos)
## 
## $Almidon
##     diff       lwr      upr     p adj
## B-A 2.00 1.0531848 2.946815 0.0006016
## C-A 3.65 2.7031848 4.596815 0.0000052
## C-B 1.65 0.7031848 2.596815 0.0022940
plot(TukeyHSD(modelo_anova))

library(agricolae)
metodos.Duncan <-duncan.test(modelo_anova, trt = "Almidon", group = T, console = T)
## 
## Study: modelo_anova ~ "Almidon"
## 
## Duncan's new multiple range test
## for Dureza 
## 
## Mean Square Error:  0.23 
## 
## Almidon,  means
## 
##   Dureza       std r        se Min Max   Q25  Q50   Q75
## A   4.70 0.3915780 4 0.2397916 4.3 5.2 4.450 4.65 4.900
## B   6.70 0.5163978 4 0.2397916 6.1 7.3 6.400 6.70 7.000
## C   8.35 0.5196152 4 0.2397916 7.8 9.0 8.025 8.30 8.625
## 
## Alpha: 0.05 ; DF Error: 9 
## 
## Critical Range
##         2         3 
## 0.7671348 0.8006971 
## 
## Means with the same letter are not significantly different.
## 
##   Dureza groups
## C   8.35      a
## B   6.70      b
## A   4.70      c
#out <- duncan.test(model, "virus", main = "yield of sweetpotato, Dealt with different virus")
plot(metodos.Duncan, variation="IQR" )

VERIFICACION DE LOS SUPUESTOS

library(car)
## Loading required package: carData
residuos<-residuals(modelo_anova) #Creando un objeto llamado residuos que contiene los residuos el modelo

par(mfrow=c(1,3)) #Para dividir el área del gráfico en dos partes (una fila y dos columnas)

dplot<-density(residuos) #Creando un objeto llamado dplot que recibe un Density_Plot de los residuos

plot(dplot, #Graficando el objeto dplot
      main="Curva de densidad observada", #Título principal de la gráfica
      xlab = "Residuos", #Etiqueta del eje x
      ylab = "Densidad") #Etiqueta del eje y
polygon(dplot, #Añadiendo el poligono
        col = "green", #Definiendo el color del poligono
        border = "black") #Color del borde del poligono

qqPlot(residuos, #Un gráfico Cuantil-Cuantil de los residuos
       pch =20, #Forma de los puntos
       main="QQ-Plot de los residuos", #Título principal
       xlab = "Cuantiles teóricos",  #Etiqueta eje x
       ylab="Cuantiles observados de los residuos") #Etiqueta eje y
## [1] 9 8
mtext(side=3, at=par("usr")[1], adj=0.7, cex=0.6, col="gray40", line=-21, #Posición del texto
      text=paste("Jessica Roa V  --", #Texto
                 format(Sys.time(), 
                "%d/%m/%Y %H:%M:%S --"), #Fecha y Hora
                 R.version.string)) #Versión de R
boxplot(residuos, col = c("red"), ylab = "residuos", main="Box-plot  de los residuos")

boxplot(residuos ~ datos$Almidon, 
        main = "Boxplot de Residuos por dureza", 
        xlab = "Almidon",
        col="lightblue",
        ylab = "Residuos")

library(car)
color_1 <-colorRampPalette(c("purple", "pink", "lightblue"))


plot(residuos, main = "Prueba de independencia", pch=20,cex = 2, col=color_1(120), ylab = "Residuos", xlab = "Almidon")

library(stats)
bartlett.test(residuos ~ datos$Almidon) #Esta prueba requiere que el diseño se balanceado (el número de repeticiones debe ser igual para cada tratamiento)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  residuos by datos$Almidon
## Bartlett's K-squared = 0.25398, df = 2, p-value = 0.8807
library(stats)
leveneTest(residuos ~ datos$Almidon)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
durbinWatsonTest(modelo_anova) 
##  lag Autocorrelation D-W Statistic p-value
##    1      -0.5398551      2.972222   0.206
##  Alternative hypothesis: rho != 0