El Diseño en Bloques Completos al Azar (DBCA) (en inglés, Randomized Complete Block Design, RCBD) es un diseño de dos vías sin interacción cuyo propósito central es aumentar la precisión de la comparación de tratamientos cuando existe una fuente de variación “molesta” (nuisance factor) que puede controlarse formando bloques homogéneos. La idea es que la variabilidad entre bloques se “separe” explícitamente en el modelo y en la ANOVA, reduciendo el cuadrado medio del error (CME/MSE) y, por tanto, aumentando potencia para detectar efectos de tratamientos. citeturn3view1turn13search16
El documento proporcionado (notas atribuidas a Felipe de Mendiburu) enuncia el modelo aditivo, los estimadores por mínimos cuadrados, y las fórmulas computacionales de sumas de cuadrados con el término de corrección (TC), además de un ejemplo con su tabla ANVA/ANOVA, contrastes ortogonales y la prueba no paramétrica de Friedman. fileciteturn2file0
A partir del ejemplo del documento (5 tratamientos/variedades y 3 bloques; 15 observaciones), al reproducir el cálculo paso a paso se obtiene exactamente la misma ANOVA:
Los contrastes ortogonales propuestos en el documento descomponen exactamente la suma de cuadrados de tratamientos y muestran, por ejemplo, que el contraste “Testigo vs. (V1,V2,V3,V4)” es altamente significativo. fileciteturn2file0
La prueba de Friedman (por rangos, alternativa no paramétrica apropiada cuando se duda de normalidad) aplicada a esos mismos datos produce \(\chi^2\approx 8.8\) y \(p\approx 0.0663\), coherente con lo reportado en las notas: no se rechaza a \(\alpha=0.05\), pero sugiere señal moderada. fileciteturn2file0
En DBCA se asume que las unidades experimentales no son completamente homogéneas; por ello se agrupan en bloques tales que dentro de cada bloque las unidades son “lo más comparables posible”. Cada bloque contiene todos los tratamientos exactamente una vez (bloque completo), y la aleatorización ocurre dentro de cada bloque. Esto coincide con las “características” del diseño enumeradas en el documento: heterogeneidad global, bloques internos homogéneos, y asignación aleatoria de tratamientos en cada bloque. fileciteturn2file0
La justificación estadística del bloqueo se puede expresar así:
image_group{“layout”:“carousel”,“aspect_ratio”:“16:9”,“query”:[“diseño en bloques completos al azar esquema de parcelas”,“randomized complete block design field layout diagram”,“RCBD block layout treatments randomized within blocks”],“num_per_query”:1}
Cuándo conviene DBCA. Es especialmente útil en ensayos de campo (agronomía, zootecnia, forestales) donde hay gradientes de suelo, humedad, sombra, fertilidad, etc. El diseño busca que esas diferencias queden “capturadas” por el componente de bloques, no por el error. citeturn3view1turn13search16
Qué no resuelve. DBCA estándar (una observación por celda bloque×tratamiento) no permite estimar una interacción tratamiento×bloque; por tanto, se asume aditividad (interacción despreciable). Algunas guías docentes recomiendan evaluar aditividad cuando hay una observación por celda. citeturn13search12
El documento plantea el modelo lineal:
\[ Y_{ij}=\mu+\tau_i+\beta_j+\varepsilon_{ij},\qquad i=1,\dots,t;\; j=1,\dots,b \]
donde \(\mu\) es el promedio
general, \(\tau_i\) el efecto del
tratamiento \(i\), \(\beta_j\) el efecto del bloque \(j\), y \(\varepsilon_{ij}\) el error experimental.
fileciteturn2file0
Este mismo modelo aparece en una fuente oficial de referencia para
diseños bloqueados. citeturn3view1
Para identificar de manera única los parámetros (la matriz de diseño no es de rango completo), se imponen restricciones como:
\[ \sum_{i=1}^{t}\tau_i=0,\qquad \sum_{j=1}^{b}\beta_j=0 \]
El hecho de requerir “condiciones laterales” (side conditions) y que la solución bajo estas restricciones conduce a estimadores basados en medias se documenta en notas de curso de diseño y análisis de experimentos. citeturn6view0
En DBCA, el sustento para inferencia tipo ANOVA típicamente incluye:
Denote:
Bajo mínimos cuadrados con restricciones, los estimadores son:
\[ \hat{\mu}=\bar{Y}_{\cdot\cdot},\qquad \hat{\tau}_i=\bar{Y}_{i\cdot}-\bar{Y}_{\cdot\cdot},\qquad \hat{\beta}_j=\bar{Y}_{\cdot j}-\bar{Y}_{\cdot\cdot} \]
Estos estimadores aparecen explícitamente en el documento y en referencias docentes que discuten la solución bajo restricciones en el diseño en bloques completos. fileciteturn2file0turn3view1turn6view0
La predicción (valor ajustado) para la celda \((i,j)\) es:
\[ \hat{Y}_{ij}=\hat{\mu}+\hat{\tau}_i+\hat{\beta}_j=\bar{Y}_{i\cdot}+\bar{Y}_{\cdot j}-\bar{Y}_{\cdot\cdot} \]
y el residuo (estimación del error experimental) queda:
\[ \hat{\varepsilon}_{ij}=Y_{ij}-\hat{Y}_{ij} =Y_{ij}-\bar{Y}_{i\cdot}-\bar{Y}_{\cdot j}+\bar{Y}_{\cdot\cdot} \]
La fórmula del residuo se muestra en las notas proporcionadas y también en material docente de DBCA/RCBD. fileciteturn2file0turn13search0
El documento incluye una “Tabla ANOVA DBCA” con fórmulas de sumas de cuadrados, grados de libertad, cuadrados medios y razón F. fileciteturn2file0 A continuación se presenta una versión unificada (con notación consistente \(t=\#\) tratamientos, \(b=\#\) bloques).
Para DBCA balanceado (una observación por celda), la descomposición es:
\[ SC_T = SC_{\text{Trt}} + SC_{\text{Bloq}} + SC_E \]
con:
\[ SC_T=\sum_{i=1}^t\sum_{j=1}^b \left(Y_{ij}-\bar{Y}_{\cdot\cdot}\right)^2 \]
\[ SC_{\text{Trt}} = b\sum_{i=1}^t\left(\bar{Y}_{i\cdot}-\bar{Y}_{\cdot\cdot}\right)^2 \]
\[ SC_{\text{Bloq}} = t\sum_{j=1}^b\left(\bar{Y}_{\cdot j}-\bar{Y}_{\cdot\cdot}\right)^2 \]
\[ SC_E = \sum_{i=1}^t\sum_{j=1}^b\left(Y_{ij}-\bar{Y}_{i\cdot}-\bar{Y}_{\cdot j}+\bar{Y}_{\cdot\cdot}\right)^2 \]
Estas expresiones son estándar en notas de curso de diseños bloqueados y coinciden con la tabla incluida en el documento y con referencias docentes externas. fileciteturn2file0turn13search0turn6view0
Las notas usan el término de corrección (TC):
\[ TC=\frac{G^2}{N},\qquad N=tb \]
y reportan formas computacionales equivalentes, particularmente
útiles para cálculo manual. fileciteturn2file0
La equivalencia con las expresiones anteriores se enseña en material
docente de DBCA que deriva las sumas de cuadrados a partir de totales y
del término \(C=G^2/N\).
citeturn6view0turn13search0
A continuación se muestra una tabla comparativa de fórmulas (balanceado):
| Componente | Forma con medias | Forma con totales + TC |
|---|---|---|
| \(SC_T\) | \(\sum\sum (Y_{ij}-\bar{Y}_{\cdot\cdot})^2\) | \(\sum\sum Y_{ij}^2 - TC\) |
| \(SC_{\text{Trt}}\) | \(b\sum(\bar{Y}_{i\cdot}-\bar{Y}_{\cdot\cdot})^2\) | \(\sum \dfrac{T_i^2}{b}-TC\) |
| \(SC_{\text{Bloq}}\) | \(t\sum(\bar{Y}_{\cdot j}-\bar{Y}_{\cdot\cdot})^2\) | \(\sum \dfrac{B_j^2}{t}-TC\) |
| \(SC_E\) | \(\sum\sum \hat{\varepsilon}_{ij}^2\) | \(SC_T - SC_{\text{Trt}} - SC_{\text{Bloq}}\) |
(Estas fórmulas aparecen, en esencia, en la tabla ANOVA del documento y en notas universitarias de DBCA/RCBD.) fileciteturn2file0turn13search0turn6view0
Para el DBCA balanceado:
\[ gl_{\text{Trt}}=t-1,\qquad gl_{\text{Bloq}}=b-1,\qquad gl_E=(t-1)(b-1),\qquad gl_T=tb-1 \]
tal como se enuncia en el documento. fileciteturn2file0
Cuadrados medios (CM/MS):
\[ CM_{\text{Trt}}=\frac{SC_{\text{Trt}}}{t-1},\quad CM_{\text{Bloq}}=\frac{SC_{\text{Bloq}}}{b-1},\quad CM_E=\frac{SC_E}{(t-1)(b-1)} \]
citeturn13search0turn6view0
Hipótesis típicas:
Estadísticos:
\[ F_{\text{Trt}}=\frac{CM_{\text{Trt}}}{CM_E},\qquad F_{\text{Bloq}}=\frac{CM_{\text{Bloq}}}{CM_E} \]
Rechazo si \(F_{\text{obs}} > F_{1-\alpha;gl_1,gl_2}\). (En el ejemplo del documento se listan valores críticos \(F_{0.05}(4,8)\) y \(F_{0.01}(4,8)\).) fileciteturn2file0
El valor-p se define como:
\[ p=\Pr\big(F_{gl_1,gl_2}\ge F_{\text{obs}}\;\big|\;H_0\big) \]
La distribución F y el uso de funciones de distribución/colas (CDF y survival function) están documentados en manuales oficiales de R y SciPy. citeturn15search0turn1search2turn15search20
Nota docente sobre bloques. En muchas aplicaciones, los bloques se incluyen para controlar variación y no necesariamente para “probar” su significancia; existen advertencias en material de curso sobre la interpretación de la prueba F de bloques. citeturn13search0
El documento presenta un ensayo de 5 variedades (V1, V2, V3, V4 y Testigo) evaluadas en 3 bloques (I, II, III), total \(N=15\) parcelas. La tabla de datos (follaje fresco) y los totales por tratamiento y por bloque están en las notas. fileciteturn2file0
| Bloque | V1 | Testigo | V2 | V3 | V4 | Total bloque |
|---|---|---|---|---|---|---|
| I | 17.9 | 7.0 | 19.8 | 15.2 | 12.7 | 72.6 |
| II | 20.8 | 5.9 | 16.7 | 21.0 | 14.2 | 78.6 |
| III | 21.4 | 4.2 | 16.7 | 8.8 | 11.5 | 62.6 |
| Total trt | 60.1 | 17.1 | 53.2 | 45.0 | 38.4 | 213.8 |
fileciteturn2file0
En el documento se indica explícitamente: \[ TC=(213.8)^2/15,\quad SC_{\text{Variedades}}=\frac{(17.1)^2+\cdots+(38.4)^2}{3}-TC,\quad SC_{\text{Bloques}}=\frac{(72.6)^2+\cdots+(62.6)^2}{5}-TC \] fileciteturn2file0
La siguiente tabla reproduce cada etapa con sustitución numérica:
| Cantidad | Fórmula | Sustitución | Resultado |
|---|---|---|---|
| \(N\) | \(N=b\,t\) | \(3\cdot 5\) | 15 |
| \(G\) | \(G=\sum\sum Y_{ij}\) | 213.8 | |
| \(\bar{Y}_{\cdot\cdot}\) | \(G/N\) | \(213.8/15\) | 14.2533 |
| \(TC\) | \(G^2/N\) | \(213.8^2/15\) | 3047.3627 |
| \(\sum\sum Y_{ij}^2\) | 3506.94 | ||
| \(SC_T\) | \(\sum\sum Y_{ij}^2-TC\) | \(3506.94-3047.3627\) | 459.5773 |
| \(\sum T_i^2/b\) | \(\sum T_i^2/b\) | \(\frac{60.1^2+\cdots+38.4^2}{3}\) | 3411.4067 |
| \(SC_{\text{Trt}}\) | \(\sum T_i^2/b-TC\) | \(3411.4067-3047.3627\) | 364.0440 |
| \(\sum B_j^2/t\) | \(\sum B_j^2/t\) | \(\frac{72.6^2+78.6^2+62.6^2}{5}\) | 3073.4960 |
| \(SC_{\text{Bloq}}\) | \(\sum B_j^2/t-TC\) | \(3073.4960-3047.3627\) | 26.1333 |
| \(SC_E\) | \(SC_T-SC_{\text{Trt}}-SC_{\text{Bloq}}\) | \(459.5773-364.0440-26.1333\) | 69.4000 |
(Estos valores coinciden con los reportados en “Resultados del ANVA” en el documento.) fileciteturn2file0
Con \(t=5\), \(b=3\):
| Fuente | gl | SC | CM | F | \(p\) |
|---|---|---|---|---|---|
| Bloques | 2 | 26.1333 | 13.0667 | 1.5062 | 0.2785 |
| Tratamientos (Variedades) | 4 | 364.0440 | 91.0110 | 10.4912 | 0.0029 |
| Error | 8 | 69.4000 | 8.6750 | ||
| Total corregido | 14 | 459.5773 |
Los valores-p se obtienen con la cola superior de \(F\) (survival function), consistente con
documentación oficial de SciPy/R para distribución F.
citeturn1search2turn15search0
La tabla coincide con la salida incluida en el documento.
fileciteturn2file0
El documento incluye:
\[ CV(\%)=\frac{\sqrt{CM_E}}{\bar{Y}_{\cdot\cdot}}\cdot 100 \]
y reporta \(CV\approx 20.6\%\) y \(\bar{Y}_{\cdot\cdot}\approx 14.25\). Esto se verifica con los valores anteriores. fileciteturn2file0
Esta sección justifica formalmente tres elementos presentes en las notas: comparaciones múltiples paramétricas, contrastes ortogonales y la alternativa no paramétrica de Friedman.
Tras una ANOVA significativa para tratamientos, es común evaluar qué pares de medias difieren. Tres procedimientos solicitados:
Para tratamientos \(i\) y \(k\), el estadístico t (con varianza combinada por \(CM_E\)) se escribe:
\[ t=\frac{\bar{Y}_{i\cdot}-\bar{Y}_{k\cdot}}{\sqrt{CM_E\left(\frac{1}{b}+\frac{1}{b}\right)}}= \frac{\bar{Y}_{i\cdot}-\bar{Y}_{k\cdot}}{\sqrt{\frac{2CM_E}{b}}} \]
La diferencia mínima significativa (balanceado) es:
\[ LSD_{\alpha}=t_{1-\alpha/2,\;gl_E}\sqrt{\frac{2CM_E}{b}} \]
Esta forma aparece en material docente en español para diseños
balanceados. citeturn12search15
Advertencia clásica: Fisher-LSD controla el error por comparación, pero
no necesariamente el error familiar si se hacen muchas comparaciones.
citeturn12search18
Aplicación al ejemplo. Con \(CM_E=8.675\), \(b=3\), \(gl_E=8\) y \(\alpha=0.05\):
\[ LSD_{0.05}\approx 2.306\sqrt{\frac{2(8.675)}{3}}\approx 5.546 \]
(El valor crítico \(t\) coincide con el usado en las hojas/ejemplos de las notas para \(gl=8\).) fileciteturn2file0
Tukey controla el error familiar para todas las comparaciones por pares mediante la distribución del rango studentizado. R lo documenta explícitamente (intervalos basados en el Studentized range statistic). citeturn1search0turn1search3turn15search1turn15search3
Para tamaños iguales, el umbral suele expresarse como:
\[ HSD_{\alpha}=q_{1-\alpha;\;t,\;gl_E}\sqrt{\frac{CM_E}{b}} \]
donde \(q\) es el cuantil de la
distribución del rango studentizado (implementada en R como
qtukey y en SciPy como studentized_range).
citeturn15search1turn15search3
Aplicación al ejemplo. Con \(t=5\), \(gl_E=8\), \(CM_E=8.675\), \(b=3\):
\[ HSD_{0.05}\approx 4.886\sqrt{\frac{8.675}{3}}\approx 8.308 \]
Interpretación: Tukey es más conservador que LSD, por lo que requiere diferencias mayores para declarar significancia.
Bonferroni controla el error familiar ajustando el
nivel o los valores-p. En R,
p.adjust(..., method="bonferroni") documenta que la
corrección Bonferroni multiplica los valores-p por el número de
comparaciones. citeturn2search13turn12search0
Un resumen docente sobre control de FWER también lo formula como umbral
\(p<\alpha/m\).
citeturn12search4
En forma de umbral para diferencias (balanceado, dos colas), con \(m=\binom{t}{2}\):
\[ LSD_{\text{Bonf}}=t_{1-\alpha/(2m),\;gl_E}\sqrt{\frac{2CM_E}{b}} \]
Aplicación al ejemplo. \(m=\binom{5}{2}=10\):
\[ LSD_{\text{Bonf}}\approx 3.833\sqrt{\frac{2(8.675)}{3}}\approx 9.217 \]
Las notas proponen un conjunto de contrastes ortogonales que permiten comparar grupos de tratamientos (“Testigo vs los demás”, “V1,V2 vs V3,V4”, etc.). fileciteturn2file0
Un contraste lineal en tratamientos se define como:
\[ L=\sum_{i=1}^{t} c_i\,\bar{Y}_{i\cdot}, \qquad \text{con}\quad \sum c_i =0 \]
En diseño balanceado (mismo \(b\) para todos), la suma de cuadrados asociada al contraste es:
\[ SC(L)=\frac{L^2}{\operatorname{Var}(L)/\sigma^2}\approx \frac{\left(\sum c_i T_i\right)^2}{b\sum c_i^2} \]
Esta es precisamente la forma usada en el documento (con \(r\) como número de repeticiones/bloques). fileciteturn2file0
Dos contrastes \(c\) y \(d\) son ortogonales (balanceado) si:
\[ \sum_{i=1}^t c_i d_i = 0 \]
y entonces la suma de cuadrados de tratamientos se particiona:
\[ SC_{\text{Trt}}=\sum_k SC(L_k) \]
En el ejemplo, las notas muestran que los cuatro contrastes ortogonales suman \(SC_{\text{Trt}}\). fileciteturn2file0
Reproducción numérica de los contrastes del documento. Con totales \(T_i\) (V1, Testigo, V2, V3, V4) = (60.1, 17.1, 53.2, 45.0, 38.4), \(b=3\), \(CM_E=8.675\):
| Contraste | Coeficientes \((c_{V1},c_T,c_{V2},c_{V3},c_{V4})\) | \((\sum c_iT_i)^2\) | \(b\sum c_i^2\) | \(SC\) | \(F=SC/CM_E\) |
|---|---|---|---|---|---|
| C1: Testigo vs resto | \((-1,4,-1,-1,-1)\) | 16460.89 | 60 | 274.35 | 31.63 |
| C2: (V1,V2) vs (V3,V4) | \((-1,0,-1,1,1)\) | 894.01 | 12 | 74.50 | 8.59 |
| C3: V1 vs V2 | \((-1,0,1,0,0)\) | 47.61 | 6 | 7.94 | 0.91 |
| C4: V3 vs V4 | \((0,0,0,-1,1)\) | 43.56 | 6 | 7.26 | 0.84 |
La suma \(274.35+74.50+7.94+7.26\approx 364.04\) coincide con \(SC_{\text{Trt}}\). fileciteturn2file0
Las notas incluyen la prueba de Friedman para DBCA
cuando no se desea asumir normalidad (usa rangos por bloque).
fileciteturn2file0
En la literatura, Friedman (1937) se reconoce como el proponente de una
prueba libre de distribución para diseños en bloques completos, basada
en rangos intra-bloque. citeturn14search0
Para \(t\) tratamientos y \(b\) bloques (sin empates), la estadística típica es:
\[ \chi^2_F=\frac{12}{b\,t(t+1)}\sum_{i=1}^t R_i^2 - 3b(t+1) \]
donde \(R_i\) es la suma de rangos del tratamiento \(i\). Esta expresión aparece en el documento. fileciteturn2file0
Aplicación al ejemplo de follaje (rangos en las
notas). El documento presenta rangos por bloque y sumas \(R_i=(13,3,12,10,7)\) para (V1, Testigo, V2,
V3, V4). fileciteturn2file0
Entonces:
Esto coincide con la salida “Prueba de Friedman’s” y su valor-p reportado en las notas. fileciteturn2file0
Comparaciones múltiples por rangos (LSD sobre \(R_i\)). Las notas proponen un
umbral tipo LSD para diferencias de sumas de rangos y muestran su
cálculo en hoja de cálculo. fileciteturn2file0
En el ejemplo (DBCA con \(b=3,t=5\)),
se usa:
\[ |R_i-R_j|>LSD_R,\qquad LSD_R=t_{1-\alpha/2,\;(b-1)(t-1)}\sqrt{\frac{2(bA-\sum R_i^2)}{(b-1)(t-1)}} \]
donde \(A=\sum\sum r_{ij}^2\). Con
\(A=165\), \(\sum R_i^2=471\) y \(gl=(3-1)(5-1)=8\), el documento obtiene
\(LSD_R\approx 5.6485\).
fileciteturn2file0
Didácticamente, se debe remarcar que (como en otras pruebas post hoc)
conviene condicionar comparaciones post hoc a un resultado global
suficientemente significativo, o usar métodos post hoc específicamente
desarrollados para Friedman cuando sea el caso.
Dado el modelo ajustado, el diagnóstico se centra en los residuos \(\hat{\varepsilon}_{ij}\):
scipy.stats.normaltest) descrita en la
documentación de SciPy. citeturn1search24En R, debe recordarse que aov está orientado a diseños
balanceados; si hay pérdida de balance por faltantes, la interpretación
puede complicarse y puede ser preferible un enfoque de modelos
lineales/mistos. citeturn9search0
En términos prácticos, en DBCA el “tamaño de muestra” más relevante para potencia de tratamientos es el número de bloques \(b\) (réplicas por tratamiento). El bloqueo puede reducir \(CM_E\) y así aumentar potencia para un mismo \(b\). citeturn13search16turn3view1
Una forma estándar de pensar potencia en ANOVA usa la distribución
F no central; en R se recuerda que la F no central
introduce el parámetro ncp (parámetro de no centralidad).
citeturn15search0
En ANOVA de un factor, se usa con frecuencia:
\[ \lambda = \frac{n\sum_{i=1}^t \alpha_i^2}{\sigma^2},\qquad \alpha_i=\mu_i-\mu \]
y se evalúa potencia con una F no central. citeturn8search2
En DBCA balanceado, una heurística común es tratar \(n\) como el número de réplicas por
tratamiento, es decir, \(n=b\).
Herramientas actuales recomendadas (R y Python).
power.anova.test calcula potencia o despeja
parámetros para ANOVA balanceada. citeturn8search18statsmodels.stats.power.FTestAnovaPower
implementa potencia para ANOVA balanceada usando el tamaño de efecto de
Cohen \(f\).
citeturn8search0turn8search3Nota didáctica: Para DBCA, en cursos introductorios suele ser suficiente enseñar planificación como “ANOVA de un factor con \(n=b\)”, aclarando que el \(CM_E\) proviene del modelo con bloques.
Cuando falta una observación \(Y_{ij}\) en un DBCA, el diseño deja de ser perfectamente ortogonal; las fórmulas simples por TC siguen siendo útiles, pero requieren cuidado.
Imputación por mínimos cuadrados (un faltante). Notas docentes muestran que si la celda \((i,j)\) falta y se denota como \(x\), con:
entonces:
\[ \hat{x}=\frac{tT_i' + bB_j' - G'}{(t-1)(b-1)} \]
citeturn7view0turn16search3
Ajuste de grados de libertad. Material docente advierte que luego de imputar debe ajustarse el \(gl_E\) (se “pierde” 1 gl por el parámetro estimado al imputar), y también se enfatiza el cuidado al recalcular \(CM_E\). citeturn16search3
Alternativa robusta en software.
aov sea balanceado si hay
NA; la documentación advierte que los faltantes suelen romper balance.
citeturn9search0anova_lm con
el tipo de suma de cuadrados apropiado (I/II/III) está documentado en
statsmodels. citeturn1search1flowchart TD
A[Plantear objetivo y variable respuesta] --> B[Identificar fuente molesta y definir bloques]
B --> C[Asignar tratamientos aleatoriamente dentro de cada bloque]
C --> D[Recolectar datos y verificar balance (1 dato por celda)]
D --> E[Ajustar modelo: y_ij = mu + tau_i + beta_j + e_ij]
E --> F[Calcular ANOVA (SC, gl, CM, F, p)]
F --> G{F tratamientos significativo?}
G -->|Sí| H[Post hoc: Tukey / LSD / Bonferroni + contrastes]
G -->|No| I[Reportar sin comparaciones múltiples]
H --> J[Diagnóstico: residuos, normalidad, homocedasticidad]
I --> J
J --> K{Supuestos razonables?}
K -->|Sí| L[Conclusiones e informe]
K -->|No| M[Transformación / modelo alternativo / Friedman / mixtos]
M --> L
(La necesidad de diagnóstico y la alternativa de pruebas no paramétricas como Friedman están alineadas con lo incluido en las notas y con prácticas comunes de análisis.) fileciteturn2file0
Reproducción manual de ANOVA
(obligatorio).
A partir de la tabla de datos del documento, pedir: \(TC\), \(SC_T\), \(SC_{\text{Trt}}\), \(SC_{\text{Bloq}}\), \(SC_E\), gl, CM, \(F\) y \(p\). Verificar que coincide con la tabla
“Resultados del ANVA”. fileciteturn2file0
Demostrar equivalencia de fórmulas.
Probar algebraicamente que: \[
b\sum(\bar{Y}_{i\cdot}-\bar{Y}_{\cdot\cdot})^2=\sum
\frac{T_i^2}{b}-\frac{G^2}{tb}
\] usando \(T_i=b\bar{Y}_{i\cdot}\) y \(G=tb\bar{Y}_{\cdot\cdot}\).
citeturn6view0turn13search0
Contrastes ortogonales.
Verificar ortogonalidad (\(\sum
c_id_i=0\)) entre los contrastes C1–C4 del documento y comprobar
que sus sumas de cuadrados suman \(SC_{\text{Trt}}\).
fileciteturn2file0
Post hoc comparativo (mismo conjunto de
datos).
Calcular \(LSD_{0.05}\), \(HSD_{0.05}\) y \(LSD_{\text{Bonf}}\). Listar qué pares son
“significativos” bajo cada método y discutir por qué cambian.
citeturn12search15turn1search0turn2search13
Friedman vs ANOVA.
Con los rangos del documento, calcular \(\chi^2_F\) y su valor-p, e interpretar la
diferencia frente al resultado paramétrico.
fileciteturn2file0turn14search0
Caso con dato faltante (extensión).
Eliminar una celda (simular NA), estimar \(\hat{x}\) con la fórmula de un faltante,
recalcular y explicar el ajuste de grados de libertad.
citeturn7view0turn16search3
R (modelo y ANOVA; Tukey; Bonferroni).
La documentación oficial de aov advierte que está diseñado
para balance y que faltantes suelen romperlo. citeturn9search0
Además, TukeyHSD basa intervalos en el rango studentizado.
citeturn1search0
# Datos del documento
datos <- data.frame(
bloque = factor(rep(c("I","II","III"), each = 5)),
trt = factor(rep(c("V1","Testigo","V2","V3","V4"), times = 3)),
y = c(17.9,7.0,19.8,15.2,12.7,
20.8,5.9,16.7,21.0,14.2,
21.4,4.2,16.7,8.8,11.5)
)
# DBCA: efectos principales (sin interacción)
m <- aov(y ~ trt + bloque, data = datos)
summary(m)
# Tukey HSD para tratamientos
TukeyHSD(m, which = "trt")
# Comparaciones pareadas con ajuste Bonferroni (vía pairwise.t.test)
pairwise.t.test(datos$y, datos$trt, p.adjust.method = "bonferroni", pool.sd = TRUE)
Python (statsmodels + ANOVA; potencia con Cohen
f).
anova_lm y sus tipos (I/II/III) están documentados en
statsmodels. citeturn1search1turn1search4 Para potencia,
FTestAnovaPower se basa en Cohen \(f\). citeturn8search0turn8search3
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
from statsmodels.stats.anova import anova_lm
from statsmodels.stats.power import FTestAnovaPower
df = pd.DataFrame({
"bloque": ["I"]*5 + ["II"]*5 + ["III"]*5,
"trt": ["V1","Testigo","V2","V3","V4"]*3,
"y": [17.9,7.0,19.8,15.2,12.7,
20.8,5.9,16.7,21.0,14.2,
21.4,4.2,16.7,8.8,11.5]
})
# Modelo aditivo DBCA: y ~ C(trt) + C(bloque)
model = smf.ols("y ~ C(trt) + C(bloque)", data=df).fit()
# ANOVA tipo II (útil cuando hay desbalance; aquí es balanceado)
anova = anova_lm(model, typ=2)
print(anova)
# Ejemplo de potencia (ANOVA 1-factor como aproximación didáctica):
# estimar potencia para k grupos con un f dado y nobs total
power = FTestAnovaPower().power(effect_size=0.5, nobs=df.shape[0], alpha=0.05, k_groups=5)
print(power)
(Para interpretaciones de colas y cuantiles en distribuciones t/F, SciPy documenta CDF, SF y PPF para t/F y el rango studentizado para Tukey.) citeturn1search2turn15search20turn15search3