Universidad Nacional de Jujuy

Facultad de Ciencias Agrarias

Cátedra de Bioestadística y Diseño Experimental

Profesora: Ing. Agr. Ivone Carolina Humacata


Clase: Pruebas de Comparación Múltiple de medias

Objetivos de la clase

Al finalizar esta clase, los estudiantes serán capaces de:

  1. Comprender por qué se necesitan pruebas de comparación múltiple después de un ANOVA significativo.
  2. Diferenciar entre las pruebas de Tukey, Duncan y Dunnett, y saber cuándo usar cada una.
  3. Aplicar correctamente las tres pruebas en RStudio utilizando datos del ejemplo de vitamina C.
  4. Interpretar los resultados de cada prueba en contexto bromatológico.
  5. Comunicar conclusiones científicas basadas en las comparaciones de medias.

1. ¿Por qué necesitamos pruebas post-hoc?

El ANOVA responde a la pregunta:

¿Existen diferencias significativas entre las medias de los tratamientos?

Si el p-valor del ANOVA es menor que 0.05, rechazamos la hipótesis nula:

\[ H_0: \mu_1 = \mu_2 = \mu_3 = \mu_4 = \mu_5 \]

Pero el ANOVA no nos dice:

  • cuáles tratamientos difieren;
  • cuántos pares son diferentes;
  • cuál tratamiento tiene la media más alta o más baja.

Las pruebas de comparación múltiple permiten responder:

¿Qué pares de tratamientos son significativamente diferentes entre sí?


2. El problema de las comparaciones múltiples

Si tenemos 5 tratamientos, el número de comparaciones por pares es:

\[ \binom{5}{2} = \frac{5 \times 4}{2} = 10 \]

Es decir, debemos comparar:

  • T1 vs T2
  • T1 vs T3
  • T1 vs T4
  • T1 vs T5
  • T2 vs T3
  • T2 vs T4
  • T2 vs T5
  • T3 vs T4
  • T3 vs T5
  • T4 vs T5

Si usáramos pruebas t de Student independientes para cada par con \(\alpha = 0.05\), la probabilidad de cometer al menos un error Tipo I (falso positivo) aumentaría considerablemente.

Las pruebas post-hoc ajustan los valores críticos o los p-valores para controlar este error.12


3. Las tres pruebas más utilizadas

3.1. Prueba de Tukey (HSD)

Características:

  • Compara todos los pares posibles de tratamientos.
  • Controla la tasa de error para todas las comparaciones simultáneamente.
  • Es conservadora (menos propensa a encontrar diferencias falsas).
  • Requiere homogeneidad de varianzas y tamaños de muestra similares.
  • Es la más utilizada en la práctica.

Cuándo usarla:

  • Cuando no hay un tratamiento de control definido.
  • Cuando interesan todas las comparaciones por pares.
  • Cuando se quiere un equilibrio entre poder estadístico y control del error.3

3.2. Prueba de Duncan

Características:

  • Compara todos los pares, pero es más liberal que Tukey.
  • Agrupa las medias en categorías homogéneas usando letras.
  • Tiene mayor poder estadístico (detecta más diferencias), pero también mayor riesgo de errores Tipo I.
  • Popular en ciencias agrícolas y biológicas.

Cuándo usarla:

  • Cuando se prioriza detectar diferencias sobre controlar estrictamente el error.
  • Cuando se desea una presentación clara mediante agrupamiento con letras.
  • Cuando los tamaños de muestra son iguales o muy similares.4

3.3. Prueba de Dunnett

Características:

  • Compara cada tratamiento contra un control específico.
  • No compara tratamientos entre sí.
  • Es más poderosa que Tukey para comparaciones vs. control porque ajusta el error solo para esas comparaciones.
  • Ideal cuando existe un tratamiento de referencia (control, placebo, estándar).

Ejemplo:

Si T1 (25 °C) es el control, Dunnett compara:

  • T2 vs T1
  • T3 vs T1
  • T4 vs T1
  • T5 vs T1

Pero no compara T2 vs T3, T4 vs T5, etc.5

Cuándo usarla:

  • Cuando existe un tratamiento de control claro.
  • Cuando solo interesan las diferencias respecto al control.
  • Cuando se quiere maximizar el poder para detectar efectos de los tratamientos frente al estándar.

4. Comparación resumida

Característica Tukey HSD Duncan Dunnett
Tipo de comparaciones Todos los pares Todos los pares Tratamientos vs. control
Control del error Estricto Menos estricto Estricto para vs. control
Poder estadístico Moderado Alto Alto para vs. control
Uso típico General Agrupamiento Comparación con control
Número de comparaciones (5 tratamientos) 10 10 4 (si 1 control)

5. Continuación del ejemplo: vitamina C

Retomamos el diseño de cuadrado latino de orden 5 con los siguientes tratamientos:

Código Método Descripción
T1 Ambiente 25 °C (control)
T2 Refrigeración 4 °C
T3 Congelación −18 °C
T4 Opaco 4 °C, protegido de luz
T5 Atmósfera reducida 4 °C, mínimo oxígeno

