Librerías requeridas: dplyr, flextable, tidyr, ggplot2, DoE.base2 Impacto de la eliminación de réplicas y puntos centrales en diseños factoriales fraccionales \(2^{k-p}\)
El presente documento corresponde a un apartado del trabajo titulado “Guía para la implementación de diseños experimentales en la industria farmacéutica”, presentado por Nathalia Cortés Duque como requisito para optar al título de Magíster en Ciencias - Estadística de la Universidad Nacional de Colombia.
3 Objetivo
El presente estudio tiene como propósito analizar el impacto de eliminar réplicas o los puntos centrales en un diseño factorial fraccional \(2^{k-p}\) sobre la significancia estadística de los efectos principales e interacciones, así como sobre el error cuadrático medio (ECM).
4 Metodología
4.1 Evaluación de la significancia de los efectos
Para este fin se realizaron 1000 simulaciones de diseños factoriales fracionales \(2^{k-p}\) independientes, de las cuales se conocían previamente los efectos significativos de los factores seleccionados aleatoriamente.
En cada simulación se genera un vector con todos los factores e interacciones del respectivo diseño factorial completo \(2^k\) los cuales se agrupan en el vector todos_efectos, así:
| Diseño factorial | Número de efectos | Efectos | 
|---|---|---|
| \(2^2\) | 3 | A, B, AB | 
| \(2^3\) | 7 | A, B, C, AB, AC, BC, ABC | 
| \(2^4\) | 15 | A, B, C, D, AB, AC, AD, BC, BD, CD, ABC, ABD, ACD, BCD, ABCD | 
| \(2^5\) | 31 | A, B, C, D, E, AB, AC, AD, AE, BC, BD, BE, CD, CE, DE, ABC, ABD, ABE, ACD, ACE, ADE, BCD, BCE, BDE, CDE, ABCD, ABCE, ABDE, ACDE, BCDE, ABCDE | 
A partir de este vector, se selecciona aleatoriamente un número de efectos que serán considerados significativos; dichos efectos se denominan . A estos efectos se les asigna un valor aleatorio tomado de una distribución uniforme en el intervalo \(\left[-7,-0.5\right]\) y \(\left[0.5, 7\right]\), mientras que los demás mantienen valor cero. De esta forma se construye el vector , que refleja cuáles efectos son diferentes de cero.
Posteriormente, se clasifica cada efecto como 1 (significativo) o 0 (no significativo) y se almacena en la tabla .
A partir del diseño factorial completo \(2^k\) con dos réplicas y cinco puntos centrales (dis0_cod) con respuesta asignada, se eliminaron las filas necesarias para obtener un diseño fraccional \(2^{k-p}\) que conserva las dos réplicas y los cinco puntos centrales (dis1_cod). Adicionalmente, se generaron tres variantes eliminando aleatoriamente filas de réplicas o puntos centrales: - Diseño con réplicas pero sin puntos centrales (dis2_cod) - Diseño sin réplicas y con cinco puntos centrales (dis3_cod) - Diseño sin réplicas con dos puntos centrales (dis4_cod)
Para cada diseño se ajusta el modelo que incluye solo los efectos principales y se calcula el ANOVA correspondiente. Los resultados de significancia de los efectos se almacenan en las tablas TAB1, TAB2, TAB3 y TAB4, donde el valor 1 indica significancia estadística (\(p < 0.05\)) y 0 indica no significancia.
Las tablas obtenidas a partir de cada diseño experimental se comparan con la tabla efectos_reales y se calculan los siguientes aspectos: - Concordancia (%): Porcentaje de concordancia entre la significancia real de cada efecto y los detectados por cada diseño. - Potencia (%): Porcentaje de efectos verdaderamente significativos y correctamente identificados como tal por el diseño experimental. - Error tipo I: Proporción de efectos no significativos detectados como significativos por el diseño experimental.
4.2 Evaluación del ECM con medidas repetidas
Con relación a la evaluación del ECM, se utiliza la metodología de medidas repetidas, en la cual a una misma unidad experimental se le aplican sucesivamente varios tratamientos, generando valores repetidos de la respuesta sobre el mismo individuo (Dı́az Monroy y Mario Alfonso (2012)).
En este estudio, a partir de los diseños simulados en la sección anterior, cada fila corresponde a la simulación del diseño experimental de referencia (dis1_cod), al que se le generan variantes al eliminar réplicas o puntos centrales (dis2_cod, dis3_cod, dis4_cod). Para cada diseño se obtiene como variable respuesta el Error Cuadrático Medio (ECM), calculado mediante la siguiente fórmula:
\[ \text{ECM} = \frac{\text{deviance}(modelo)}{\text{grados de libertad del residual}(modelo)}. \]
Estos resultados fueron compilados en la matriz ECM_tab, que corresponde a la matriz \(X = (x_{ij})\), donde \(x_{ij}\) representa la respuesta del \(i\)-ésimo sujeto al \(j\)-ésimo tratamiento. Incialmente, se realiza un análisis descriptivo de los ECM (Ver Figura 12.1). Luego, se construye la matriz de contrastes \(C\), donde cada fila representa una hipótesis a evaluar.
La matriz \(C\) se utiliza para transformar los datos: \(Y = CX\). De esta forma, el problema se reduce a \((p-1)\) dimensiones y se trabaja con contrastes independientes, evitando dependencia entre medias y permitiendo aplicar la prueba \(T^2\) de Hotelling.
El cálculo implementado en el código sigue la formulación teórica:
\[ T^2 = n(C \overline{X})' (CSC')^{-1} (C \overline{X}), \]
donde \(n\) es el número de simulaciones y \(S\) la matriz de covarianzas estimada mediante
\[ S = \frac{1}{n-1}X'(I - \tfrac{1}{n}\mathbf{1}\mathbf{1}')X. \]
La decisión es rechazar \(H_0\) si, para un nivel de significancia \(\alpha = 0.05\),
\[ F = \frac{n - p + 1}{(n-1)(p-1)} T^2 > F_{(\alpha, p-1, n-p+1)} \]
Luego, se construye la matriz de contrastes \(C\), donde cada fila representa una hipótesis a evaluar. En este caso, se plantea la utilización de una matriz de contrastes \(C_1\) cuyo objetivo es contrastar simultáneamente todas las medias de los tratamientos. Con ello, se busca determinar si existe al menos un tratamiento que difiera significativamente de los demás, lo que constituye el análogo a la prueba ANOVA clásica, pero en un contexto donde los tratamientos son dependientes.
\[ C_1 = \begin{bmatrix} -1 & 1 & 0 & 0 \\ 0 & -1 & 1 & 0 \\ 0 & 0 & -1 & 1 \end{bmatrix} \]
Asimismo, en caso de rechazarse la hipótesis nula en los contrastes previos, resulta pertinente plantear una segunda matriz de contrastes generales de interés \(C_2\), que incluya, por ejemplo, los siguientes contrastes:
\[ C_2 = \begin{bmatrix} -1 & -1 & 1 & 1 \\ 1 & -1 & 0 & 0 \end{bmatrix} \]
Donde los contrastes a evaluar son:
Contraste 1: Contraste que relaciona los diseños con réplica con respecto a los diseños sin réplica \(C_1 =\) (-1, -1, 1, 1)
Contraste 2: Contraste que relaciona el impacto de la réplica en diseños con la misma cantidad de puntos centrales \(C_2 =\) (1, -1, 0, 0)
5 Código
5.1 Diseño \(2^{3-1}\)
5.1.1 Significancia de los efectos
Código
# Matrices
TAB1_23 <- matrix(0, nrow = n, ncol = 3)
TAB2_23 <- matrix(0, nrow = n, ncol = 3)
TAB3_23 <- matrix(0, nrow = n, ncol = 3)
TAB4_23 <- matrix(0, nrow = n, ncol = 3)
efectos_reales_23 <- matrix(0, nrow = n, ncol = 7)
names_23 <- c("A","B","C")   # Los que serán estimados por el modelo
colnames(TAB1_23) <- names_23
colnames(TAB2_23) <- names_23
colnames(TAB3_23) <- names_23
colnames(TAB4_23) <- names_23
colnames(efectos_reales_23) <- c("A","B","C","AB","AC","BC","ABC")  # Todos
# Tabla para completar los errores
ECM_tab_23 <- data.frame(       
    dis1 = numeric(n),
    dis2 = numeric(n),
    dis3 = numeric(n),
    dis4 = numeric(n))
