Modelo \[y_{ijk} = \mu + \tau_i + \beta_{j} + \tau\beta_{ij} + \epsilon_{ijk} \]

\(i=1,2,\dots,a\text{num tratamientos}\) \(a\) números de niveles de factor \(j=1,2, \dots, b\) \(b\) número de bloques \(k=1,2, \dots, r_i\) \(r_i=\)

\[ Y_{ijk}: \mu + \tau_{i}+ \beta_{j}+ \epsilon_{ijk} i= 1,2\dots,a\text{Número de tratamientos}\\(a = numero de niveles de factores)\\ j=1,2,\dots,b\\ (b = numero de bloques)\\k=1,2\dots,r_i\\ r_i \]

set.seed(123)
aceite=c(
  rnorm(12,10,0.8),
  rnorm(12,11,0.78),
  rnorm(11,9,0.7),
  
  rnorm(12,10,0.8),
  rnorm(12,11,0.78),
  rnorm(11,9,0.7)
)

bloque = gl(2, 35, 70, c('b1', 'b2')) 

metodo = rep(rep(c('T1', 'T2', 'T3'), c(12, 12, 11)), 2)

datos = data.frame(metodo, bloque, aceite) 
head(datos) 
##   metodo bloque    aceite
## 1     T1     b1  9.551619
## 2     T1     b1  9.815858
## 3     T1     b1 11.246967
## 4     T1     b1 10.056407
## 5     T1     b1 10.103430
## 6     T1     b1 11.372052
table(datos$metodo, datos$bloque) 
##     
##      b1 b2
##   T1 12 12
##   T2 12 12
##   T3 11 11

Corriendo como si fuera balanceado

mod1 = aov(aceite ~ bloque * metodo, datos) 
summary(mod1) 
##               Df Sum Sq Mean Sq F value   Pr(>F)    
## bloque         1   0.05   0.054   0.107    0.745    
## metodo         2  41.24  20.622  40.834 3.72e-12 ***
## bloque:metodo  2   0.65   0.323   0.640    0.531    
## Residuals     64  32.32   0.505                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod1a = aov(aceite ~ metodo * bloque, datos) 
summary(mod1a)
##               Df Sum Sq Mean Sq F value   Pr(>F)    
## metodo         2  41.24  20.622  40.834 3.72e-12 ***
## bloque         1   0.05   0.054   0.107    0.745    
## metodo:bloque  2   0.65   0.323   0.640    0.531    
## Residuals     64  32.32   0.505                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Corriendo desbalanceado

mod2 = anova(lm(aceite ~ bloque * metodo, datos)) 
mod2
## Analysis of Variance Table
## 
## Response: aceite
##               Df Sum Sq Mean Sq F value    Pr(>F)    
## bloque         1  0.054  0.0541  0.1071    0.7446    
## metodo         2 41.243 20.6217 40.8342 3.716e-12 ***
## bloque:metodo  2  0.646  0.3231  0.6399    0.5307    
## Residuals     64 32.321  0.5050                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod2a = anova(lm(aceite ~ metodo * bloque, datos))
lote= c(rep("lote1", 1),
rep("lote2", 1),
rep("lote3", 1),
rep("lote4", 1),
rep("lote5", 1))

genotipo = c(rep("genotA",5), 
rep("genotB",5), 
rep("genotC",5), 
rep("genotD",5), 
rep("genotE",5))

proc_sem = c("A","E","C","B","D",
             "C","B","A","D","E",
             "B","C","D","E","A",
             "D","A","E","C","B",
             "E","D","B","A","C")

biomasa= c(42,45,41,56,47, 47,54,46,52,49, 55,5|2,57,49,45, 
51,44,47,50,54, 44,50,48,43,46)


mydata = data.frame(lote, genotipo, proc_sem, biomasa)
mydata
##     lote genotipo proc_sem biomasa
## 1  lote1   genotA        A      42
## 2  lote2   genotA        E      45
## 3  lote3   genotA        C      41
## 4  lote4   genotA        B      56
## 5  lote5   genotA        D      47
## 6  lote1   genotB        C      47
## 7  lote2   genotB        B      54
## 8  lote3   genotB        A      46
## 9  lote4   genotB        D      52
## 10 lote5   genotB        E      49
## 11 lote1   genotC        B      55
## 12 lote2   genotC        C       1
## 13 lote3   genotC        D      57
## 14 lote4   genotC        E      49
## 15 lote5   genotC        A      45
## 16 lote1   genotD        D      51
## 17 lote2   genotD        A      44
## 18 lote3   genotD        E      47
## 19 lote4   genotD        C      50
## 20 lote5   genotD        B      54
## 21 lote1   genotE        E      44
## 22 lote2   genotE        D      50
## 23 lote3   genotE        B      48
## 24 lote4   genotE        A      43
## 25 lote5   genotE        C      46
library(collapsibleTree) 
mydata
##     lote genotipo proc_sem biomasa
## 1  lote1   genotA        A      42
## 2  lote2   genotA        E      45
## 3  lote3   genotA        C      41
## 4  lote4   genotA        B      56
## 5  lote5   genotA        D      47
## 6  lote1   genotB        C      47
## 7  lote2   genotB        B      54
## 8  lote3   genotB        A      46
## 9  lote4   genotB        D      52
## 10 lote5   genotB        E      49
## 11 lote1   genotC        B      55
## 12 lote2   genotC        C       1
## 13 lote3   genotC        D      57
## 14 lote4   genotC        E      49
## 15 lote5   genotC        A      45
## 16 lote1   genotD        D      51
## 17 lote2   genotD        A      44
## 18 lote3   genotD        E      47
## 19 lote4   genotD        C      50
## 20 lote5   genotD        B      54
## 21 lote1   genotE        E      44
## 22 lote2   genotE        D      50
## 23 lote3   genotE        B      48
## 24 lote4   genotE        A      43
## 25 lote5   genotE        C      46
collapsibleTreeSummary(mydata, c('lote','proc_sem','genotipo'), collapsed = F)
library(ggplot2) 

ggplot(mydata) +
  aes(biomasa, genotipo) +
  geom_point(size=5, shape=15) +
  facet_grid(lote ~ proc_sem) 

ggplot(mydata) +
  aes(lote, genotipo, fill=biomasa) +
  geom_tile()+
  facet_wrap(~ proc_sem, nrow=1)+
  theme(axis.text.x = element_text(angle=90))