Hipótesis:

  • T1 es el tratamiento de referencia (condición estándar).
  • Se espera que los métodos de conservación en frío preserven mejor la vitamina C.

6. Script

6.1. Carga de librerías y datos

# ============================================================
# PRUEBAS DE COMPARACIÓN MÚLTIPLE DE MEDIAS
# Ejemplo: vitamina C en jugo de naranja
# Diseño: Cuadrado Latino de Orden 5
# ============================================================

# Instalar paquetes (solo la primera vez)
# install.packages(c(
#   "readxl", "tidyverse", "janitor", "agricolae",
#   "emmeans", "multcomp", "multcompView", "DescTools"
# ))

# Cargar librerías
library(readxl)
library(openxlsx)
library(tidyverse)
library(janitor)
library(agricolae)
library(emmeans)
library(multcomp)
library(multcompView)
library(DescTools)

# ============================================================
# 1. IMPORTAR DATOS
# ============================================================

datos <- read_excel(
  "datos_vitamina_c_DCL.xlsx",
  sheet = "Datos_Raw"
) %>%
  clean_names()

# ============================================================
# 2. PREPARAR VARIABLES
# ============================================================

datos <- datos %>%
  mutate(
    ue = factor(ue),
    fila = factor(fila),
    columna = factor(columna),
    tratamiento = factor(
      tratamiento,
      levels = c(
        "T1_25C",
        "T2_4C",
        "T3_menos18C",
        "T4_opaco",
        "T5_atmosfera_reducida"
      )
    ),
    vitamina_c = as.numeric(vitamina_c_mg100m_l)
  )

# Verificar estructura
str(datos)

6.2. Estadística descriptiva

# ============================================================
# 3. ESTADÍSTICA DESCRIPTIVA
# ============================================================

descriptivos <- datos %>%
  group_by(tratamiento) %>%
  summarise(
    n = n(),
    media = mean(vitamina_c, na.rm = TRUE),
    mediana = median(vitamina_c, na.rm = TRUE),
    sd = sd(vitamina_c, na.rm = TRUE),
    se = sd / sqrt(n),
    cv = (sd / media) * 100,
    min = min(vitamina_c, na.rm = TRUE),
    max = max(vitamina_c, na.rm = TRUE)
  ) %>%
  mutate(
    media = round(media, 2),
    sd = round(sd, 2),
    se = round(se, 2),
    cv = round(cv, 2),
    min = round(min, 2),
    max = round(max, 2)
  )

print("=== ESTADÍSTICOS DESCRIPTIVOS POR TRATAMIENTO ===")
print(descriptivos)

# Gráfico de medias
ggplot(
  descriptivos,
  aes(x = tratamiento, y = media, fill = tratamiento)
) +
  geom_col(alpha = 0.7) +
  geom_errorbar(
    aes(ymin = media - se, ymax = media + se),
    width = 0.2
  ) +
  labs(
    title = "Medias de vitamina C por tratamiento",
    subtitle = "Barras de error: ± 1 SE",
    x = "Tratamiento",
    y = "Vitamina C (mg/100 mL)"
  ) +
  theme_minimal() +
  theme(
    legend.position = "none",
    axis.text.x = element_text(angle = 25, hjust = 1)
  )

6.3. Ajuste del modelo ANOVA

# ============================================================
# 4. MODELO ANOVA (Cuadrado Latino)
# ============================================================

modelo <- aov(
  vitamina_c ~ fila + columna + tratamiento,
  data = datos
)

print("=== TABLA ANOVA ===")
summary(modelo)
anova(modelo)

6.4. Prueba de Tukey HSD

# ============================================================
# 5. PRUEBA DE TUKEY HSD
# Compara TODOS los pares de tratamientos
# ============================================================

# Método base de R
tukey_base <- TukeyHSD(modelo, which = "tratamiento", conf.level = 0.95)

print("=== RESULTADOS DE TUKEY (función TukeyHSD) ===")
print(tukey_base)

# Visualizar
plot(
  tukey_base,
  las = 1,
  col = "steelblue"
)

# Método con emmeans (recomendado)
medias_emm <- emmeans(modelo, ~ tratamiento)

tukey_emm <- pairs(medias_emm, adjust = "tukey")

print("=== RESULTADOS DE TUKEY (emmeans) ===")
print(tukey_emm)
confint(tukey_emm)

# Agrupamiento con letras
grupos_tukey <- cld(
  medias_emm,
  adjust = "tukey",
  Letters = letters,
  reverse = TRUE
)

print("=== AGRUPAMIENTO DE TUKEY CON LETRAS ===")
print(grupos_tukey)

6.5. Prueba de Duncan

# ============================================================
# 6. PRUEBA DE DUNCAN
# Más liberal que Tukey, agrupa medias con letras
# ============================================================

duncan_result <- duncan.test(
  modelo,
  trt = "tratamiento",
  alpha = 0.05
)

print("=== RESULTADOS DE DUNCAN ===")
print(duncan_result)

