set.seed(123)
#Respuesta
diam_geom = c(
  rnorm(4, 1.8, 0.1),
  rnorm(4, 2.0, 0.12),
  rnorm(4, 1.9, 0.09)
)

#Factor
gen = gl(3, 4, 12, paste0('g_', 1:3))

#Bloqueo
Procedencia = gl(4, 1, 12, paste0('l_', 1:4))

data = data.frame(gen, Procedencia, diam_geom)
head(data)
##   gen Procedencia diam_geom
## 1 g_1         l_1  1.743952
## 2 g_1         l_2  1.776982
## 3 g_1         l_3  1.955871
## 4 g_1         l_4  1.807051
## 5 g_2         l_1  2.015515
## 6 g_2         l_2  2.205808
library(collapsibleTree)
## Warning: package 'collapsibleTree' was built under R version 4.2.3
collapsibleTreeSummary(data,
                       c('Procedencia', 
                         'gen',
                         'diam_geom'),
                       collapsed = FALSE)

#Análisis descriptivo

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
ggplot(data)+
  aes(gen, diam_geom)+
  geom_point(size=7,
             color='yellow')+
  facet_wrap(~Procedencia)+
  theme_dark()

#Análisis inferencial

\[H_0: \mu_{g_1}=\mu_{g_2}=\mu_{g_3}\]

mod=aov(diam_geom ~ Procedencia + gen, data)
summary(mod)
##             Df  Sum Sq Mean Sq F value Pr(>F)  
## Procedencia  3 0.04373 0.01458   1.334 0.3483  
## gen          2 0.08908 0.04454   4.078 0.0762 .
## Residuals    6 0.06554 0.01092                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#No revisar P-value de los bloques

*Advertencias no interoretar el p-valor respecto a los bloques, unicamente se interpretan los correspondientes a los factores En este caso p-value de los genotipo > 5% (7.62%) se rechaza la hipotesis nula, por lo tanto podemos asumir estadisticamente que los genotipos fueron iguales. Eficiencia de bloqueo corresponde a la pregunta ¿valio la pena el bloqueo? (tener en cuenta la procedencia) H= 11.334 (F-value de los bloques), cuando ese valor H31 sugiere que si valio la pena bloquear

mod = aov(diam_geom ~ gen, data)
summary(mod)
##             Df  Sum Sq Mean Sq F value Pr(>F)  
## gen          2 0.08908 0.04454   3.669 0.0684 .
## Residuals    9 0.10927 0.01214                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#1. Extraer residuales del modelo con bloques
res_mod = mod$residuals

#2. Prueba de normalidad 
shapiro.test(res_mod)
## 
##  Shapiro-Wilk normality test
## 
## data:  res_mod
## W = 0.96413, p-value = 0.8407
#3. Prueba de homoceasticidad (varianzas iguales)
bartlett.test(res_mod, data$gen)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  res_mod and data$gen
## Bartlett's K-squared = 1.1617, df = 2, p-value = 0.5594

En ambos casos los p-value de las pruebas fueron >5% por lo cuál se cumplen los supuestos.

plot(data$diam_geom,
     res_mod,
     pch=16)

#Conclusión - Valió la pena bloquear -Estadísticamente no difieren los genotipos -Se cumplen los supuestos de ANOVA #SIEMPRE rechazar H0 cuando P-value es menor a 0.05.

#3. Diseño factorial simple en bloques generalizados al azar

set.seed(123)
#Respuesta
diam_geom = c(
  rnorm(20, 1.8, 0.1),
  rnorm(20, 2.0, 0.12),
  rnorm(20, 1.9, 0.09)
)

#Factor
gen = gl(3, 20, 60, paste0('g_', 1:3))

#Bloqueo
Procedencia = gl(4, 5, 60, paste0('l_', 1:4))

data = data.frame(gen, Procedencia, diam_geom)
head(data)
##   gen Procedencia diam_geom
## 1 g_1         l_1  1.743952
## 2 g_1         l_1  1.776982
## 3 g_1         l_1  1.955871
## 4 g_1         l_1  1.807051
## 5 g_1         l_1  1.812929
## 6 g_1         l_2  1.971506
library(collapsibleTree)
collapsibleTreeSummary(data,
                       c('Procedencia', 
                         'gen',
                         'diam_geom'),
                       collapsed = FALSE)
library(lattice)

bwplot(diam_geom ~ gen | Procedencia, 
       data)

mod3 = aov(diam_geom ~ Procedencia * gen,
           data)

summary(mod3)
##                 Df Sum Sq Mean Sq F value   Pr(>F)    
## Procedencia      3 0.0310 0.01034   1.135    0.344    
## gen              2 0.3233 0.16164  17.732 1.71e-06 ***
## Procedencia:gen  6 0.0407 0.00678   0.744    0.617    
## Residuals       48 0.4376 0.00912                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1