Diseños Experimentales 2
Salazar Vega, Rolando Salazar
Supóngase que un ingeniero químico cree que el tiempo de reacción en
un proceso químico es función del catalizador empleado. De hecho 4
catalizadores están siendo investigados. El procedimiento experimental
consiste en seleccionar un lote de materia prima, cargar una planta
piloto, aplicar cada catalizador a ensayos separados de dicha planta y
observar el tiempo de reacción. Debido a que las variaciones en los
lotes de materia prima pueden afectar el comportamiento del catalizador,
el ingeniero decide controlar este factor por medio de bloques. Sin
embargo, cada lote es lo suficientemente grande para permitir el ensayo
de 3 catalizadores únicamente. Por lo tanto, es necesario utilizar un
diseño aleatorizado por bloques incompletos.
knitr::opts_chunk$set(message = FALSE)
Data <- data.frame(
Bloque = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4),
Tratamiento = c(1, 3, 4, 1, 2, 3, 2, 3, 4, 1, 2, 4),
Y = c(73, 73, 75, 74, 75, 75, 67, 68, 72, 71, 72, 75)
)Parcelas por bloque
k <- as.data.frame(table(Data$Bloque))[1,2];k## [1] 3
b <- length(unique(Data$Bloque)); b ## [1] 4
Data$Tratamiento <- factor(Data$Tratamiento)
v <- nlevels(Data$Tratamiento);v## [1] 4
Repeticiones
r <- length(Data$Tratamiento) / b ; r ## [1] 3
N <- nrow(Data); N## [1] 12
lambda <- round(N / (r * (r - 1)), 0); lambda## [1] 2
(lambda*v)/(k*r)## [1] 0.8888889
Bloque<- as.factor(Data$Bloque)
Tratamiento<-as.factor(Data$Tratamiento)
Y<-as.numeric(Data$Y)model <- aov(Y ~ Bloque+Tratamiento )
summary(model)## Df Sum Sq Mean Sq F value Pr(>F)
## Bloque 3 55.00 18.333 28.20 0.00147 **
## Tratamiento 3 22.75 7.583 11.67 0.01074 *
## Residuals 5 3.25 0.650
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model1 <- aov(Y ~ Tratamiento + Bloque)
summary(model1)## Df Sum Sq Mean Sq F value Pr(>F)
## Tratamiento 3 11.67 3.889 5.983 0.041463 *
## Bloque 3 66.08 22.028 33.889 0.000953 ***
## Residuals 5 3.25 0.650
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
El experimento que ha motivado esta investigación, consistió en la evaluación de tres tratamientos (T1, T2, T3) en un campo de cultivo de algodón que tiene instalado un sistema de riego por goteo. En cada bloque se establecieron dos parcelas, los tratamientos fueron asignados al azar a las dos parcelas de cada bloque, se formó la primera repetición completa con las parejas de tratamientos: (T1, T2); (T1, T3); (T2, T3). En la segunda repetición completa se asignaron las parejas de tratamiento al azar a los bloques y luego los tratamientos a las parcelas
Data <- data.frame(
Tratamiento = c("T1", "T1", "T1", "T1", "T2", "T2", "T2", "T2", "T3", "T3", "T3", "T3"),
Surco = c("Surco 17", "Surco 11", "Surco 2", "Surco 5", "Surco 11", "Surco 14", "Surco 8", "Surco 2", "Surco 14", "Surco 17", "Surco 5", "Surco 8"),
Y = c(14.513, 12.121, 14.185, 12.33, 5.443, 8.405, 6.595, 9.946, 5.425, 4.785, 5.428, 5.111)
)
Data## Tratamiento Surco Y
## 1 T1 Surco 17 14.513
## 2 T1 Surco 11 12.121
## 3 T1 Surco 2 14.185
## 4 T1 Surco 5 12.330
## 5 T2 Surco 11 5.443
## 6 T2 Surco 14 8.405
## 7 T2 Surco 8 6.595
## 8 T2 Surco 2 9.946
## 9 T3 Surco 14 5.425
## 10 T3 Surco 17 4.785
## 11 T3 Surco 5 5.428
## 12 T3 Surco 8 5.111
Tratamiento<-as.factor(Data$Tratamiento)
Surco<-as.factor(Data$Surco)
Y<-as.numeric(Data$Y)library(ggplot2)## Warning: package 'ggplot2' was built under R version 4.2.3
ggplot(data = Data, aes(x = Tratamiento, y = Y, color = Tratamiento)) +
geom_boxplot() +
theme_bw()Ho: El tratamiento no influye significativamente en el peso del algodón
H1: El tratamiento influye significativamente en el peso del algodón
model <- aov(Y ~ Surco+Tratamiento)
summary(model)## Df Sum Sq Mean Sq F value Pr(>F)
## Surco 5 47.11 9.42 9.032 0.02665 *
## Tratamiento 2 103.79 51.89 49.739 0.00149 **
## Residuals 4 4.17 1.04
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Como el pvalor = 0.00149 < 0.05, se rechaza la hipotesis nula.Lo que indica que el nivel de tratamiento influye significativa en el peso del algodón.
Ho: El Bloque no influye significativamente en el peso del algodon
H1: El Bloque influye significativamente en el peso del algodon
modelo <- aov(Y ~ Tratamiento+Surco)
summary(modelo)## Df Sum Sq Mean Sq F value Pr(>F)
## Tratamiento 2 138.39 69.20 66.323 0.000857 ***
## Surco 5 12.51 2.50 2.398 0.208647
## Residuals 4 4.17 1.04
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Como el pvalor=0.208647 es mayor a 0.05 se acepta la Ho.Por lo tanto no hay diferencias significativas entre los bloques.
par(mfrow=c(2,2))
plot(modelo)Ho: Los residuals estandarizados tienen una distribución Normal
H1:Los residuals estandarizados no tienen una distribución Normal
modelo1<-lm(Y ~ Tratamiento+Surco)
ri<-residuals(modelo1)
shapiro.test(ri)##
## Shapiro-Wilk normality test
##
## data: ri
## W = 0.87443, p-value = 0.07439
A un nivel de significación del 5% se ha encontrado suficiente evidencia para afirmar que los residuales estandarizados se ajusta a una distribución. Por lo tanto, se puede aceptar que se cumple con el supuesto de normalidad de errores.
Ho:Los errores tienen variancia constante
H1:Los errores no tienen variancia constante
library(car)## Warning: package 'car' was built under R version 4.2.3
ncvTest(modelo1)## Non-constant Variance Score Test
## Variance formula: ~ fitted.values
## Chisquare = 0.3031619, Df = 1, p = 0.58191
A un nivel de significación del 5% no se ha encontrado evidencia suficiente para rechazar el supuesto de que los errores tiene variancia constante. Por lo tanto se puede aceptar que se cumple con el supuesto de homogeneidad de variancias.
Ho:Los errores son independientes
H1:Los errores no son independientes
library(lmtest)## Warning: package 'lmtest' was built under R version 4.2.3
dwtest(modelo,alternative = c("two.sided"))##
## Durbin-Watson test
##
## data: modelo
## DW = 1.7866, p-value = 0.3026
## alternative hypothesis: true autocorrelation is not 0
Como el pvalor el mayor a 0.05 no se rechaza la Ho por lo que los errores son independientes
library(multcomp)
library(agricolae)## Warning: package 'agricolae' was built under R version 4.2.3
mod2<-aov(lm(Y~Tratamiento))
ptuckey<-glht(mod2,linfct = mcp(Tratamiento="Tukey"))
summary(ptuckey)##
## Simultaneous Tests for General Linear Hypotheses
##
## Multiple Comparisons of Means: Tukey Contrasts
##
##
## Fit: aov(formula = lm(Y ~ Tratamiento))
##
## Linear Hypotheses:
## Estimate Std. Error t value Pr(>|t|)
## T2 - T1 == 0 -5.6900 0.9627 -5.911 <0.001 ***
## T3 - T1 == 0 -8.1000 0.9627 -8.414 <0.001 ***
## T3 - T2 == 0 -2.4100 0.9627 -2.503 0.0783 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- single-step method)
Se puede observar que existen diferencia significativas entre los T2-T1 y T3-T1 .