6.6. Prueba de Dunnett

# ============================================================
# 7. PRUEBA DE DUNNETT
# Compara cada tratamiento VS. el control (T1_25C)
# ============================================================


# Método con emmeans
dunnett_emm <- contrast(
  medias_emm,
  method = "dunnett",
  ref = "T1_25C"
)

print("=== RESULTADOS DE DUNNETT (emmeans) ===")
print(dunnett_emm)
confint(dunnett_emm)

# Método con DescTools
dunnett_desc <- DunnettTest(
  x = datos$vitamina_c,
  g = datos$tratamiento,
  control = "T1_25C"
)

print("=== RESULTADOS DE DUNNETT (DescTools) ===")
print(dunnett_desc)

7. Interpretación de resultados

7.1. Tukey HSD

Ejemplo de interpretación:

Según la prueba de Tukey, los tratamientos T3 (congelación), T4 (opaco) y T5 (atmósfera reducida) no difieren significativamente entre sí (comparten la letra “a”), pero todos presentan contenidos de vitamina C significativamente mayores que T1 (ambiente, letra “c”). El tratamiento T2 (refrigeración) es intermedio (letra “b”).

7.2. Duncan

Ejemplo de interpretación:

La prueba de Duncan agrupa los tratamientos en tres categorías: T3, T4 y T5 forman el grupo “a” (mejor preservación), T2 forma el grupo “b” (preservación moderada), y T1 forma el grupo “c” (menor preservación). Duncan es más liberal que Tukey y puede detectar diferencias adicionales.

7.3. Dunnett

Ejemplo de interpretación:

La prueba de Dunnett indica que T2, T3, T4 y T5 difieren significativamente del control T1 (p < 0.05). Esto confirma que los métodos de conservación en frío preservan mejor la vitamina C que el almacenamiento a temperatura ambiente.


8. ¿Cuál prueba elegir?

Situación Prueba recomendada
No hay control definido Tukey HSD
Interesan todas las comparaciones Tukey HSD
Se quiere mayor poder (más diferencias) Duncan
Hay un control claro (placebo, estándar) Dunnett
Solo importan las diferencias vs. control Dunnett
Presentación con letras agrupadas Duncan o Tukey con cld()

9. Exportar resultados

# ============================================================
# 10. EXPORTAR RESULTADOS A EXCEL
# ============================================================

# Descriptivos
write.xlsx(
  descriptivos,
  file = "descriptivos_vitamina_c.xlsx",
  sheetName = "Descriptivos",
  rowNames = FALSE
)

# Tukey
write.xlsx(
  as.data.frame(tukey_emm),
  file = "tukey_resultados.xlsx",
  sheetName = "Tukey",
  rowNames = FALSE
)

# Duncan
write.xlsx(
  medias_duncan,
  file = "duncan_resultados.xlsx",
  sheetName = "Duncan",
  rowNames = FALSE
)

# Dunnett
write.xlsx(
  as.data.frame(dunnett_emm),
  file = "dunnett_resultados.xlsx",
  sheetName = "Dunnett",
  rowNames = FALSE
)

11. Reflexión final

Las pruebas de comparación múltiple son herramientas que deben usarse con criterio:

  • No se deben aplicar si el ANOVA no es significativo (salvo fines exploratorios).
  • No se deben elegir después de ver los resultados (debe decidirse antes).
  • se debe justificar la elección de la prueba en el informe.
  • se debe interpretar en contexto científico, no solo estadístico.

La pregunta clave no es:

¿Qué prueba da más diferencias significativas?

Sino:

¿Qué prueba responde mejor a la pregunta de investigación?

[^14_10]6[^14_12]78910[^14_17]11[^14_8]12


  1. https://metricgate.com/blogs/dunnetts-test-vs-tukey/↩︎

  2. https://casrai.org/guides/dunnetts-test-comparisons-against-a-control↩︎

  3. https://metricgate.com/blogs/dunnetts-test-vs-tukey/↩︎

  4. https://www.scribd.com/document/1026583622/Duncans-Multiple-Range-Test-Assignment↩︎

  5. https://casrai.org/guides/dunnetts-test-comparisons-against-a-control↩︎

  6. https://www.scribd.com/document/922355704/MULTIPLE-COMPARISON-TESTS↩︎

  7. https://ami.info.umfcluj.ro/index.php/AMI/article/download/1218/1087↩︎

  8. https://rpubs.com/Alberto_Huamayalli/1367839↩︎

  9. https://casrai.org/guides/one-way-anova-in-spss↩︎

  10. https://help.displayr.com/hc/en-us/articles/360004117016-How-to-Apply-Significance-Testing-in-Displayr↩︎

  11. https://www.scielo.org.mx/scielo.php?script=sci_arttext\&pid=S0187-893X2021000200074↩︎

  12. https://www.ncss.com/wp-content/themes/ncss/pdf/Procedures/PASS/Dunnetts_Multiple_Comparison_Tests_of_Treatments_vs_a_Control-Proportions.pdf↩︎