# Bucle principal
set.seed(3)
for(i in seq_len(n)){
  ## Efectos a evaluar en el este diseño
  todos_efectos_23 <- c("A","B","C","AB","AC","BC","ABC")  #Todos
  
  # Selección de un número aleatorio entre 1 y 7
  # dado que existen 7 efectos posibles a evaluar en este diseño.
  n_ef <- sample(0:length(todos_efectos_23), 1)
  
  # Elección aleatoria _n_ef_ efectos que serán los efectos significativos
  efectos_activos <- sample(todos_efectos_23, n_ef)
  efectos_reales_23_vec <- setNames(rep(0, length(todos_efectos_23)), todos_efectos_23)
  
  # Asignación de un valor aleatorio a los efectos elegidos como significativos:
  efectos_reales_23_vec[efectos_activos] <- sample(c(runif(n_ef, -7, -0.5), 
                                                  runif(n_ef,  0.5, 7)), n_ef)
  
  # Guardar efectos reales como 1/0
  efectos_reales_23[i,] <- c(
    as.integer(efectos_reales_23_vec["A"]   != 0),
    as.integer(efectos_reales_23_vec["B"]   != 0),
    as.integer(efectos_reales_23_vec["C"]   != 0),
    as.integer(efectos_reales_23_vec["AB"]  != 0),
    as.integer(efectos_reales_23_vec["AC"]  != 0),
    as.integer(efectos_reales_23_vec["BC"]  != 0),
    as.integer(efectos_reales_23_vec["ABC"] != 0))
  
  # Generar respuesta
  
  ## Diseño factorial completo con réplicas y con 5 puntos centrales
 
  dis0_cod <- data.frame(
    A = c(rep(c(-1,1),4), rep(c(-1,1),4), rep(0,5)),
    B = c(rep(c(rep(-1,2), rep(1,2)), 4), rep(0,5)),
    C = c(rep(-1,4), rep(1,4), rep(-1,4), rep(1,4), rep(0,5)))
 
  n_corridas <- nrow(dis0_cod)
  
  ## Generación del error
  error <- rnorm(n_corridas, 0, 2)       #error ~ (mu = 0, sigma^2 = 2^2)
  
  ## Generación de la respuesta
  yrta <- 50 +
    efectos_reales_23_vec["A"]   * dis0_cod$A +
    efectos_reales_23_vec["B"]   * dis0_cod$B +
    efectos_reales_23_vec["C"]   * dis0_cod$C +
    efectos_reales_23_vec["AB"]  * dis0_cod$A * dis0_cod$B +
    efectos_reales_23_vec["AC"]  * dis0_cod$A * dis0_cod$C +
    efectos_reales_23_vec["BC"]  * dis0_cod$B * dis0_cod$C +
    efectos_reales_23_vec["ABC"] * dis0_cod$A * dis0_cod$B * dis0_cod$C +
    error
  
  ## Asignación de la respuesta al dis0_cod 
  ## Diseño factorial completo con réplicas y con 5 puntos centrales
  dis0_cod <- cbind(dis0_cod, yrta)
 
  ## Diseño fraccional con réplicas y puntos centrales
  dis1_cod <- dis0_cod[c(2,3,5,8,10,11,13,16,17:21),]
  
  ## Diseño fraccional con réplicas y sin puntos centrales
  dis2_cod <- dis0_cod[c(2,3,5,8,10,11,13,16),]
  
  ## Diseño fraccional sin réplica y con cinco puntos centrales
  rep1 <- c(9:16,1,4,6,7)      #filas que deben ser eliminadas en "sel"
  rep2 <- c(1:8,9,12,14,15)    #filas que deben ser eliminadas en "sel"
  seleccion_name <- sample(c("rep1","rep2"),1)   #repetición a eliminar
  sel <- get(seleccion_name)
  
  dis3_cod <- dis0_cod[-sel,]      
  
  ## Diseño fraccional sin réplica y con dos puntos centrales
  rep1 <- c(9:16,1,4,6,7)      #filas que deben ser eliminadas en "sel"
  rep2 <- c(1:8,9,12,14,15)    #filas que deben ser eliminadas en "sel"
  seleccion_name <- sample(c("rep1","rep2"),1)   #repetición a eliminar
  sel <- get(seleccion_name)
  rep_pc <- sample(c(17:21),3)                   #punto central a eliminar
  
  dis4_cod <- dis0_cod[-c(sel,rep_pc),]     
  
  # Modelo
  ## Evaluación del diseño con réplicas y con cinco puntos centrales
  mod1 <- lm(yrta~A+B+C, data=dis1_cod)  
  
  ## Evaluación del diseño con réplicas y sin puntos centrales
  mod2 <- lm(yrta~A+B+C, data=dis2_cod)  
  
  ## Evaluación del diseño sin réplicas y con cinco puntos centrales
  mod3 <- lm(yrta~A+B+C, data=dis3_cod)  
  
  ## Evaluación del diseño sin réplicas y con dos puntos centrales
  mod4 <- lm(yrta~A+B+C, data=dis4_cod)  
  
  ## Almacenar los ECM
  ECM_tab_23$dis1[i] <- (deviance(mod1) / df.residual(mod1))
  ECM_tab_23$dis2[i] <- (deviance(mod2) / df.residual(mod2))
  ECM_tab_23$dis3[i] <- (deviance(mod3) / df.residual(mod3))
  ECM_tab_23$dis4[i] <- (deviance(mod4) / df.residual(mod4))
  
  # Lista de modelos y de tablas
  mods <- list(mod1, mod2, mod3, mod4)
  tabs <- list(TAB1_23, TAB2_23, TAB3_23, TAB4_23)
  for (j in seq_along(mods)) {
    tabs[[j]][i, ] <- sapply(1:3, function(k) {
    as.integer(anova(mods[[j]])[k, 5] <= 0.05) })}
  
  ## Evaluación del diseño con réplicas y con cinco puntos centrales
  TAB1_23 <- tabs[[1]] 
  ## Evaluación del diseño con réplicas y sin puntos centrales
  TAB2_23 <- tabs[[2]] 
  ## Evaluación del diseño sin réplicas y con cinco puntos centrales
  TAB3_23 <- tabs[[3]]  
  ## Evaluación del diseño sin réplicas y con dos puntos centrales
  TAB4_23 <- tabs[[4]]}  5.1.2 Potencia y error tipo I
