El diseño de Varios Cuadrados Latinos (o Cuadrados Latinos Repetidos) es el paso natural cuando el experimento original es demasiado pequeño.

Para tus estudiantes de Ingeniería Agrícola y Agroindustrial, este escenario es muy común: a veces solo tienen 3 o 4 tratamientos para evaluar (por ejemplo, 3 formulaciones de un fertilizante o 3 temperaturas de secado). Un Cuadrado Latino de \(3 \times 3\) solo deja 2 grados de libertad para el error, lo cual es inaceptable estadísticamente porque hace que la prueba pierda poder. La solución en campo o laboratorio es montar varios cuadrados latinos idénticos simultáneamente.

Aquí tienes la estructura para tu cuarto cuaderno.


📘 Cuaderno 4: Varios Cuadrados Latinos (Repetidos)

a) Introducción Teórica a los Cuadrados Latinos Repetidos

Cuando el número de tratamientos (\(t\)) es pequeño, el error experimental en un solo Diseño en Cuadrado Latino (DCL) tiene muy pocos grados de libertad. Para solucionar esto y aumentar la precisión (el poder de la prueba), se repite el experimento básico (\(s\) veces), creando varios cuadrados.

Existen diferentes formas de repetir los cuadrados (pueden compartir filas, columnas, o ser totalmente independientes). En la configuración más común (cuadrados independientes), las filas y las columnas están “anidadas” dentro de cada cuadrado, lo que significa que la Fila 1 del Cuadrado 1 no tiene nada que ver física ni ambientalmente con la Fila 1 del Cuadrado 2.

El Modelo Estadístico Lineal (Cuadrados Independientes): \[y_{ijkl} = \mu + S_l + \rho_{j(l)} + \gamma_{k(l)} + \tau_i + \epsilon_{ijkl}\]

Donde: * \(y_{ijkl}\): Respuesta del \(i\)-ésimo tratamiento, en la \(j\)-ésima fila, \(k\)-ésima columna, dentro del \(l\)-ésimo cuadrado. * \(\mu\): Media general. * \(S_l\): Efecto del \(l\)-ésimo cuadrado. * \(\rho_{j(l)}\): Efecto de la \(j\)-ésima fila anidada en el \(l\)-ésimo cuadrado. * \(\gamma_{k(l)}\): Efecto de la \(k\)-ésima columna anidada en el \(l\)-ésimo cuadrado. * \(\tau_i\): Efecto del \(i\)-ésimo tratamiento. * \(\epsilon_{ijkl}\): Error experimental.

Tabla ANOVA:

Fuente de Variación Grados de Libertad (GL) Suma de Cuadrados (SC) Cuadrado Medio (CM) F calculado
Cuadrados (\(S\)) \(s - 1\) \(SCS\) \(CMS = \frac{SCS}{s-1}\) \(\frac{CMS}{CME}\)
Tratamientos (\(Tr\)) \(t - 1\) \(SCTr\) \(CMTr = \frac{SCTr}{t-1}\) \(\frac{CMTr}{CME}\)
Filas(Cuadrados) \(s(t - 1)\) \(SCFilas\) \(CMF = \frac{SCFilas}{s(t-1)}\) \(\frac{CMF}{CME}\)
Columnas(Cuadrados) \(s(t - 1)\) \(SCCol\) \(CMC = \frac{SCCol}{s(t-1)}\) \(\frac{CMC}{CME}\)
Error \((s \times t^2) - 1 - GL_{otros}\) \(SCE\) \(CME = \frac{SCE}{GL_E}\)
Total \(s \times t^2 - 1\) \(SCT\)

(Nota: \(t\) = número de tratamientos, \(s\) = número de cuadrados).


b) Miniguía: Solución Manual (Papel y Lápiz)

Para realizar el cálculo a mano, la lógica sigue siendo sumar los componentes de varianza, pero respetando la estructura anidada:

  1. Totales y Factor de Corrección (FC): Calcula el gran total (\(Y_{....}\)) y el FC: \[FC = \frac{Y_{....}^2}{st^2}\]
  2. SCT (Total): Suma de todos los datos al cuadrado menos FC.
  3. SCS (Cuadrados): Suma los totales de cada cuadrado al cuadrado, divide entre \(t^2\), y resta el FC.
  4. SCTr (Tratamientos): Suma los totales de cada tratamiento a través de todos los cuadrados, elévalos al cuadrado, divide por \(s \times t\), y resta el FC.
  5. SCFilas(Cuadrados): Calcula la SC de las filas dentro de cada cuadrado individualmente (como si fueran DCL separados) y suma esos valores.
  6. SCCol(Cuadrados): Haz lo mismo para las columnas dentro de cada cuadrado.
  7. SCE (Error): Por diferencia: \(SCT - SCS - SCTr - SCFilas - SCCol\).

c) Exploración de Datos (EDA) en R

Para easyanova, el conjunto de datos de Varios Cuadrados Latinos (data4) tiene cinco columnas: Tratamiento, Cuadrado, Fila, Columna y Respuesta.

library(easyanova)

# Cargar el dataset de ejemplo para Varios Cuadrados Latinos
data(data4)

