Comprender qué son los cuadrados de Youden y su relación con los cuadros latinos.
Un Cuadrado de Youden es un diseño en cuadrado latino incompleto, donde el número de niveles de uno de los factores de bloqueo es menor que el número de tratamientos. Estos diseños fueron estudiados por W.J. Youden y se conocen como cuadrados de Youden.
En el diseño en cuadrado latino se requiere que los tres factores (filas, columnas y letras latinas) tengan el mismo número de niveles, es decir que haya el mismo número de filas, de columnas y de letras latinas. Sin embargo, puede suceder que el número de niveles disponibles de uno de los factores de control sea menor que el número de tratamientos, en este caso estaríamos ante un diseño en cuadrado latino incompleto.
Un Cuadrado de Youden puede considerarse como un cuadrado latino al que le falta al menos una columna. Sin embargo, un cuadrado latino no se convierte en un Cuadrado de Youden eliminando arbitrariamente más de una columna.
Consideremos un experimento sobre el rendimiento de la semilla de trigo, en el que se está interesado en estudiar 4 tipos de semillas y se desea eliminar estadísticamente el efecto del tipo de insecticida y abono. Pero supongamos que solo se dispone de 3 tipos de abono. Para realizar este experimento se decidió utilizar un Cuadrado de Youden con:
Este diseño se convierte en un cuadrado latino si se le añade la columna: D, A, B, C. Cada tratamiento aparece exactamente una vez en cada columna.
Un Cuadrado de Youden se puede considerar como un diseño en bloques incompletos balanceado y simétrico en el que las filas corresponden a los bloques. En efecto, si asignamos:
Entonces, un cuadrado de Youden es un diseño en bloques incompletos balanceado y simétrico en el que:
Formular el modelo lineal del diseño de Youden.
donde:
| Parámetro | Descripción | Valor en el Ejemplo |
|---|---|---|
| $I$ | Número de tratamientos (letras latinas) | 4 |
| $J$ | Número de bloques (filas), con $I = J$ | 4 |
| $K$ | Número de columnas (posiciones), con $K < I$ | 3 |
| $R$ | Número de réplicas por tratamiento ($R = K$) | 3 |
| $N$ | Número total de observaciones ($N = IR = JK$) | 12 |
| $\lambda$ | Parámetro de equilibrio: $\lambda = R\dfrac{K-1}{I-1}$ | $3 \times \dfrac{2}{3} = 2$ |
El parámetro $\lambda$ indica cuántas veces aparece cada par de tratamientos juntos en el mismo bloque. En el ejemplo, $\lambda = 2$ significa que cada par de tratamientos coincide en exactamente 2 bloques.
El análisis del modelo se realiza de la misma manera que en el diseño en bloques incompletos balanceados, añadiéndole el cálculo de la suma de cuadrados correspondiente a la posición (columna). Para ello se utilizan totales ajustados:
donde:
La expresión $\frac{1}{K}\sum_{j=1}^{J} n_{ij} \, y_{.j.}$ es el valor medio de los totales de los bloques que contienen al tratamiento $i$-ésimo.
Calcular las sumas de cuadrados ajustadas para el diseño.
En este diseño la variabilidad total $SCT$ se descompone en:
La suma de cuadrados ajustada de los tratamientos, cuya expresión coincide con la correspondiente a los diseños en bloques incompletos balanceados:
siendo $\lambda = R\dfrac{K-1}{I-1}$K− y $T_i$ el total ajustado del $i$-ésimo tratamiento.
donde $y_{..k}$ se obtiene sumando las observaciones correspondientes a la columna $k$-ésima.
donde $y_{(.)jk}$ indica la observación correspondiente a la fila $j$ y la columna $k$, independientemente de la letra que corresponda.
| Fuente de Variación | Grados de Libertad |
|---|---|
| $SCT$ | $N - 1$ |
| $SCTr^{*}$ | $I - 1$ |
| $SCBl$ | $J - 1$ |
| $SCC$ | $K - 1$ |
| $SCR$ | $N - 2I - K + 2$ |
La suma de todos los grados de libertad debe ser igual a $N - 1$:
$(I-1) + (J-1) + (K-1) + (N-2I-K+2) = N - 1$
Construir la tabla ANOVA y realizar pruebas de hipótesis.
La tabla ANOVA para contrastar la igualdad de los efectos de los tratamientos se presenta a continuación:
| Fuente de Variación | Suma de Cuadrados | GL | Cuadrados Medios | $F_{\text{exp}}$ |
|---|---|---|---|---|
| Trat. ajustados | $\dfrac{K\displaystyle\sum_{i=1}^{I}T_i^2}{\lambda I}$ | $I - 1$ | $\dfrac{SCTr^{*}}{I-1}$ | $\dfrac{MCTr^{*}}{MCR}$ |
| Bloq. no ajust. | $\displaystyle\sum_{j=1}^{J}\dfrac{y_{.j.}^2}{K} - \dfrac{y_{\cdots}^2}{N}$ | $J - 1$ | ||
| Columnas | $\displaystyle\sum_{k=1}^{K}\dfrac{y_{..k}^2}{J} - \dfrac{y_{\cdots}^2}{N}$ | $K - 1$ | ||
| Residual | $SCT - SCTr^{*} - SCBl - SCC$ | $N - 2I - K + 2$ | $\dfrac{SCR}{N-2I-K+2}$ | |
| TOTAL | $\displaystyle\sum_{jk} y_{(.)jk}^2 - \dfrac{y_{\cdots}^2}{N}$ | $N - 1$ |
Analizar el efecto de bloques con sumas ajustadas.
Al igual que en el diseño en bloques incompletos balanceados, puede resultar de interés contrastar también la igualdad del efecto de los bloques. Para ello la $SCT$ se debe descomponer de la siguiente forma:
donde:
siendo:
| Fuente de Variación | Suma de Cuadrados | GL | Cuadrados Medios | $F_{\text{exp}}$ |
|---|---|---|---|---|
| Trat. no ajust. | $\displaystyle\sum_{i=1}^{I}\dfrac{y_{i..}^2}{K} - \dfrac{y_{\cdots}^2}{N}$ | $I - 1$ | ||
| Bloq. ajustados | $\dfrac{R\displaystyle\sum_{j=1}^{J}B_j^2}{\lambda J}$ | $J - 1$ | $\dfrac{SCBl^{*}}{J-1}$ | $\dfrac{MCBl^{*}}{MCR}$ |
| Columnas | $\displaystyle\sum_{k=1}^{K}\dfrac{y_{..k}^2}{J} - \dfrac{y_{\cdots}^2}{N}$ | $K - 1$ | ||
| Residual | $SCT - SCTr - SCBl^{*} - SCC$ | $N - 2I - K + 2$ | $\dfrac{SCR}{N-2I-K+2}$ | |
| TOTAL | $\displaystyle\sum_{jk} y_{(.)jk}^2 - \dfrac{y_{\cdots}^2}{N}$ | $N - 1$ |
Aplicar el diseño de Youden con cálculos paso a paso.
Se desea estudiar el rendimiento de 4 tipos de semillas de trigo. Se utiliza un diseño en Cuadrado de Youden para controlar el efecto del tipo de insecticida y del tipo de abono. Se dispone de 4 insecticidas (bloques) y 3 abonos (columnas).
| Bloque | i₁ | i₂ | i₃ | i₄ |
|---|---|---|---|---|
| Total $y_{.j.}$ | 64 | 50 | 62 | 53 |
| $y_{.j.}^2$ | 4096 | 2500 | 3844 | 2809 |
| Columna | a₁ | a₂ | a₃ | Total |
|---|---|---|---|---|
| Total $y_{..k}$ | 81 | 77 | 71 | 229 |
| $y_{..k}^2$ | 6561 | 5929 | 5041 | 17531 |
| Tratamiento | A | B | C | D | Total |
|---|---|---|---|---|---|
| Observaciones | 23, 18, 12 | 25, 18, 20 | 16, 15, 19 | 17, 25, 21 | |
| $y_{i..}$ | 53 | 63 | 50 | 63 | 229 |
| $y_{i..}^2$ | 2809 | 3969 | 2500 | 3969 | 13247 |
import numpy as np
from scipy import stats
# ══════════════════════════════════════════════════
# Datos del Cuadrado de Youden (Ejemplo 5-3)
# ══════════════════════════════════════════════════
# Filas = bloques (insecticidas), Columnas = posiciones (abonos)
y = np.array([
[23, 25, 16], # i1: A(23) B(25) C(16)
[18, 15, 17], # i2: B(18) C(15) D(17)
[19, 25, 18], # i3: C(19) D(25) A(18)
[21, 12, 20] # i4: D(21) A(12) B(20)
])
I, J, K, R = 4, 4, 3, 3
N = J * K # = 12
lam = R * (K - 1) / (I - 1) # λ = 3 × 2/3 = 2
# Totales de bloques (filas) y columnas
y_bloque = y.sum(axis=1) # y_.j. = [64, 50, 62, 53]
y_col = y.sum(axis=0) # y_..k = [81, 77, 71]
y_total = y.sum() # y_... = 229
# Totales por tratamiento
y_treat = np.array([
23 + 18 + 12, # A: bloques i1, i3, i4
25 + 18 + 20, # B: bloques i1, i2, i4
16 + 15 + 19, # C: bloques i1, i2, i3
17 + 25 + 21 # D: bloques i2, i3, i4
])
# y_treat = [53, 63, 50, 63]
print("=" * 55)
print("PARÁMETROS DEL DISEÑO")
print("=" * 55)
print(f"I = J = {I}, K = R = {K}, N = {N}")
print(f"λ = R(K-1)/(I-1) = {R}×{K-1}/{I-1} = {lam:.0f}")
print(f"\nTotales de bloque y_.j.: {y_bloque}")
print(f"Totales de columna y_..k: {y_col}")
print(f"Totales de tratam. y_i..: {y_treat}")
print(f"Total general y_...: {y_total}")
======================================================= PARÁMETROS DEL DISEÑO ======================================================= I = J = 4, K = R = 3, N = 12 λ = R(K-1)/(I-1) = 3×2/3 = 2 Totales de bloque y_.j.: [64 50 62 53] Totales de columna y_..k: [81 77 71] Totales de tratam. y_i..: [53 63 50 63] Total general y_...: 229
# ══════════════════════════════════════════════════
# SUMAS DE CUADRADOS
# ══════════════════════════════════════════════════
SCT = (y ** 2).sum() - y_total ** 2 / N
print(f"SCT = Σy² - y²/N = {(y**2).sum()} - {y_total**2}/{N} = {SCT:.2f}")
SCBl = (y_bloque ** 2).sum() / K - y_total ** 2 / N
print(f"SCBl = Σy.j.²/K - y²/N = {(y_bloque**2).sum()}/{K} - {y_total**2/N:.2f} = {SCBl:.2f}")
SCC = (y_col ** 2).sum() / J - y_total ** 2 / N
print(f"SCC = Σy..k²/J - y²/N = {(y_col**2).sum()}/{J} - {y_total**2/N:.2f} = {SCC:.2f}")
# ── Totales ajustados de tratamientos ──
# Matriz de incidencia n_ij: tratamiento i en bloque j
n_ij = np.array([
[1, 0, 1, 1], # A en bloques i1, i3, i4
[1, 1, 0, 1], # B en bloques i1, i2, i4
[1, 1, 1, 0], # C en bloques i1, i2, i3
[0, 1, 1, 1] # D en bloques i2, i3, i4
])
T = y_treat - (n_ij @ y_bloque) / K
print(f"\nTotales ajustados de tratamientos (Ti):")
for idx, t in enumerate(T):
letra = "ABCD"[idx]
bloques_in = [f"y.{j+1}." for j in range(J) if n_ij[idx, j] == 1]
print(f" T_{letra} = {y_treat[idx]} - (1/{K})({' + '.join(str(y_bloque[j]) for j in range(J) if n_ij[idx,j]==1)}) = {t:.2f}")
sum_T2 = (T ** 2).sum()
print(f"\nΣTi² = {sum_T2:.2f}")
SCTr_adj = K * sum_T2 / (lam * I)
print(f"SCTr* = K·ΣTi²/(λI) = {K}×{sum_T2:.2f}/({lam:.0f}×{I}) = {SCTr_adj:.2f}")
SCR = SCT - SCTr_adj - SCBl - SCC
print(f"\nSCR = SCT - SCTr* - SCBl - SCC")
print(f" = {SCT:.2f} - {SCTr_adj:.2f} - {SCBl:.2f} - {SCC:.2f} = {SCR:.2f}")
print(f"\n=== VERIFICACIÓN ===")
print(f"{SCTr_adj:.2f} + {SCBl:.2f} + {SCC:.2f} + {SCR:.2f} = {SCTr_adj+SCBl+SCC+SCR:.2f}")
SCT = Σy² - y²/N = 4543 - 52441/12 = 172.92 SCBl = Σy.j.²/K - y²/N = 13249/3 - 4370.08 = 46.25 SCC = Σy..k²/J - y²/N = 17531/4 - 4370.08 = 12.67 Totales ajustados de tratamientos (Ti): T_A = 53 - (1/3)(64 + 62 + 53) = -6.67 T_B = 63 - (1/3)(64 + 50 + 53) = 7.33 T_C = 50 - (1/3)(64 + 50 + 62) = -8.67 T_D = 63 - (1/3)(50 + 62 + 53) = 8.00 ΣTi² = 237.33 SCTr* = K·ΣTi²/(λI) = 3×237.33/(2×4) = 89.00 SCR = SCT - SCTr* - SCBl - SCC = 172.92 - 89.00 - 46.25 - 12.67 = 25.00 === VERIFICACIÓN === 89.00 + 46.25 + 12.67 + 25.00 = 172.92
# ══════════════════════════════════════════════════
# TABLA ANOVA - TRATAMIENTOS AJUSTADOS
# ══════════════════════════════════════════════════
gl_Tr = I - 1 # 3
gl_Bl = J - 1 # 3
gl_Col = K - 1 # 2
gl_R = N - 2*I - K + 2 # 3
gl_T = N - 1 # 11
CM_Tr = SCTr_adj / gl_Tr
CM_R = SCR / gl_R
F_exp = CM_Tr / CM_R
p_val = 1 - stats.f.cdf(F_exp, gl_Tr, gl_R)
print("=" * 70)
print("TABLA ANOVA - TRATAMIENTOS CORREGIDOS (Tabla 5-20)")
print("=" * 70)
print(f"{'Fuente':<25} {'SC':>10} {'GL':>5} {'CM':>10} {'F':>8} {'p':>8}")
print("-" * 70)
print(f"{'Trat. corregidos':<25} {SCTr_adj:>10.2f} {gl_Tr:>5} {CM_Tr:>10.2f} {F_exp:>8.3f} {p_val:>8.4f}")
print(f"{'Bloques-no-corregidos':<25} {SCBl:>10.2f} {gl_Bl:>5}")
print(f"{'Columnas':<25} {SCC:>10.2f} {gl_Col:>5}")
print(f"{'Residual':<25} {SCR:>10.2f} {gl_R:>5} {CM_R:>10.2f}")
print("-" * 70)
print(f"{'TOTAL':<25} {SCT:>10.2f} {gl_T:>5}")
print("=" * 70)
alpha = 0.05
F_crit = stats.f.ppf(1 - alpha, gl_Tr, gl_R)
print(f"\n--- CONCLUSIÓN (α = {alpha}) ---")
print(f"F_crítico ({alpha}, {gl_Tr}, {gl_R}) = {F_crit:.2f}")
print(f"F_exp = {F_exp:.3f}, p = {p_val:.4f}")
print(f"Como F_exp = {F_exp:.2f} < F_crit = {F_crit:.2f} → NO se rechaza H0")
print("Los efectos de los tratamientos (semillas) NO son significativos.")
====================================================================== TABLA ANOVA - TRATAMIENTOS CORREGIDOS (Tabla 5-20) ====================================================================== Fuente SC GL CM F p ---------------------------------------------------------------------- Trat. corregidos 89.00 3 29.67 3.560 0.1595 Bloques-no-corregidos 46.25 3 Columnas 12.67 2 Residual 25.00 3 8.33 ---------------------------------------------------------------------- TOTAL 172.92 11 ====================================================================== --- CONCLUSIÓN (α = 0.05) --- F_crítico (0.05, 3, 3) = 9.28 F_exp = 3.560, p = 0.1595 Como F_exp = 3.56 < F_crit = 9.28 → NO se rechaza H0 Los efectos de los tratamientos (semillas) NO son significativos.
| Fuente de Variación | SC | GL | CM | $F_{\text{exp}}$ |
|---|---|---|---|---|
| Trat. corregidos | 89.00 | 3 | 29.67 | 3.560 |
| Bloques-no-corregidos | 46.25 | 3 | - | - |
| Columnas | 12.67 | 2 | - | - |
| Residual | 25.00 | 3 | 8.33 | - |
| TOTAL | 172.92 | 11 | - | - |
Si se quiere analizar también el efecto de los bloques, tendremos que calcular la suma de cuadrados de tratamientos (no ajustada) y la suma de cuadrados ajustada de los bloques:
# ══════════════════════════════════════════════════
# TABLA ANOVA - BLOQUES AJUSTADOS (Tabla 5-21)
# ══════════════════════════════════════════════════
# Suma de cuadrados de tratamientos (no ajustada)
SCTr = (y_treat ** 2).sum() / K - y_total ** 2 / N
print(f"SCTr = Σy_i..²/K - y²/N = {(y_treat**2).sum()}/{K} - {y_total**2/N:.2f} = {SCTr:.2f}")
# Totales ajustados de bloques
B = y_bloque - (n_ij.T @ y_treat) / R
print(f"\nTotales ajustados de bloques (Bj):")
for j in range(J):
treats_in = [y_treat[i] for i in range(I) if n_ij[i, j] == 1]
print(f" B_{j+1} = {y_bloque[j]} - (1/{R})({' + '.join(str(t) for t in treats_in)}) = {B[j]:.2f}")
sum_B2 = (B ** 2).sum()
print(f"\nΣBj² = {sum_B2:.2f}")
SCBl_adj = R * sum_B2 / (lam * J)
print(f"SCBl* = R·ΣBj²/(λJ) = {R}×{sum_B2:.2f}/({lam:.0f}×{J}) = {SCBl_adj:.2f}")
SCR_check = SCT - SCTr - SCBl_adj - SCC
print(f"\nSCR = SCT - SCTr - SCBl* - SCC")
print(f" = {SCT:.2f} - {SCTr:.2f} - {SCBl_adj:.2f} - {SCC:.2f} = {SCR_check:.2f}")
# ANOVA bloques ajustados
CM_Bl_adj = SCBl_adj / gl_Bl
F_exp_bl = CM_Bl_adj / CM_R
p_val_bl = 1 - stats.f.cdf(F_exp_bl, gl_Bl, gl_R)
print(f"\n{'='*70}")
print("TABLA ANOVA - BLOQUES CORREGIDOS (Tabla 5-21)")
print(f"{'='*70}")
print(f"{'Fuente':<25} {'SC':>10} {'GL':>5} {'CM':>10} {'F':>8} {'p':>8}")
print(f"{'-'*70}")
print(f"{'Trat-no-corregidos':<25} {SCTr:>10.2f} {gl_Tr:>5}")
print(f"{'Bloques corregidos':<25} {SCBl_adj:>10.2f} {gl_Bl:>5} {CM_Bl_adj:>10.2f} {F_exp_bl:>8.3f} {p_val_bl:>8.4f}")
print(f"{'Columnas':<25} {SCC:>10.2f} {gl_Col:>5}")
print(f"{'Residual':<25} {SCR_check:>10.2f} {gl_R:>5} {CM_R:>10.2f}")
print(f"{'-'*70}")
print(f"{'TOTAL':<25} {SCT:>10.2f} {gl_T:>5}")
print(f"{'='*70}")
print(f"\n--- CONCLUSIÓN BLOQUES (α = {alpha}) ---")
print(f"F_crítico ({alpha}, {gl_Bl}, {gl_R}) = {F_crit:.2f}")
print(f"F_exp = {F_exp_bl:.3f}, p = {p_val_bl:.4f}")
if p_val_bl < alpha:
print(f"Como F_exp > F_crit → SE RECHAZA H0 para bloques")
else:
print(f"Como F_exp < F_crit → NO se rechaza H0 para bloques")
print("Los efectos de los bloques (insecticidas) NO son significativos.")
SCTr = Σy_i..²/K - y²/N = 13247/3 - 4370.08 = 45.58 Totales ajustados de bloques (Bj): B_1 = 64 - (1/3)(53 + 63 + 50) = 8.67 B_2 = 50 - (1/3)(63 + 50 + 63) = -8.67 B_3 = 62 - (1/3)(53 + 50 + 63) = 6.67 B_4 = 53 - (1/3)(53 + 63 + 63) = -6.67 ΣBj² = 239.11 SCBl* = R·ΣBj²/(λJ) = 3×239.11/(2×4) = 89.67 SCR = SCT - SCTr - SCBl* - SCC = 172.92 - 45.58 - 89.67 - 12.67 = 25.00 ====================================================================== TABLA ANOVA - BLOQUES CORREGIDOS (Tabla 5-21) ====================================================================== Fuente SC GL CM F p ---------------------------------------------------------------------- Trat-no-corregidos 45.58 3 Bloques corregidos 89.67 3 29.89 3.587 0.1585 Columnas 12.67 2 Residual 25.00 3 8.33 ---------------------------------------------------------------------- TOTAL 172.92 11 ====================================================================== --- CONCLUSIÓN BLOQUES (α = 0.05) --- F_crítico (0.05, 3, 3) = 9.28 F_exp = 3.587, p = 0.1585 Como F_exp < F_crit → NO se rechaza H0 para bloques Los efectos de los bloques (insecticidas) NO son significativos.
| Fuente de Variación | SC | GL | CM | $F_{\text{exp}}$ |
|---|---|---|---|---|
| Trat-no-corregidos | 45.58 | 3 | - | - |
| Bloques corregidos | 89.67 | 3 | 29.89 | 3.587 |
| Columnas | 12.67 | 2 | - | - |
| Residual | 25.00 | 3 | 8.33 | - |
| TOTAL | 172.92 | 11 | - | - |
Practicar con problemas de aplicación.
¿Cuál es la diferencia principal entre un Diseño en Cuadrado Latino y un Diseño en Cuadrado de Youden?
La diferencia principal radica en el número de niveles de los factores de bloqueo:
Un Cuadrado de Youden puede verse como un cuadrado latino al que se le ha eliminado al menos una columna, pero no de forma arbitraria.
En un Diseño en Cuadrado de Youden con $I = 5$ tratamientos y $K = 4$, calcule: $N$, $R$, $J$, $\lambda$ y los grados de libertad del residual.
¿Cuáles son los grados de libertad del residual en un Cuadrado de Youden con $I = 4$, $K = 3$?
Los grados de libertad del residual son:
$$GL_{\text{Residual}} = N - 2I - K + 2$$
Con $N = I \times K = 4 \times 3 = 12$:
$$GL_{\text{Residual}} = 12 - 2(4) - 3 + 2 = 12 - 8 - 3 + 2 = 3$$
¿Por qué es importante calcular los totales ajustados $T_i$ en el análisis de un Cuadrado de Youden?
Es importante porque en un Cuadrado de Youden cada tratamiento no aparece en todos los bloques (es un diseño incompleto). Los totales ajustados $T_i$ corrigen el efecto de los bloques sobre los tratamientos, permitiendo una comparación justa entre ellos. La fórmula:
$$T_i = y_{i..} - \frac{1}{K}\sum_{j=1}^{J} n_{ij} \, y_{.j.}$$
resta el promedio de los totales de los bloques que contienen al tratamiento $i$, eliminando así el sesgo producido por la distribución desigual de los tratamientos en los bloques.
¿Cómo se interpreta el parámetro $\lambda$ en un Cuadrado de Youden? Calcúlelo para el ejemplo del capítulo.
El parámetro $\lambda$:
$$\lambda = R\frac{K-1}{I-1}$$
Indica cuántas veces aparece cada par de tratamientos juntos en el mismo bloque. En un diseño balanceado, este valor es constante para todos los pares de tratamientos, lo que garantiza que todos los tratamientos tengan la misma precisión en sus comparaciones.
En el ejemplo: con $R = K = 3$, $I = 4$:
$$\lambda = 3 \times \frac{3-1}{4-1} = 3 \times \frac{2}{3} = 2$$
Esto significa que cada par de tratamientos aparece juntos en exactamente 2 bloques. Por ejemplo, los tratamientos A y B coinciden en los bloques i₁ e i₄.
¿Cuál es la diferencia entre la tabla ANOVA con tratamientos ajustados (Tabla 5-20) y la tabla ANOVA con bloques ajustados (Tabla 5-21)?
La diferencia radica en qué efecto se contrasta:
En ambos casos, el $SCR$ (residual) es el mismo, y el estadístico $F$ compara el cuadrado medio del efecto ajustado contra el cuadrado medio residual.
Consultar las fuentes bibliográficas.
Diseño Estadístico de Experimentos. Análisis de la Varianza.
Grupo Editorial Universitario, 1998.
Diseño Estadístico de Experimentos, Análisis de la Varianza y Temas Relacionados: Tratamiento Informático mediante SPSS.
Proyecto Sur de Ediciones, 2000.
Experimental Designs.
2nd Edition. John Wiley & Sons, 1957.
Design and Analysis of Experiments.
10th Edition. John Wiley & Sons, 2019.