Código
## Evaluación del diseño con réplicas y con cinco puntos centrales
comp1_23 <- round(colSums(efectos_reales_23[,1:3] == TAB1_23) / n * 100, 2)
pot1_23 <- round(colSums((efectos_reales_23[,1:3] == 1) & (TAB1_23 == 1)) /
                colSums(efectos_reales_23[,1:3] == 1) * 100, 2)
err1_23 <- round(colSums((efectos_reales_23[,1:3] == 0) & (TAB1_23 == 1)) /
                colSums(efectos_reales_23[,1:3] == 0) * 100, 2)
## Evaluación del diseño con réplicas y sin puntos centrales
comp2_23 <- round(colSums(efectos_reales_23[,1:3] == TAB2_23) / n * 100, 2)
pot2_23 <- round(colSums((efectos_reales_23[,1:3] == 1) & (TAB2_23 == 1)) / 
                colSums(efectos_reales_23[,1:3] == 1) * 100, 2)
err2_23 <- round(colSums((efectos_reales_23[,1:3] == 0) & (TAB2_23 == 1)) / 
                colSums(efectos_reales_23[,1:3] == 0) * 100, 2)
## Evaluación del diseño sin réplicas y con cinco puntos centrales
comp3_23 <- round(colSums(efectos_reales_23[,1:3] == TAB3_23) / n * 100, 2)
pot3_23 <- round(colSums((efectos_reales_23[,1:3] == 1) & (TAB3_23 == 1)) / 
                colSums(efectos_reales_23[,1:3] == 1) * 100, 2)
err3_23 <- round(colSums((efectos_reales_23[,1:3] == 0) & (TAB3_23 == 1)) / 
                colSums(efectos_reales_23[,1:3] == 0) * 100, 2)
## Evaluación del diseño sin réplicas y con dos puntos centrales
comp4_23 <- round(colSums(efectos_reales_23[,1:3] == TAB4_23) / n * 100, 2)
pot4_23 <- round(colSums((efectos_reales_23[,1:3] == 1) & (TAB4_23 == 1)) / 
                colSums(efectos_reales_23[,1:3] == 1) * 100, 2)
err4_23 <- round(colSums((efectos_reales_23[,1:3] == 0) & (TAB4_23 == 1)) / 
                colSums(efectos_reales_23[,1:3] == 0) * 100, 2)5.2 Diseño \(2^{4-1}\)
5.2.1 Significancia de los efectos
Código
# Matrices
TAB1_24 <- matrix(0, nrow = n, ncol = 4)
TAB2_24 <- matrix(0, nrow = n, ncol = 4)
TAB3_24 <- matrix(0, nrow = n, ncol = 4)
TAB4_24 <- matrix(0, nrow = n, ncol = 4)
efectos_reales_24 <- matrix(0, nrow = n, ncol = 15)
names_24 <- c("A", "B", "C", "D")  # Los que serán estimados por el modelo
colnames(TAB1_24) <- names_24
colnames(TAB2_24) <- names_24
colnames(TAB3_24) <- names_24
colnames(TAB4_24) <- names_24
colnames(efectos_reales_24) <- c("A", "B", "C", "D",    #Todos
  "AB", "AC", "BC", "AD", "BD", "CD",
  "ABC", "ABD", "ACD", "BCD",
  "ABCD")
# Tabla para completar los errores
ECM_tab_24 <- data.frame(       
    dis1 = numeric(n),
    dis2 = numeric(n),
    dis3 = numeric(n),
    dis4 = numeric(n))