# Inspeccionar los datos: Tratamiento, Cuadrado, Fila, Columna, Respuesta
head(data4)

# EDA: Visualizar la consistencia de los tratamientos a través de los cuadrados
# Usaremos lattice para crear gráficos condicionales (paneles por cuadrado)
# install.packages("lattice") # Descomentar si no está instalado
library(lattice)

bwplot(data4[,5] ~ data4[,1] | data4[,2], 
       data = data4,
       main = "Respuesta por Tratamiento en cada Cuadrado",
       xlab = "Tratamiento", 
       ylab = "Respuesta",
       layout = c(2, 1)) # Ajusta el layout dependiendo de cuántos cuadrados sean

Propósito pedagógico: Este gráfico de paneles es fundamental. Pregunta a los estudiantes: “¿El tratamiento que parece ser el mejor en el Cuadrado 1 (ej. Finca 1) también tiene el mejor desempeño en el Cuadrado 2 (ej. Finca 2)? Si el comportamiento es distinto, podría haber una interacción fuerte entre el tratamiento y el lugar.”


d) Plantilla de Código R: Solución con easyanova

La ejecución requiere que especifiques design = 4. easyanova automáticamente asume el anidamiento de filas y columnas dentro de los cuadrados.

# Ejecutar Varios Cuadrados Latinos (design = 4)
# Orden de columnas: 1=Tratamiento, 2=Cuadrado, 3=Fila, 4=Columna, 5=Respuesta
resultado_varios_dcl <- ea1(data4, design = 4)

# Imprimir la tabla ANOVA y las comparaciones múltiples
print(resultado_varios_dcl)

e) Prompts Sugeridos para tus Estudiantes

Motiva a los estudiantes a debatir el resultado conmigo usando estas preguntas:

  1. “Hola. Analizando la tabla ANOVA generada para estos Cuadrados Latinos Repetidos, veo que hay una fuente de variación para ‘Cuadrados’. En términos de ingeniería agrícola, ¿qué significa que este factor sea estadísticamente significativo? ¿Tomamos una buena decisión al montar el experimento en diferentes parcelas o invernaderos?”
  2. “Observo los grados de libertad del Error en el output de easyanova. ¿Cuántos grados de libertad habríamos tenido si solo hubiéramos hecho un cuadrado de 3x3, y cuántos ganamos al repetir el diseño? ¿Por qué es crucial esto para confiar en la prueba de medias?”
  3. “Según la prueba de Scott-Knott o Tukey del output, ¿cuál es la mejor recomendación agroindustrial generalizando a través de todos los cuadrados evaluados?”

f) Plantillas Alternativas: Python y Julia

En Python (Usando statsmodels): Para el modelo anidado en Python, usamos la sintaxis de Patsy Fila:Cuadrado para indicar “Fila anidada en Cuadrado”.

import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols

# Dataset simulado para 2 cuadrados de 3x3
data = {
    'Tratamiento': ['A','B','C','B','C','A','C','A','B',  'B','C','A','C','A','B','A','B','C'],
    'Cuadrado':    ['S1']*9 + ['S2']*9,
    'Fila':        ['F1','F1','F1','F2','F2','F2','F3','F3','F3']*2,
    'Columna':     ['C1','C2','C3','C1','C2','C3','C1','C2','C3']*2,
    'Respuesta':   [15, 20, 18, 22, 19, 14, 17, 16, 21,   16, 22, 17, 20, 15, 18, 19, 21, 14]
}
df = pd.DataFrame(data)

# Modelo con filas y columnas anidadas dentro de los cuadrados
formula = 'Respuesta ~ C(Cuadrado) + C(Cuadrado):C(Fila) + C(Cuadrado):C(Columna) + C(Tratamiento)'
modelo = ols(formula, data=df).fit()
tabla_anova = sm.stats.anova_lm(modelo, typ=2)

print("\n--- Tabla ANOVA (Varios DCL) ---")
print(tabla_anova)

En Julia (Usando DataFrames y GLM):

using DataFrames, GLM

# Creación del DataFrame para 2 cuadrados de 3x3
df = DataFrame(
    Tratamiento = ["A","B","C","B","C","A","C","A","B",  "B","C","A","C","A","B","A","B","C"],
    Cuadrado = vcat(fill("S1", 9), fill("S2", 9)),
    Fila = repeat(["F1","F1","F1","F2","F2","F2","F3","F3","F3"], 2),
    Columna = repeat(["C1","C2","C3","C1","C2","C3","C1","C2","C3"], 2),
    Respuesta = [15, 20, 18, 22, 19, 14, 17, 16, 21, 16, 22, 17, 20, 15, 18, 19, 21, 14]
)

# Convertir a variables categóricas
df.Tratamiento = categorical(df.Tratamiento)
df.Cuadrado = categorical(df.Cuadrado)
df.Fila = categorical(df.Fila)
df.Columna = categorical(df.Columna)

# En GLM de Julia, el anidamiento se especifica con la interacción Cuadrado & Fila
modelo = lm(@formula(Respuesta ~ Cuadrado + Cuadrado&Fila + Cuadrado&Columna + Tratamiento), df)

println("--- Resumen del Modelo Varios DCL ---")
println(modelo)