#razon de bloqueo, procedencia de la semilla #12 diferentes ubicaciones de donde viene la semilla, un solo dato Variable Respuestaa: diametro geometrico “como calcular los diametros geometricos”

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
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
## 7  g_2         l_3  2.055310
## 8  g_2         l_4  1.848193
## 9  g_3         l_1  1.838183
## 10 g_3         l_2  1.859890
## 11 g_3         l_3  2.010167
## 12 g_3         l_4  1.932383
library(collapsibleTree)
## Warning: package 'collapsibleTree' was built under R version 4.2.2
collapsibleTreeSummary(data,
                       c('procedencia',
                         'gen',
                         'diam_geom'), collapsed = F)

#analisis descriptivo

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

#analisis 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

#eficienca de bloqueo

#¿Vale la pena bloquear? El F (H), de los bloques vale la pena de vex en cuando, cuando es mayor a 1, si es menor a 1 no vale la pena, DEPENDEEEEEE, hay otras razon para bloquear

#entonces quitemos el bloqueo
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
#esto es -engañoso- porque nos dice que no vale la pena, el p_valor "sirve" 

Revision de supuestos #1. extraer residuales del modelo CON bloques

res_mod1 = mod$residuals


#2: prueba de normalidad de shapiro
shapiro.test(res_mod1)        
## 
##  Shapiro-Wilk normality test
## 
## data:  res_mod1
## W = 0.96413, p-value = 0.8407
#tener cuidado con la totalidad de datos

#3: Prueba de supuestos varianzas iguales (hocedasticilidad)
bartlett.test(res_mod1, data$gen)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  res_mod1 and data$gen
## Bartlett's K-squared = 1.1617, df = 2, p-value = 0.5594
#Ambos superan el 0.05% en el pValor
  
  
  plot(data$diam_geom,
       res_mod1,
       pch=16)

  #Los residuales con patron pueden causar problemas para el analisis de varianza (engañoso)

conclusion #Vale la pena el bloqueo #estadisticamente no difieren los gentipos #se cumplen los supuestos del anova

#DISEÑO DE EXPERIMENTOS FACTORIAL SIMPLE CON BLOQUES GENERALIZADOS COMPLETAMENTE 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(lattice)
## Warning: package 'lattice' was built under R version 4.2.3
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