# Bucle principal
set.seed(3)
for(i in seq_len(n)){
  ## Efectos a evaluar en el este diseño
  todos_efectos_24 <- c("A", "B", "C", "D",
  "AB", "AC", "BC", "AD", "BD", "CD",
  "ABC", "ABD", "ACD", "BCD",
  "ABCD")
  
  # Selección de un número aleatorio entre 1 y 15
  # dado que existen 15 efectos posibles a evaluar en este diseño.
  n_ef <- sample(1:length(todos_efectos_24), 1)
  
  # Elección aleatoria _n_ef_ efectos que serán los efectos significativos
  efectos_activos <- sample(todos_efectos_24, n_ef)
  efectos_reales_24_vec <- setNames(rep(0, length(todos_efectos_24)), todos_efectos_24)
  
  # Asignación de un valor aleatorio a los efectos elegidos como significativos:
  efectos_reales_24_vec[efectos_activos] <- runif(n_ef, -7, 7)
  
  # Guardar efectos reales como 1/0
  efectos_reales_24[i, ] <- c(
    as.integer(efectos_reales_24_vec["A"]    != 0),
    as.integer(efectos_reales_24_vec["B"]    != 0),
    as.integer(efectos_reales_24_vec["C"]    != 0),
    as.integer(efectos_reales_24_vec["D"]    != 0),
    as.integer(efectos_reales_24_vec["AB"]   != 0),
    as.integer(efectos_reales_24_vec["AC"]   != 0),
    as.integer(efectos_reales_24_vec["BC"]   != 0),
    as.integer(efectos_reales_24_vec["AD"]   != 0),
    as.integer(efectos_reales_24_vec["BD"]   != 0),
    as.integer(efectos_reales_24_vec["CD"]   != 0),
    as.integer(efectos_reales_24_vec["ABC"]  != 0),
    as.integer(efectos_reales_24_vec["ABD"]  != 0),
    as.integer(efectos_reales_24_vec["ACD"]  != 0),
    as.integer(efectos_reales_24_vec["BCD"]  != 0),
    as.integer(efectos_reales_24_vec["ABCD"] != 0))
    
  # Generar respuesta
  
  ## Diseño factorial completo con réplicas y con 5 puntos centrales
 
  dis0_cod <- data.frame(
      A = c(rep(c(-1,1), 8), rep(c(-1,1), 8), rep(0,5)),
      B = c(rep(c(rep(-1,2), rep(1,2)), 4),
            rep(c(rep(-1,2), rep(1,2)), 4),
            rep(0,5)),
      C = c(rep(c(rep(-1,4), rep(1,4)), 2),
            rep(c(rep(-1,4), rep(1,4)), 2),
            rep(0,5)),
      D = c(rep(-1,8), rep(1,8),
            rep(-1,8), rep(1,8),
            rep(0,5)))
 
  n_corridas <- nrow(dis0_cod)
  
  ## Generación del error
  error <- rnorm(n_corridas, 0, 2)       #error ~ (mu = 0, sigma^2 = 2^2)
  
  ## Generación de la respuesta
  yrta <- 50 +
  efectos_reales_24_vec["A"]    * dis0_cod$A +
  efectos_reales_24_vec["B"]    * dis0_cod$B +
  efectos_reales_24_vec["C"]    * dis0_cod$C +
  efectos_reales_24_vec["D"]    * dis0_cod$D +
  efectos_reales_24_vec["AB"]   * dis0_cod$A * dis0_cod$B +
  efectos_reales_24_vec["AC"]   * dis0_cod$A * dis0_cod$C +
  efectos_reales_24_vec["BC"]   * dis0_cod$B * dis0_cod$C +
  efectos_reales_24_vec["AD"]   * dis0_cod$A * dis0_cod$D +
  efectos_reales_24_vec["BD"]   * dis0_cod$B * dis0_cod$D +
  efectos_reales_24_vec["CD"]   * dis0_cod$C * dis0_cod$D +
  efectos_reales_24_vec["ABC"]  * dis0_cod$A * dis0_cod$B * dis0_cod$C +
  efectos_reales_24_vec["ABD"]  * dis0_cod$A * dis0_cod$B * dis0_cod$D +
  efectos_reales_24_vec["ACD"]  * dis0_cod$A * dis0_cod$C * dis0_cod$D +
  efectos_reales_24_vec["BCD"]  * dis0_cod$B * dis0_cod$C * dis0_cod$D +
  efectos_reales_24_vec["ABCD"] * dis0_cod$A * dis0_cod$B * dis0_cod$C * dis0_cod$D +
  error
  ## Asignación de la respuesta al dis0_cod
  ## (Diseño factorial completo con réplicas y con 5 puntos centrales)
  dis0_cod <- cbind(dis0_cod, yrta)
  ## Diseño fraccional con réplicas y puntos centrales
  dis1_cod <- dis0_cod[c(1,4,6,7,10,11,13,16,
                         17,20,22,23,26,27,29,32,
                         33:37),]
  
  ## Diseño con réplicas y sin puntos centrales
  
  dis2_cod <- dis0_cod[c(1,4,6,7,10,11,13,16,
                         17,20,22,23,26,27,29,32),]
  
  ## Diseño sin réplica y con cinco puntos centrales
  rep1 <- c(17:32,2,3,5,8,9,12,14,15)       #filas para eliminar en "sel"
  rep2 <- c(1:16,18,19,21,24,25,28,30,31)   #filas para eliminar en "sel"
  seleccion_name <- sample(c("rep1","rep2"),1)   #repetición a eliminar
  sel <- get(seleccion_name)
  
  dis3_cod <- dis0_cod[-sel,]      
  
  ## Diseño sin réplica y con dos puntos centrales
  rep1 <- c(17:32,2,3,5,8,9,12,14,15)       #filas para eliminar en "sel"
  rep2 <- c(1:16,18,19,21,24,25,28,30,31)   #filas para eliminar en "sel"
  seleccion_name <- sample(c("rep1","rep2"),1)   #repetición a eliminar
  sel <- get(seleccion_name)
  rep_pc <- sample(c(33:37),3)                   #punto central a eliminar
  
  dis4_cod <- dis0_cod[-c(sel,rep_pc),]     
  
  # Modelo
  ## Evaluación del diseño con réplicas y con cinco puntos centrales
  mod1 <- lm(yrta ~ A + B + C + D, data=dis1_cod)  
  ## Evaluación del diseño con réplicas y sin puntos centrales
  mod2 <- lm(yrta ~ A + B + C + D, data=dis2_cod)  
  ## Evaluación del diseño sin réplicas y con cinco puntos centrales
  mod3 <- lm(yrta ~ A + B + C + D, data=dis3_cod)  
  ## Evaluación del diseño sin réplicas y con dos puntos centrales
  mod4 <- lm(yrta ~ A + B + C + D, data=dis4_cod)  
  
  ## Almacenar los ECM
  ECM_tab_24$dis1[i] <- (deviance(mod1) / df.residual(mod1))
  ECM_tab_24$dis2[i] <- (deviance(mod2) / df.residual(mod2))
  ECM_tab_24$dis3[i] <- (deviance(mod3) / df.residual(mod3))
  ECM_tab_24$dis4[i] <- (deviance(mod4) / df.residual(mod4))
  
  # Lista de modelos y de tablas
  mods <- list(mod1, mod2, mod3, mod4)
  tabs <- list(TAB1_24, TAB2_24, TAB3_24, TAB4_24)
  for (j in seq_along(mods)) {
    tabs[[j]][i, ] <- sapply(1:4, function(k) {
      as.integer(anova(mods[[j]])[k, 5] <= 0.05) })}
  
  ## Diseño con réplicas y con cinco puntos centrales
  TAB1_24 <- tabs[[1]] 
  ## Evaluación del diseño con réplicas y sin puntos centrales
  TAB2_24 <- tabs[[2]] 
  ## Evaluación del diseño sin réplicas y con cinco puntos centrales
  TAB3_24 <- tabs[[3]]  
  ## Evaluación del diseño sin réplicas y con dos puntos centrales
  TAB4_24 <- tabs[[4]]}  5.2.2 Potencia y error tipo I
