Incorporar ggstatsplot al plan de la Asignatura Diseño Experimental

¿Es posible incorporar en el curso de diseño experimental el uso del paquete ggstatsplot?

Sí, es posible y muy conveniente incorporar ggstatsplot —ese es el nombre correcto del paquete— en el curso de Diseño Experimental.

ggstatsplot integra gráficos construidos con ggplot2 y resultados estadísticos dentro de una misma visualización: prueba de hipótesis, valor p, tamaño del efecto, intervalos de confianza y comparaciones múltiples. La versión actual en CRAN es 1.0.0, publicada el 23 de abril de 2026, y requiere R 4.3.0 o superior. (R Archive Network)

¿Por qué sería valioso en el curso?

El paquete puede servir como puente entre tres componentes que usted ya desarrolla:

  1. Exploración visual de los datos.
  2. Análisis inferencial mediante ANOVA y pruebas relacionadas.
  3. Comunicación e interpretación de resultados.

Por ejemplo, ggbetweenstats() permite comparar una variable cuantitativa entre varios tratamientos, mostrando simultáneamente:

  • distribución de las observaciones;
  • diagramas de caja y violín;
  • valores individuales;
  • tamaño de muestra;
  • resultado global del ANOVA;
  • tamaño del efecto;
  • comparaciones múltiples entre tratamientos.

La documentación oficial señala precisamente que esta función está destinada a explorar diferencias entre grupos o condiciones y comparar visualmente sus distribuciones. (Indrajeet Patil)

Lugar recomendado dentro del curso

No sugiero convertirlo en un tema independiente extenso, sino incorporarlo transversalmente.

Tema del curso Función sugerida Aplicación
Exploración inicial gghistostats() Distribución de la variable respuesta
Diseño completamente aleatorizado ggbetweenstats() Comparación visual de tratamientos
Comparaciones múltiples ggbetweenstats() Diferencias pareadas ajustadas
Diseños con bloques grouped_ggbetweenstats() Comparaciones separadas por bloque
Medidas repetidas ggwithinstats() Comparaciones dentro de la misma unidad experimental
Correlación entre variables ggscatterstats() Relación entre variables cuantitativas
Matriz de correlaciones ggcorrmat() Exploración previa a regresión o RSM
Modelos ajustados ggcoefstats() Visualización de coeficientes y efectos

El paquete admite enfoques paramétricos, no paramétricos, robustos y bayesianos, lo cual también permite mostrar a los estudiantes que el ANOVA clásico no es la única alternativa analítica. (R Archive Network)


Ejemplo 1: diseño completamente aleatorizado

Supongamos un experimento agroindustrial con cuatro temperaturas de secado y una variable respuesta correspondiente al porcentaje de humedad final.

# Instalar una sola vez
install.packages("ggstatsplot")

# Cargar paquetes
library(ggstatsplot)
library(ggplot2)

# Datos simulados
set.seed(123)

datos_secado <- data.frame(
  temperatura = factor(
    rep(c("40 °C", "50 °C", "60 °C", "70 °C"), each = 8)
  ),
  humedad = c(
    rnorm(8, mean = 18, sd = 1.5),
    rnorm(8, mean = 15, sd = 1.4),
    rnorm(8, mean = 12, sd = 1.2),
    rnorm(8, mean = 10, sd = 1.1)
  )
)

# Gráfico con ANOVA y comparaciones múltiples
ggbetweenstats(
  data = datos_secado,
  x = temperatura,
  y = humedad,
  type = "parametric",
  pairwise.display = "significant",
  p.adjust.method = "tukey",
  centrality.plotting = TRUE,
  title = "Efecto de la temperatura sobre la humedad final",
  xlab = "Temperatura de secado",
  ylab = "Humedad final (%)"
)

¿Qué aprenderían los estudiantes?

A partir del gráfico deberían identificar:

  • cuál tratamiento presenta mayor o menor respuesta;
  • dispersión dentro de cada tratamiento;
  • presencia de observaciones extremas;
  • resultado de la prueba global;
  • magnitud del efecto del tratamiento;
  • tratamientos que presentan diferencias estadísticamente significativas;
  • diferencia entre significancia estadística y relevancia práctica.

Sin embargo, el estudiante también debe construir explícitamente el modelo:

# Modelo de análisis de varianza
modelo_dca <- aov(humedad ~ temperatura, data = datos_secado)

# Tabla ANOVA
summary(modelo_dca)

# Comparaciones múltiples de Tukey
TukeyHSD(modelo_dca)

De esta manera, ggstatsplot complementa el análisis, pero no reemplaza la formulación del modelo.


Ejemplo 2: análisis no paramétrico

Cuando los supuestos del ANOVA no se cumplen razonablemente, puede utilizarse:

ggbetweenstats(
  data = datos_secado,
  x = temperatura,
  y = humedad,
  type = "nonparametric",
  pairwise.display = "significant",
  p.adjust.method = "holm",
  title = "Comparación no paramétrica de temperaturas",
  xlab = "Temperatura",
  ylab = "Humedad final (%)"
)

En este caso, el gráfico utiliza una alternativa no paramétrica para la comparación global y las comparaciones pareadas correspondientes.

