Bienvenidos

Escriba aquí los objetivos de la clase.

datos <- data.frame(
  lote     = factor(rep(1:5, each = 5)),
  operador = factor(rep(1:5, times = 5)),
  formula  = factor(c("A","B","C","D","E",
                      "B","C","D","E","A",
                      "C","D","E","A","B",
                      "D","E","A","B","C",
                      "E","A","B","C","D")),
  ensamble = factor(c("alfa","gamma","epsilon","beta","delta",
                      "beta","delta","alfa","gamma","epsilon",
                      "gamma","epsilon","beta","delta","alfa",
                      "delta","alfa","gamma","epsilon","beta",
                      "epsilon","beta","delta","alfa","gamma"),
                    levels = c("alfa","beta","gamma","delta","epsilon")),
  y = c(24,20,19,24,24, 17,24,30,27,36, 18,38,26,27,21,
        26,31,26,23,22, 22,30,20,29,31)
)
sample(c("alfa","beta","delta","gamma","epsilon"))
## [1] "epsilon" "delta"   "alfa"    "beta"    "gamma"
datos
##    lote operador formula ensamble  y
## 1     1        1       A     alfa 24
## 2     1        2       B    gamma 20
## 3     1        3       C  epsilon 19
## 4     1        4       D     beta 24
## 5     1        5       E    delta 24
## 6     2        1       B     beta 17
## 7     2        2       C    delta 24
## 8     2        3       D     alfa 30
## 9     2        4       E    gamma 27
## 10    2        5       A  epsilon 36
## 11    3        1       C    gamma 18
## 12    3        2       D  epsilon 38
## 13    3        3       E     beta 26
## 14    3        4       A    delta 27
## 15    3        5       B     alfa 21
## 16    4        1       D    delta 26
## 17    4        2       E     alfa 31
## 18    4        3       A    gamma 26
## 19    4        4       B  epsilon 23
## 20    4        5       C     beta 22
## 21    5        1       E  epsilon 22
## 22    5        2       A     beta 30
## 23    5        3       B    delta 20
## 24    5        4       C     alfa 29
## 25    5        5       D    gamma 31
sample(1:25)
##  [1]  4 24 21 14 19  2  7 18 10 25 11  8 16 12 17 13 23  6 15  1  3 22  9 20  5
mod_gl <- aov(y ~ lote + operador + formula + ensamble, data = datos)
summary(mod_gl)
##             Df Sum Sq Mean Sq F value  Pr(>F)   
## lote         4     68   17.00   2.061 0.17831   
## operador     4    150   37.50   4.545 0.03293 * 
## formula      4    330   82.50  10.000 0.00334 **
## ensamble     4     62   15.50   1.879 0.20764   
## Residuals    8     66    8.25                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
h=TukeyHSD(mod_gl, "formula")
h
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = y ~ lote + operador + formula + ensamble, data = datos)
## 
## $formula
##     diff        lwr         upr     p adj
## B-A -8.4 -14.675865 -2.12413503 0.0107829
## C-A -6.2 -12.475865  0.07586497 0.0529245
## D-A  1.2  -5.075865  7.47586497 0.9596565
## E-A -2.6  -8.875865  3.67586497 0.6270350
## C-B  2.2  -4.075865  8.47586497 0.7462701
## D-B  9.6   3.324135 15.87586497 0.0048412
## E-B  5.8  -0.475865 12.07586497 0.0714956
## D-C  7.4   1.124135 13.67586497 0.0218416
## E-C  3.6  -2.675865  9.87586497 0.3525524
## E-D -3.8 -10.075865  2.47586497 0.3087315
plot(h)

shapiro.test(residuals(mod_gl))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(mod_gl)
## W = 0.97967, p-value = 0.8786

GENERACION DE CUADRADOS LATINOS

par(mfrow=c(2,2))
plot(mod_gl)

set.seed(2026)
p <- 5
base <- outer(0:(p-1), 0:(p-1), function(i, j) (i + j) %% p)  # cuadrado cíclico
cl <- base[sample(p), sample(p)]                              # permutar filas y columnas
cl[] <- LETTERS[1:p][sample(p)][cl + 1]                         # asignar tratamientos al azar
cl
##      [,1] [,2] [,3] [,4] [,5]
## [1,] "E"  "C"  "D"  "A"  "B" 
## [2,] "C"  "A"  "B"  "D"  "E" 
## [3,] "B"  "E"  "A"  "C"  "D" 
## [4,] "A"  "D"  "E"  "B"  "C" 
## [5,] "D"  "B"  "C"  "E"  "A"
sample(1:5,2)
## [1] 1 4

CUADRADO GRECOLATINO

g  <- outer(0:(p-1), 0:(p-1), function(i, j) (i + 2*j) %% p)
gl <- matrix(paste0(LETTERS[base + 1], c("α","β","γ","δ","ε")[g + 1]), p)
gl
##      [,1] [,2] [,3] [,4] [,5]
## [1,] "Aα" "Bγ" "Cε" "Dβ" "Eδ"
## [2,] "Bβ" "Cδ" "Dα" "Eγ" "Aε"
## [3,] "Cγ" "Dε" "Eβ" "Aδ" "Bα"
## [4,] "Dδ" "Eα" "Aγ" "Bε" "Cβ"
## [5,] "Eε" "Aβ" "Bδ" "Cα" "Dγ"
length(unique(as.vector(gl))) == p^2   # TRUE: los 25 pares son distintos
## [1] TRUE