Código
## Evaluación del diseño con réplicas y con cinco puntos centrales
comp1_24 <- round(colSums(efectos_reales_24[,1:4] == TAB1_24) / n * 100, 2)
pot1_24 <- round(colSums((efectos_reales_24[,1:4] == 1) & (TAB1_24 == 1)) /
                colSums(efectos_reales_24[,1:4] == 1) * 100, 2)
err1_24 <- round(colSums((efectos_reales_24[,1:4] == 0) & (TAB1_24 == 1)) /
                colSums(efectos_reales_24[,1:4] == 0) * 100, 2)
## Evaluación del diseño con réplicas y sin puntos centrales
comp2_24 <- round(colSums(efectos_reales_24[,1:4] == TAB2_24) / n * 100, 2)
pot2_24 <- round(colSums((efectos_reales_24[,1:4] == 1) & (TAB2_24 == 1)) / 
                colSums(efectos_reales_24[,1:4] == 1) * 100, 2)
err2_24 <- round(colSums((efectos_reales_24[,1:4] == 0) & (TAB2_24 == 1)) / 
                colSums(efectos_reales_24[,1:4] == 0) * 100, 2)
## Evaluación del diseño sin réplicas y con cinco puntos centrales
comp3_24 <- round(colSums(efectos_reales_24[,1:4] == TAB3_24) / n * 100, 2)
pot3_24 <- round(colSums((efectos_reales_24[,1:4] == 1) & (TAB3_24 == 1)) / 
                colSums(efectos_reales_24[,1:4] == 1) * 100, 2)
err3_24 <- round(colSums((efectos_reales_24[,1:4] == 0) & (TAB3_24 == 1)) / 
                colSums(efectos_reales_24[,1:4] == 0) * 100, 2)
## Evaluación del diseño sin réplicas y con dos puntos centrales
comp4_24 <- round(colSums(efectos_reales_24[,1:4] == TAB4_24) / n * 100, 2)
pot4_24 <- round(colSums((efectos_reales_24[,1:4] == 1) & (TAB4_24 == 1)) / 
                colSums(efectos_reales_24[,1:4] == 1) * 100, 2)
err4_24 <- round(colSums((efectos_reales_24[,1:4] == 0) & (TAB4_24 == 1)) / 
                colSums(efectos_reales_24[,1:4] == 0) * 100, 2)5.3 Diseño \(2^{5-2}\)
5.3.1 Significancia de los efectos
Código
# Matrices
TAB1_25 <- matrix(0, nrow = n, ncol = 5)
TAB2_25 <- matrix(0, nrow = n, ncol = 5)
TAB3_25 <- matrix(0, nrow = n, ncol = 5)
TAB4_25 <- matrix(0, nrow = n, ncol = 5)
efectos_reales_25 <- matrix(0, nrow = n, ncol = 31)
names_25 <- c("A","B","C","D","E")
colnames(TAB1_25) <- names_25
colnames(TAB2_25) <- names_25
colnames(TAB3_25) <- names_25
colnames(TAB4_25) <- names_25
colnames(efectos_reales_25) <- c("A","B","C","D","E", 
           "AB","AC","BC","AD","BD","CD","AE","BE","CE","DE",
           "ABC","ABD","ACD","BCD","ABE","ACE","BCE","ADE","BDE","CDE",
           "ABCD","ABCE","ABDE","ACDE","BCDE",
           "ABCDE")
# Tabla para completar los errores
ECM_tab_25 <- data.frame(       
    dis1 = numeric(n),
    dis2 = numeric(n),
    dis3 = numeric(n),
    dis4 = numeric(n))