Esto permitiría plantear una actividad pedagógica muy valiosa:

Analice los mismos datos mediante un enfoque paramétrico y uno no paramétrico. Compare las conclusiones, los tamaños del efecto y las diferencias entre tratamientos.


Ejemplo 3: diseños con un segundo factor

En un experimento factorial, puede visualizarse la respuesta de un factor dentro de cada nivel del segundo factor.

set.seed(456)

datos_factorial <- expand.grid(
  temperatura = factor(c("50 °C", "60 °C", "70 °C")),
  tiempo = factor(c("2 h", "4 h")),
  repeticion = 1:6
)

datos_factorial$rendimiento <- with(
  datos_factorial,
  70 +
    5 * as.numeric(temperatura) +
    3 * as.numeric(tiempo) +
    2 * as.numeric(temperatura) * as.numeric(tiempo) +
    rnorm(nrow(datos_factorial), 0, 2)
)

grouped_ggbetweenstats(
  data = datos_factorial,
  x = temperatura,
  y = rendimiento,
  grouping.var = tiempo,
  type = "parametric",
  pairwise.display = "significant",
  title.prefix = "Tiempo de secado:"
)

Este gráfico puede ayudar a estudiar visualmente cómo cambia el efecto de la temperatura según el tiempo de secado.

No obstante, la interacción debe evaluarse con el modelo factorial:

modelo_factorial <- aov(
  rendimiento ~ temperatura * tiempo,
  data = datos_factorial
)

summary(modelo_factorial)

Precaución importante

grouped_ggbetweenstats() realiza análisis separados dentro de cada grupo. Por tanto, no sustituye la prueba formal de interacción del modelo factorial.

La secuencia correcta sería:

  1. Ajustar el modelo factorial.
  2. Evaluar la interacción.
  3. Examinar los efectos simples cuando corresponda.
  4. Utilizar ggstatsplot para comunicar visualmente las comparaciones.

Limitaciones dentro de Diseño Experimental

ggstatsplot es excelente para visualización inferencial, pero no debe utilizarse como sustituto de:

  • definición de la unidad experimental;
  • aleatorización;
  • estructura de tratamientos;
  • identificación de factores fijos y aleatorios;
  • formulación del modelo lineal;
  • tabla ANOVA;
  • análisis de residuos;
  • verificación de independencia;
  • homogeneidad de varianzas;
  • interpretación de interacciones;
  • modelos mixtos;
  • diseños factoriales fraccionados;
  • superficie de respuesta;
  • análisis de puntos estacionarios;
  • construcción de gráficos de contorno.

Para diseños más especializados seguirían siendo necesarios paquetes como:

library(DoE.base)
library(FrF2)
library(rsm)
library(emmeans)
library(multcomp)
library(car)
library(performance)

Especialmente en superficie de respuesta, ggstatsplot tendría un papel secundario. El paquete rsm continuaría siendo el instrumento principal para ajustar modelos de primer y segundo orden, realizar análisis canónico y estudiar trayectorias de máximo ascenso.


Propuesta de incorporación curricular

Sugiero agregar una unidad transversal denominada:

Visualización estadística inferencial con ggstatsplot

Resultado de aprendizaje

El estudiante construye, interpreta y comunica visualizaciones estadísticas que integran la distribución de los datos, las pruebas de hipótesis, los tamaños del efecto, los intervalos de confianza y las comparaciones múltiples, sin desligarlas del diseño experimental ni del modelo estadístico correspondiente.

Contenidos

  • Visualización de distribuciones por tratamientos.
  • ANOVA gráfico para un factor.
  • Comparaciones múltiples.
  • Tamaños del efecto.
  • Métodos paramétricos, robustos y no paramétricos.
  • Visualización de datos agrupados.
  • Comunicación gráfica de resultados.
  • Diferencia entre exploración gráfica y confirmación mediante modelos.

Actividad evaluativa sugerida

Entregar a cada estudiante un conjunto de datos experimental diferente y solicitar:

  1. Identificación del diseño.
  2. Formulación del modelo.
  3. Análisis exploratorio.
  4. Verificación de supuestos.
  5. Tabla ANOVA.
  6. Comparaciones múltiples.
  7. Gráfico con ggstatsplot.
  8. Interpretación del tamaño del efecto.
  9. Conclusión técnica.
  10. Defensa oral breve de las decisiones estadísticas.

Recomendación final

Sí lo incorporaría, particularmente en:

  • diseño completamente aleatorizado;
  • comparación de tratamientos;
  • métodos no paramétricos;
  • tamaños del efecto;
  • comunicación de resultados.

Su mayor aporte pedagógico sería ayudar a los estudiantes a abandonar la práctica de informar únicamente:

“Como el valor p es menor que 0,05, existen diferencias significativas”.

En su lugar, los conduciría a interpretar conjuntamente:

  • forma de las distribuciones;
  • variabilidad experimental;
  • magnitud de las diferencias;
  • incertidumbre;
  • tamaño del efecto;
  • comparaciones específicas;
  • relevancia práctica o ingenieril.

Así, ggstatsplot encaja muy bien con el enfoque del curso: no solo ejecutar pruebas estadísticas, sino comprender, interpretar y comunicar adecuadamente los resultados experimentales.