En un centro de investigación se realiza un estudio para comparar varios tratamientos que, al aplicarse previamente a los frijoles crudos, reducen su tiempo de cocción. Estos tratamientos son a base de bicarbonato de sodio (NaHCO3) y cloruro de sodio o sal común (NaCl). El primer tratamiento es el de control, que consiste en no aplicar ningún tratamiento. El tratamiento T2 es el remojo en agua con bicarbonato de sodio, el T3 es remojar en agua con sal común y el T4 es remojar en agua con una combinación de ambos ingredientes en proporciones iguales. La variable de respuesta es el tiempo de cocción en minutos. Los datos se muestran en la siguiente tabla:

library(readxl)
datos <- read_excel("/Users/jessiroa/Downloads/Datos ejercicio 3.xlsx")
datos # para visualizar los datos
conteo_valoresTramiento <- table(datos$Tratamiento)
conteo_valoresTramiento
## 
##       A       B       C Control 
##       7       7       7       7
library(summarytools)
summarytools::descr(datos[,2])
## Descriptive Statistics  
## datos$Tiempo  
## N: 28  
## 
##                     Tiempo
## ----------------- --------
##              Mean   108.54
##           Std.Dev    59.48
##               Min    55.00
##                Q1    70.50
##            Median    82.00
##                Q3   146.00
##               Max   214.00
##               MAD    18.53
##               IQR    46.75
##                CV     0.55
##          Skewness     1.01
##       SE.Skewness     0.44
##          Kurtosis    -0.87
##           N.Valid    28.00
##         Pct.Valid   100.00
# Calcular estadísticas descriptivas por categoría
resultados_descriptivos <- aggregate( Tiempo~ Tratamiento, data = datos, summary)
# Imprimir los resultados descriptivos 
print(resultados_descriptivos)
##   Tratamiento Tiempo.Min. Tiempo.1st Qu. Tiempo.Median Tiempo.Mean
## 1           A    74.00000       75.50000      78.00000    78.85714
## 2           B    55.00000       59.00000      63.00000    61.42857
## 3           C    79.00000       83.00000      85.00000    85.57143
## 4     Control   200.00000      205.50000     208.00000   208.28571
##   Tiempo.3rd Qu. Tiempo.Max.
## 1       82.00000    85.00000
## 2       63.50000    67.00000
## 3       88.50000    92.00000
## 4      212.50000   214.00000

ANOVA

# Realizar el ANOVA
modelo_anova <- aov(Tiempo~ Tratamiento, 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)    
## Tratamiento  3  95041   31680    1559 <2e-16 ***
## Residuals   24    488      20                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
boxplot(datos$Tiempo ~ datos$Tratamiento, data = datos, col = c("red", "blue", "green","orange"), ylab = "Tiempo", xlab = "Tratamiento")

PRUEBAS POST HOC

TukeyHSD(modelo_anova)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Tiempo ~ Tratamiento, data = datos)
## 
## $Tratamiento
##                 diff          lwr       upr     p adj
## B-A       -17.428571 -24.07568671 -10.78146 0.0000010
## C-A         6.714286   0.06717044  13.36140 0.0471059
## Control-A 129.428571 122.78145615 136.07569 0.0000000
## C-B        24.142857  17.49574187  30.78997 0.0000000
## Control-B 146.857143 140.21002758 153.50426 0.0000000
## Control-C 122.714286 116.06717044 129.36140 0.0000000
plot(TukeyHSD(modelo_anova))

library(agricolae)
metodos.Duncan <-duncan.test(modelo_anova, trt = "Tratamiento", group = T, console = T)
## 
## Study: modelo_anova ~ "Tratamiento"
## 
## Duncan's new multiple range test
## for Tiempo 
## 
## Mean Square Error:  20.32143 
## 
## Tratamiento,  means
## 
##            Tiempo      std r       se Min Max   Q25 Q50   Q75
## A        78.85714 4.180453 7 1.703837  74  85  75.5  78  82.0
## B        61.42857 4.157609 7 1.703837  55  67  59.0  63  63.5
## C        85.57143 4.503967 7 1.703837  79  92  83.0  85  88.5
## Control 208.28571 5.122313 7 1.703837 200 214 205.5 208 212.5
## 
## Alpha: 0.05 ; DF Error: 24 
## 
## Critical Range
##        2        3        4 
## 4.973148 5.223301 5.383910 
## 
## Means with the same letter are not significantly different.
## 
##            Tiempo groups
## Control 208.28571      a
## C        85.57143      b
## A        78.85714      c
## B        61.42857      d
#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]  6 27
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$Tratamiento, 
        main = "Boxplot de Residuos por Tratamiento", 
        xlab = "Tratamiento",
        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 = "Tratamiento")

library(stats)
bartlett.test(residuos ~ datos$Tratamiento) #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$Tratamiento
## Bartlett's K-squared = 0.3302, df = 3, p-value = 0.9543
library(stats)
leveneTest(residuos ~ datos$Tratamiento)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
durbinWatsonTest(modelo_anova) 
##  lag Autocorrelation D-W Statistic p-value
##    1      -0.4142606       2.74274   0.096
##  Alternative hypothesis: rho != 0