# Bucle principal
set.seed(3)
for(i in seq_len(n)){
  ## Efectos a evaluar en el este diseño
  todos_efectos_25 <- c("A","B","C","D","E", 
           "AB","AC","BC","AD","BD","CD","AE","BE","CE","DE",
           "ABC","ABD","ACD","BCD","ABE","ACE","BCE","ADE","BDE","CDE",
           "ABCD","ABCE","ABDE","ACDE","BCDE",
           "ABCDE")
  
  # Selección de un número aleatorio entre 1 y 31
  # dado que existen 31 efectos posibles a evaluar en este diseño.
  n_ef <- sample(1:length(todos_efectos_25), 1)
  
  # Elección aleatoria _n_ef_ efectos que serán los efectos significativos
  efectos_activos <- sample(todos_efectos_25, n_ef)
  efectos_reales_25_vec <- setNames(rep(0, length(todos_efectos_25)), todos_efectos_25)
  
  # Asignación de un valor aleatorio a los efectos elegidos como significativos:
  efectos_reales_25_vec[efectos_activos] <- sample(c(runif(n_ef, -7, -0.5), 
                                                  runif(n_ef,  0.5, 7)), n_ef)
  
  # Guardar efectos reales como 1/0
  efectos_reales_25[i, ] <- c(
    as.integer(efectos_reales_25_vec["A"]    != 0),
    as.integer(efectos_reales_25_vec["B"]    != 0),
    as.integer(efectos_reales_25_vec["C"]    != 0),
    as.integer(efectos_reales_25_vec["D"]    != 0),
    as.integer(efectos_reales_25_vec["E"]    != 0),
    
    as.integer(efectos_reales_25_vec["AB"]   != 0),
    as.integer(efectos_reales_25_vec["AC"]   != 0),
    as.integer(efectos_reales_25_vec["BC"]   != 0),
    as.integer(efectos_reales_25_vec["AD"]   != 0),
    as.integer(efectos_reales_25_vec["BD"]   != 0),
    as.integer(efectos_reales_25_vec["CD"]   != 0),
    as.integer(efectos_reales_25_vec["AE"]   != 0),
    as.integer(efectos_reales_25_vec["BE"]   != 0),
    as.integer(efectos_reales_25_vec["CE"]   != 0),
    as.integer(efectos_reales_25_vec["DE"]   != 0),
    
    as.integer(efectos_reales_25_vec["ABC"]  != 0),
    as.integer(efectos_reales_25_vec["ABD"]  != 0),
    as.integer(efectos_reales_25_vec["ACD"]  != 0),
    as.integer(efectos_reales_25_vec["BCD"]  != 0),
    as.integer(efectos_reales_25_vec["ABE"]  != 0),
    as.integer(efectos_reales_25_vec["ACE"]  != 0),
    as.integer(efectos_reales_25_vec["BCE"]  != 0),
    as.integer(efectos_reales_25_vec["ADE"]  != 0),
    as.integer(efectos_reales_25_vec["BDE"]  != 0),
    as.integer(efectos_reales_25_vec["CDE"]  != 0),
    
    as.integer(efectos_reales_25_vec["ABCD"] != 0),
    as.integer(efectos_reales_25_vec["ABCE"] != 0),
    as.integer(efectos_reales_25_vec["ABDE"] != 0),
    as.integer(efectos_reales_25_vec["ACDE"] != 0),
    as.integer(efectos_reales_25_vec["BCDE"] != 0),
    
    as.integer(efectos_reales_25_vec["ABCDE"]!= 0))
    
  # Generar respuesta
  
  ## Diseño de variables codificadas con réplicas y con 5 puntos centrales
 
  dis0_cod <- data.frame(
  A = c(rep(c(-1,1),16), rep(c(-1,1),16), rep(0,5)),
  B = c(rep(c(rep(-1,2), rep(1,2)),8),  rep(c(rep(-1,2), rep(1,2)),8),rep(0,5)),
  C = c(rep(c(rep(-1,4), rep(1,4)),4), rep(c(rep(-1,4), rep(1,4)),4),rep(0,5)),
  D = c(rep(c(rep(-1,8), rep(1,8)),2), rep(c(rep(-1,8), rep(1,8)),2),rep(0,5)),
  E = c(rep(-1,16), rep(1,16), rep(-1,16), rep(1,16), rep(0,5)))
 
  n_corridas <- nrow(dis0_cod)
  
  ## Generación del error
  error <- rnorm(n_corridas, 0, 2)       #error ~ (mu = 0, sigma^2 = 2^2)
  
  ## Generación de la respuesta
  yrta <- 50 +
  efectos_reales_25_vec["A"]     * dis0_cod$A +
  efectos_reales_25_vec["B"]     * dis0_cod$B +
  efectos_reales_25_vec["C"]     * dis0_cod$C +
  efectos_reales_25_vec["D"]     * dis0_cod$D +
  efectos_reales_25_vec["E"]     * dis0_cod$E +
  
  efectos_reales_25_vec["AB"]    * dis0_cod$A * dis0_cod$B +
  efectos_reales_25_vec["AC"]    * dis0_cod$A * dis0_cod$C +
  efectos_reales_25_vec["BC"]    * dis0_cod$B * dis0_cod$C +
  efectos_reales_25_vec["AD"]    * dis0_cod$A * dis0_cod$D +
  efectos_reales_25_vec["BD"]    * dis0_cod$B * dis0_cod$D +
  efectos_reales_25_vec["CD"]    * dis0_cod$C * dis0_cod$D +
  efectos_reales_25_vec["AE"]    * dis0_cod$A * dis0_cod$E +
  efectos_reales_25_vec["BE"]    * dis0_cod$B * dis0_cod$E +
  efectos_reales_25_vec["CE"]    * dis0_cod$C * dis0_cod$E +
  efectos_reales_25_vec["DE"]    * dis0_cod$D * dis0_cod$E +
  
  efectos_reales_25_vec["ABC"]   * dis0_cod$A * dis0_cod$B * dis0_cod$C +
  efectos_reales_25_vec["ABD"]   * dis0_cod$A * dis0_cod$B * dis0_cod$D +
  efectos_reales_25_vec["ACD"]   * dis0_cod$A * dis0_cod$C * dis0_cod$D +
  efectos_reales_25_vec["BCD"]   * dis0_cod$B * dis0_cod$C * dis0_cod$D +
  efectos_reales_25_vec["ABE"]   * dis0_cod$A * dis0_cod$B * dis0_cod$E +
  efectos_reales_25_vec["ACE"]   * dis0_cod$A * dis0_cod$C * dis0_cod$E +
  efectos_reales_25_vec["BCE"]   * dis0_cod$B * dis0_cod$C * dis0_cod$E +
  efectos_reales_25_vec["ADE"]   * dis0_cod$A * dis0_cod$D * dis0_cod$E +
  efectos_reales_25_vec["BDE"]   * dis0_cod$B * dis0_cod$D * dis0_cod$E +
  efectos_reales_25_vec["CDE"]   * dis0_cod$C * dis0_cod$D * dis0_cod$E +
  
  efectos_reales_25_vec["ABCD"]  * dis0_cod$A * dis0_cod$B * dis0_cod$C * dis0_cod$D +
  efectos_reales_25_vec["ABCE"]  * dis0_cod$A * dis0_cod$B * dis0_cod$C * dis0_cod$E +
  efectos_reales_25_vec["ABDE"]  * dis0_cod$A * dis0_cod$B * dis0_cod$D * dis0_cod$E +
  efectos_reales_25_vec["ACDE"]  * dis0_cod$A * dis0_cod$C * dis0_cod$D * dis0_cod$E +
  efectos_reales_25_vec["BCDE"]  * dis0_cod$B * dis0_cod$C * dis0_cod$D * dis0_cod$E +
  
  efectos_reales_25_vec["ABCDE"] * dis0_cod$A * dis0_cod$B * dis0_cod$C * dis0_cod$D * dis0_cod$E +
  
  error
  
  ## Asignación de la respuesta al dis0_cod
  dis0_cod <- cbind(dis0_cod, yrta)
  ## Diseño fraccional con réplicas y puntos centrales
  dis1_cod <- dis0_cod[c(2, 3, 5, 8, 9, 12, 14, 15, 17, 20, 22, 23, 26, 27, 29, 32,
                         34, 35, 37, 40, 41, 44, 46, 47, 49, 52, 54, 55, 58, 59, 61, 64,
                         65:69),]
  
  ## Diseño con réplicas y sin puntos centrales
  dis2_cod <- dis0_cod[c(2, 3, 5, 8, 9, 12, 14, 15, 17, 20, 22, 23, 26, 27, 29, 32,
                         34, 35, 37, 40, 41, 44, 46, 47, 49, 52, 54, 55, 58, 59, 61, 64),]
  
  ## Diseño sin réplica y con cinco puntos centrales
  rep1 <- c(33:64, 1, 4, 6, 7, 10, 11, 13, 16, 18, 19, 21, 24, 25, 28, 30, 31)
  rep2 <- c(1:32, 33, 36, 38, 39, 42, 43, 45, 48, 50, 51, 53, 56, 57, 60, 62, 63)
  seleccion_name <- sample(c("rep1","rep2"),1)   #repetición a eliminar
  sel <- get(seleccion_name)
  
  dis3_cod <- dis0_cod[-sel,]      
  
  ## Diseño sin réplica y con dos puntos centrales
  rep1 <- c(33:64, 1, 4, 6, 7, 10, 11, 13, 16, 18, 19, 21, 24, 25, 28, 30, 31)
  rep2 <- c(1:32, 33, 36, 38, 39, 42, 43, 45, 48, 50, 51, 53, 56, 57, 60, 62, 63)
  seleccion_name <- sample(c("rep1","rep2"),1)   #repetición a eliminar
  sel <- get(seleccion_name)
  rep_pc <- sample(c(65:69),3)                   #punto central a eliminar
  
  dis4_cod <- dis0_cod[-c(sel,rep_pc),]     
  
  # Modelo
  ## Evaluación del diseño con réplicas y con cinco puntos centrales
  mod1 <- lm(yrta ~ A + B + C + D + E, data=dis1_cod) 
  ## Evaluación del diseño con réplicas y sin puntos centrales
  mod2 <- lm(yrta ~ A + B + C + D + E, data=dis2_cod)  
  
  ## Evaluación del diseño sin réplicas y con cinco puntos centrales
  mod3 <- lm(yrta ~ A + B + C + D + E, data=dis3_cod)  
  
  ## Evaluación del diseño sin réplicas y con dos puntos centrales
  mod4 <- lm(yrta ~ A + B + C + D + E, data=dis4_cod)  
  
  ## Almacenar los ECM
  ECM_tab_25$dis1[i] <- (deviance(mod1) / df.residual(mod1))
  ECM_tab_25$dis2[i] <- (deviance(mod2) / df.residual(mod2))
  ECM_tab_25$dis3[i] <- (deviance(mod3) / df.residual(mod3))
  ECM_tab_25$dis4[i] <- (deviance(mod4) / df.residual(mod4))
  
  # Lista de modelos y de tablas
  mods <- list(mod1, mod2, mod3, mod4)
  tabs <- list(TAB1_25, TAB2_25, TAB3_25, TAB4_25)
  for (j in seq_along(mods)) {
    tabs[[j]][i, ] <- sapply(1:5, function(k) {
      as.integer(anova(mods[[j]])[k, 5] <= 0.05) })}
  
  ## Diseño con réplicas y con cinco puntos centrales
  TAB1_25 <- tabs[[1]] 
  ## Evaluación del diseño con réplicas y sin puntos centrales
  TAB2_25 <- tabs[[2]] 
  ## Evaluación del diseño sin réplicas y con cinco puntos centrales
  TAB3_25 <- tabs[[3]]  
  ## Evaluación del diseño sin réplicas y con dos puntos centrales
  TAB4_25 <- tabs[[4]]}  5.3.2 Potencia y error tipo I
