#Factorial simple con bloques generalizados completamente al azar #DiseƱo desbalanceado

modelo \[y_{ijk} = \mu + \tau_i + \beta_{j} + \tau\beta_{ij} + \epsilon _ {ijk}\] \(i=1,2,\dots,a:\text{numero de tratamientos}\) \(a\) numero de nieveles del factor \(j=1,2,\dots,b\) \(k=1,2,\dots,r_i\) \(r_i\)repeticion de cada tratamiento

set.seed(123)#el numero de datos no es igual en cada tratamiento

aceite = c(
  rnorm(12, 10, 0.8),
  rnorm(12, 11, 0.78),
  rnorm(11, 9, 0.70),
  
  rnorm(12, 10, 0.8),
  rnorm(12, 11, 0.78),
  rnorm(11, 9, 0.70)
)

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
#tratamiento: 3 metodos de extraer aceite escencial 
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
#El unico p-valor interpretable es metodo
#como es menor a 0.5 se rechaza la hipotesis nula (las medias no son iguales de aceite escencial extraido por todos lo metodos )

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) #es exactamente lo mismo, solo cambia el orden (solo cuando es un solo factor)  
##               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))
mod2a
## Analysis of Variance Table
## 
## Response: aceite
##               Df Sum Sq Mean Sq F value    Pr(>F)    
## metodo         2 41.243 20.6217 40.8342 3.716e-12 ***
## bloque         1  0.054  0.0541  0.1071    0.7446    
## metodo:bloque  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
#los bloques no son factores experimentales, son simplemente restricciones  para aleatorizar 
lote <- c(rep("lote1",1), 
          rep("lote2",1), 
          rep("lote3",1), 
          rep("lote4",1), 
          rep("lote5",1))

genotipo <- c(rep("gtA",5),
           rep("gtB",5),
           rep("gtC",5),
           rep("gtD",5),
           rep("gtE",5))


prov <- 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")

biom <- c(42,45,41,56,47,
             47,54,46,52,49,
             55,52,57,49,45,
             51,44,47,50,54,
             44,50,48 ,43,46)

mydata <- data.frame(lote, genotipo, prov, biom);mydata
##     lote genotipo prov biom
## 1  lote1      gtA    A   42
## 2  lote2      gtA    E   45
## 3  lote3      gtA    C   41
## 4  lote4      gtA    B   56
## 5  lote5      gtA    D   47
## 6  lote1      gtB    C   47
## 7  lote2      gtB    B   54
## 8  lote3      gtB    A   46
## 9  lote4      gtB    D   52
## 10 lote5      gtB    E   49
## 11 lote1      gtC    B   55
## 12 lote2      gtC    C   52
## 13 lote3      gtC    D   57
## 14 lote4      gtC    E   49
## 15 lote5      gtC    A   45
## 16 lote1      gtD    D   51
## 17 lote2      gtD    A   44
## 18 lote3      gtD    E   47
## 19 lote4      gtD    C   50
## 20 lote5      gtD    B   54
## 21 lote1      gtE    E   44
## 22 lote2      gtE    D   50
## 23 lote3      gtE    B   48
## 24 lote4      gtE    A   43
## 25 lote5      gtE    C   46
library(collapsibleTree)

collapsibleTreeSummary(mydata,
                       c('lote',
                         'prov',
                         'genotipo',
                         'biom'),
                       collapsed = FALSE)
library(ggplot2)

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

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

library(lattice)

bwplot(biom ~ genotipo | prov + lote,
       mydata)

Modelo \[ y_{ijk}= \mu + \tau_i + \beta_{j} + \delta_{k} + \epsilon_{ijk}\\ i=1\dots\]

tbl = matrix(mydata$prov, 5)
colnames(tbl) = unique(mydata$genotipo)
rownames(tbl) = unique(mydata$lote)
tbl
##       gtA gtB gtC gtD gtE
## lote1 "A" "C" "B" "D" "E"
## lote2 "E" "B" "C" "A" "D"
## lote3 "C" "A" "D" "E" "B"
## lote4 "B" "D" "E" "C" "A"
## lote5 "D" "E" "A" "B" "C"
mod <- lm(biom ~ lote + genotipo + prov,
         mydata)
anova(mod)
## Analysis of Variance Table
## 
## Response: biom
##           Df Sum Sq Mean Sq F value   Pr(>F)    
## lote       4  17.76   4.440  0.7967 0.549839    
## genotipo   4 109.36  27.340  4.9055 0.014105 *  
## prov       4 286.16  71.540 12.8361 0.000271 ***
## Residuals 12  66.88   5.573                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

\[H0 : \mu_{B_{g_1}} = \mu_{B_{g_2}} = \mu_{B_{g_3}} = \mu_{B_{g_4}} = \mu_{B_{g_5}} \]

bwplot(biom ~genotipo | prov,
       mydata)

library(ggplot2)
ggplot(mydata)+
  aes(genotipo,
      biom,
      fill=prov)+
  geom_col(
    position = 'dodge')

res_mod = mod$residuals

#1.Normalidad de residuales
shapiro.test(res_mod) #SE cumple el supuesto
## 
##  Shapiro-Wilk normality test
## 
## data:  res_mod
## W = 0.97691, p-value = 0.8178
#2. Igualdad de varainzas (se cumple supuesto, variables iguales)
bartlett.test(res_mod,
              genotipo)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  res_mod and genotipo
## Bartlett's K-squared = 5.9223, df = 4, p-value = 0.205
library(TukeyC)

tt = TukeyC(mod, 'genotipo')
plot(tt, lwd=2, cex=2)