Código
## Evaluación del diseño con réplicas y con cinco puntos centrales
comp1_25 <- round(colSums(efectos_reales_25[,c(1:5)] == TAB1_25) / n * 100, 2)
pot1_25 <- round(colSums((efectos_reales_25[,c(1:5)] == 1) & (TAB1_25 == 1)) /
                colSums(efectos_reales_25[,c(1:5)] == 1) * 100, 2)
err1_25 <- round(colSums((efectos_reales_25[,c(1:5)] == 0) & (TAB1_25 == 1)) /
                colSums(efectos_reales_25[,c(1:5)] == 0) * 100, 2)
## Evaluación del diseño con réplicas y sin puntos centrales
comp2_25 <- round(colSums(efectos_reales_25[,c(1:5)] == TAB2_25) / n * 100, 2)
pot2_25 <- round(colSums((efectos_reales_25[,c(1:5)] == 1) & (TAB2_25 == 1)) / 
                colSums(efectos_reales_25[,c(1:5)] == 1) * 100, 2)
err2_25 <- round(colSums((efectos_reales_25[,c(1:5)] == 0) & (TAB2_25 == 1)) / 
                colSums(efectos_reales_25[,c(1:5)] == 0) * 100, 2)
## Evaluación del diseño sin réplicas y con cinco puntos centrales
comp3_25 <- round(colSums(efectos_reales_25[,c(1:5)] == TAB3_25) / n * 100, 2)
pot3_25 <- round(colSums((efectos_reales_25[,c(1:5)] == 1) & (TAB3_25 == 1)) / 
                colSums(efectos_reales_25[,c(1:5)] == 1) * 100, 2)
err3_25 <- round(colSums((efectos_reales_25[,c(1:5)] == 0) & (TAB3_25 == 1)) / 
                colSums(efectos_reales_25[,c(1:5)] == 0) * 100, 2)
## Evaluación del diseño sin réplicas y con dos puntos centrales
comp4_25 <- round(colSums(efectos_reales_25[,c(1:5)] == TAB4_25) / n * 100, 2)
pot4_25 <- round(colSums((efectos_reales_25[,c(1:5)] == 1) & (TAB4_25 == 1)) / 
                colSums(efectos_reales_25[,c(1:5)] == 1) * 100, 2)
err4_25 <- round(colSums((efectos_reales_25[,c(1:5)] == 0) & (TAB4_25 == 1)) / 
                colSums(efectos_reales_25[,c(1:5)] == 0) * 100, 2)5.4 Evaluación del Error Cuadrático Medio (ECM) por medidas repetidas
Para la evaluación del Error Cuadrático Medio (ECM) se diseñó la siguiente función:
Código
# X: Matriz que incluye los datos para comparar que debe estar organizada así
# C: Matriz de contrastes
# alpha: Nivel de significancia
Hotelling <- function(X, C, alpha) {
  
  ## Cálculo de la $T^2$ Hotelling
  mu <- colMeans(X)
  n <- nrow(X)   # Número de individuos (filas de X)
  p <- ncol(X)   # Número de tratamientos (columnas de X)
  
  # Matriz identidad e I - (1/n)11'
  In <- diag(n)
  uno <- matrix(1, n, n)   # 1 x t(1)
  H <- In - (1/n) * uno
  
  # Calculo de S
  S <- (1/(n-1)) * t(X) %*% H %*% X
  
  # Cálculo de T2
  T2 <- n*(t(C%*%mu))%*%(solve(C%*%S%*%t(C)))%*%(C%*%mu)
  
  # F calculado
  Fcal <- (n - p + 1) / ((n - 1)*(p - 1)) * T2
  
  # F tabulado (crítico)
  gl1 <- p-1
  gl2 <- n-p+1
  
  # Valor crítico F(0.05; p-1, n-p+1)
  F_critico <- qf(1-alpha, df1 = gl1, df2 = gl2)
  return(list(
    T2 = as.numeric(T2),
    Fcal = as.numeric(Fcal),
    F_critico = F_critico))
}6 Resultados
6.1 Diseño \(2^{3-1}\)
| Factores | Con réplicas con 5 puntos centrales | Con réplicas con 5 puntos centrales | Con réplicas con 5 puntos centrales | Con réplicas sin puntos centrales | Con réplicas sin puntos centrales | Con réplicas sin puntos centrales | Sin réplicas con 5 puntos centrales | Sin réplicas con 5 puntos centrales | Sin réplicas con 5 puntos centrales | Sin réplicas con 2 puntos centrales | Sin réplicas con 2 puntos centrales | Sin réplicas con 2 puntos centrales | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Concordancia | Potencia | Error Tipo I | Concordancia | Potencia | Error Tipo I | Concordancia | Potencia | Error Tipo I | Concordancia | Potencia | Error Tipo I | |
| A | 73.7 | 74.90 | 27.55 | 74.2 | 78.24 | 30.00 | 67.7 | 56.27 | 20.41 | 61.2 | 37.06 | 13.67 | 
| B | 72.8 | 74.68 | 28.84 | 73.0 | 76.39 | 29.96 | 66.8 | 55.79 | 23.60 | 60.8 | 34.33 | 16.10 | 
| C | 73.2 | 73.47 | 27.06 | 76.4 | 79.59 | 26.67 | 67.7 | 54.29 | 19.41 | 59.4 | 32.65 | 14.90 | 
6.2 Diseño \(2^{4-1}\)
| Factores | Con réplicas con 5 puntos centrales | Con réplicas con 5 puntos centrales | Con réplicas con 5 puntos centrales | Con réplicas sin puntos centrales | Con réplicas sin puntos centrales | Con réplicas sin puntos centrales | Sin réplicas con 5 puntos centrales | Sin réplicas con 5 puntos centrales | Sin réplicas con 5 puntos centrales | Sin réplicas con 2 puntos centrales | Sin réplicas con 2 puntos centrales | Sin réplicas con 2 puntos centrales | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Concordancia | Potencia | Error Tipo I | Concordancia | Potencia | Error Tipo I | Concordancia | Potencia | Error Tipo I | Concordancia | Potencia | Error Tipo I | |
| A | 63.8 | 48.60 | 18.57 | 61.1 | 41.15 | 15.77 | 57.1 | 28.68 | 9.94 | 52.4 | 15.46 | 4.75 | 
| B | 64.4 | 49.62 | 18.80 | 61.9 | 42.11 | 15.60 | 59.0 | 31.02 | 9.19 | 53.7 | 18.05 | 5.77 | 
| C | 62.9 | 48.60 | 20.65 | 61.1 | 42.43 | 17.42 | 57.3 | 30.84 | 12.26 | 53.4 | 20.56 | 8.82 | 
| D | 61.4 | 46.96 | 21.44 | 58.7 | 38.86 | 17.72 | 56.4 | 30.39 | 12.69 | 53.9 | 20.26 | 6.13 | 
png 
  2 6.3 Diseño \(2^{5-2}\)
| Factores | Con réplicas con 5 puntos centrales | Con réplicas con 5 puntos centrales | Con réplicas con 5 puntos centrales | Con réplicas sin puntos centrales | Con réplicas sin puntos centrales | Con réplicas sin puntos centrales | Sin réplicas con 5 puntos centrales | Sin réplicas con 5 puntos centrales | Sin réplicas con 5 puntos centrales | Sin réplicas con 2 puntos centrales | Sin réplicas con 2 puntos centrales | Sin réplicas con 2 puntos centrales | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Concordancia | Potencia | Error Tipo I | Concordancia | Potencia | Error Tipo I | Concordancia | Potencia | Error Tipo I | Concordancia | Potencia | Error Tipo I | |
| A | 62.6 | 39.26 | 12.91 | 62.4 | 35.94 | 9.84 | 56.9 | 20.70 | 5.12 | 54.5 | 15.04 | 4.10 | 
| B | 59.6 | 37.35 | 16.87 | 58.1 | 32.49 | 14.81 | 54.4 | 17.12 | 6.17 | 52.6 | 12.84 | 5.35 | 
| C | 59.7 | 37.12 | 15.04 | 59.4 | 34.66 | 12.92 | 53.4 | 18.18 | 7.20 | 51.9 | 13.07 | 4.66 | 
| D | 62.9 | 39.23 | 14.17 | 61.9 | 34.55 | 11.61 | 56.2 | 16.46 | 5.31 | 54.3 | 11.18 | 3.94 | 
| E | 61.6 | 40.08 | 15.18 | 60.3 | 35.65 | 13.10 | 54.7 | 18.50 | 6.24 | 52.7 | 13.29 | 4.78 | 
6.4 Evaluación del ECM por medidas repetidas para todos los tratamientos
6.4.1 Análisis descriptivo de los ECM por diseño
6.4.2 Matriz de contrastes generales \(C_1\)
| Diseño | T² | F_calculado | F_crítico | Decisión | 
|---|---|---|---|---|
| Diseño factorial 2³⁻¹ | 290.70 | 96.71 | 2.61 | Se rechaza H₀ | 
| Diseño factorial 2⁴⁻¹ | 915.61 | 304.59 | 2.61 | Se rechaza H₀ | 
| Diseño factorial 2⁵⁻² | 1,782.32 | 592.92 | 2.61 | Se rechaza H₀ | 
Dado que, al evaluar la matriz de contrastes \(C_1\), se rechazó la hipótesis nula, es decir, al menos hay uno de los contrastes que es diferente de 0, resulta necesario analizar cada contraste de manera individual, obteniéndose los siguientes resultados:
6.4.2.1 Contraste \(C_{11} =[-1 1 0 0]\)
| Diseño | T² | F_calculado | F_crítico | Decisión | 
|---|---|---|---|---|
| Diseño factorial 2³⁻¹ | 283.48 | 94.30 | 3.43 | Se rechaza H₀ | 
| Diseño factorial 2⁴⁻¹ | 811.11 | 269.83 | 3.43 | Se rechaza H₀ | 
| Diseño factorial 2⁵⁻² | 1,758.73 | 585.07 | 3.43 | Se rechaza H₀ | 
6.4.2.2 Contraste \(C_{12} =[0 -1 1 0]\)
| Diseño | T² | F_calculado | F_crítico | Decisión | 
|---|---|---|---|---|
| Diseño factorial 2³⁻¹ | 234.51 | 78.01 | 3.43 | Se rechaza H₀ | 
| Diseño factorial 2⁴⁻¹ | 663.42 | 220.70 | 3.43 | Se rechaza H₀ | 
| Diseño factorial 2⁵⁻² | 1,310.07 | 435.81 | 3.43 | Se rechaza H₀ | 
6.4.2.3 Contraste \(C_{13} =[0 0 -1 1]\)
| Diseño | T² | F_calculado | F_crítico | Decisión | 
|---|---|---|---|---|
| Diseño factorial 2³⁻¹ | 79.36 | 26.40 | 3.43 | Se rechaza H₀ | 
| Diseño factorial 2⁴⁻¹ | 815.23 | 271.20 | 3.43 | Se rechaza H₀ | 
| Diseño factorial 2⁵⁻² | 1,426.99 | 474.71 | 3.43 | Se rechaza H₀ |