Análisis de un experimento factorial 3×3 sobre friabilidad
En este trabajo vamos a estudiar un experimento donde se busca conocer cómo cambia la friabilidad al utilizar diferentes tipos de almidón y distintas cantidades. Escogimos este ejemplo porque nos permite entender mejor cómo se pueden analizar dos factores al mismo tiempo y cómo estos pueden influir en un mismo resultado.
Para realizar el análisis utilizamos RStudio e InfoStat. Durante el proceso revisamos los datos, hicimos gráficos y aplicamos algunas pruebas estadísticas para conocer si las diferencias encontradas eran importantes.
Lo que buscamos es saber si el tipo de almidón y la cantidad utilizada producen cambios en la friabilidad. También queremos comprobar si los dos factores se relacionan entre sí, es decir, si el resultado de una cantidad puede cambiar dependiendo del tipo de almidón que se utilice.
En el experimento se trabajó con dos factores:
Tipo de almidón: pregelatinizado, almidón y dextrina.
Cantidad: 26, 30 y 40.
Al combinar estos niveles se obtienen nueve tratamientos. Cada uno tiene cuatro repeticiones, por lo que en total contamos con 36 observaciones.
La característica que se midió fue la friabilidad, que es la variable que vamos a analizar para comparar los resultados.
| Tratamiento | Tipo de almidón | Cantidad | Repeticiones |
|---|---|---|---|
| T1 | Pregelatinizado | 26 | 4 |
| T2 | Pregelatinizado | 30 | 4 |
| T3 | Pregelatinizado | 40 | 4 |
| T4 | Almidón | 26 | 4 |
| T5 | Almidón | 30 | 4 |
| T6 | Almidón | 40 | 4 |
| T7 | Dextrina | 26 | 4 |
| T8 | Dextrina | 30 | 4 |
| T9 | Dextrina | 40 | 4 |
| Total | 3 tipos | 3 cantidades | 36 |
Se trabajó con un diseño completamente al azar (DCA), donde los tratamientos se distribuyeron de manera aleatoria. Esto quiere decir que no se organizaron por bloques, sino que cada unidad experimental tuvo la posibilidad de recibir cualquiera de los tratamientos.
Para organizar el experimento se realizó una distribución aleatoria de los nueve tratamientos, teniendo en cuenta que cada uno debía aparecer cuatro veces. Para representar esta distribución se utilizó un croquis de 6 filas por 6 columnas, que nos permite observar las 36 unidades experimentales.
Las filas y columnas solamente representan la ubicación de cada unidad. No son bloques, ya que el experimento se trabajó mediante un diseño completamente al azar.
croquis <- matrix(c(
"T8", "T4", "T4", "T1", "T3", "T5",
"T6", "T3", "T2", "T5", "T9", "T8",
"T7", "T5", "T3", "T9", "T2", "T2",
"T8", "T7", "T7", "T6", "T1", "T1",
"T8", "T6", "T6", "T3", "T4", "T7",
"T1", "T9", "T4", "T5", "T9", "T2"
), nrow = 6, byrow = TRUE)
knitr::kable(
croquis,
caption = "Distribución aleatoria de los tratamientos"
)
| T8 | T4 | T4 | T1 | T3 | T5 |
| T6 | T3 | T2 | T5 | T9 | T8 |
| T7 | T5 | T3 | T9 | T2 | T2 |
| T8 | T7 | T7 | T6 | T1 | T1 |
| T8 | T6 | T6 | T3 | T4 | T7 |
| T1 | T9 | T4 | T5 | T9 | T2 |
Antes de comenzar con las pruebas estadísticas, organizamos los datos en una tabla. Para cada observación registramos el tipo de almidón, la cantidad utilizada, la repetición y el valor de friabilidad.
Esta organización nos permitió trabajar con los datos tanto en RStudio como en InfoStat y realizar las comparaciones entre los nueve tratamientos.
# Mostrar las primeras observaciones
head(datos)
## Tipo Cantidad Repeticion Friabilidad
## 1 Pregelatinizado 26 1 0.7782
## 2 Pregelatinizado 26 2 0.7654
## 3 Pregelatinizado 26 3 0.7592
## 4 Pregelatinizado 26 4 0.7758
## 5 Pregelatinizado 30 1 0.4272
## 6 Pregelatinizado 30 2 0.4336
# Consultar el tamaño de la base de datos
dim(datos)
## [1] 36 4
# Revisar los nombres de las columnas
names(datos)
## [1] "Tipo" "Cantidad" "Repeticion" "Friabilidad"
Después de organizar los datos, realizamos el análisis de varianza para conocer si el tipo de almidón, la cantidad utilizada o la combinación de ambos producen cambios en la friabilidad.
Esta prueba nos ayuda a saber si las diferencias que observamos entre los tratamientos son suficientemente importantes desde el punto de vista estadístico.
# Construir el modelo factorial
modelo <- aov(Friabilidad ~ Tipo * Cantidad, data = datos)
# Mostrar la tabla ANOVA
summary(modelo)
## Df Sum Sq Mean Sq F value Pr(>F)
## Tipo 2 0.5705 0.28523 896.4 < 2e-16 ***
## Cantidad 2 0.5716 0.28580 898.2 < 2e-16 ***
## Tipo:Cantidad 4 0.1401 0.03502 110.1 2.64e-16 ***
## Residuals 27 0.0086 0.00032
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Al observar la tabla ANOVA podemos ver que los tres resultados presentan valores de p muy pequeños, menores al nivel de significancia de 0,05. Esto quiere decir que existen diferencias importantes en la friabilidad según el tipo de almidón, la cantidad utilizada y la combinación de estos dos factores.
Un resultado que llama bastante la atención es la interacción entre el tipo de almidón y la cantidad. Esto nos indica que el comportamiento de la friabilidad no es igual para todos los tipos de almidón cuando cambia la cantidad. Por eso, no sería suficiente analizar cada factor por separado, también debemos observar qué sucede con cada combinación de tratamientos.
Después de encontrar diferencias en el ANOVA, realizamos la prueba de Tukey para comparar los tratamientos entre sí. Esta prueba nos permite identificar cuáles combinaciones presentan diferencias en sus valores de friabilidad.
La idea es no quedarnos solamente con saber que existen diferencias, sino también conocer entre qué tratamientos se presentan.
prueba_tukey <- TukeyHSD(modelo, which = "Tipo:Cantidad")
prueba_tukey
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Friabilidad ~ Tipo * Cantidad, data = datos)
##
## $`Tipo:Cantidad`
## diff lwr upr
## Dextrina:26-Almidon:26 0.070100 0.027659301 0.112540699
## Pregelatinizado:26-Almidon:26 -0.036525 -0.078965699 0.005915699
## Almidon:30-Almidon:26 -0.154175 -0.196615699 -0.111734301
## Dextrina:30-Almidon:26 -0.010475 -0.052915699 0.031965699
## Pregelatinizado:30-Almidon:26 -0.357900 -0.400340699 -0.315459301
## Almidon:40-Almidon:26 0.146450 0.104009301 0.188890699
## Dextrina:40-Almidon:26 0.360175 0.317734301 0.402615699
## Pregelatinizado:40-Almidon:26 -0.109950 -0.152390699 -0.067509301
## Pregelatinizado:26-Dextrina:26 -0.106625 -0.149065699 -0.064184301
## Almidon:30-Dextrina:26 -0.224275 -0.266715699 -0.181834301
## Dextrina:30-Dextrina:26 -0.080575 -0.123015699 -0.038134301
## Pregelatinizado:30-Dextrina:26 -0.428000 -0.470440699 -0.385559301
## Almidon:40-Dextrina:26 0.076350 0.033909301 0.118790699
## Dextrina:40-Dextrina:26 0.290075 0.247634301 0.332515699
## Pregelatinizado:40-Dextrina:26 -0.180050 -0.222490699 -0.137609301
## Almidon:30-Pregelatinizado:26 -0.117650 -0.160090699 -0.075209301
## Dextrina:30-Pregelatinizado:26 0.026050 -0.016390699 0.068490699
## Pregelatinizado:30-Pregelatinizado:26 -0.321375 -0.363815699 -0.278934301
## Almidon:40-Pregelatinizado:26 0.182975 0.140534301 0.225415699
## Dextrina:40-Pregelatinizado:26 0.396700 0.354259301 0.439140699
## Pregelatinizado:40-Pregelatinizado:26 -0.073425 -0.115865699 -0.030984301
## Dextrina:30-Almidon:30 0.143700 0.101259301 0.186140699
## Pregelatinizado:30-Almidon:30 -0.203725 -0.246165699 -0.161284301
## Almidon:40-Almidon:30 0.300625 0.258184301 0.343065699
## Dextrina:40-Almidon:30 0.514350 0.471909301 0.556790699
## Pregelatinizado:40-Almidon:30 0.044225 0.001784301 0.086665699
## Pregelatinizado:30-Dextrina:30 -0.347425 -0.389865699 -0.304984301
## Almidon:40-Dextrina:30 0.156925 0.114484301 0.199365699
## Dextrina:40-Dextrina:30 0.370650 0.328209301 0.413090699
## Pregelatinizado:40-Dextrina:30 -0.099475 -0.141915699 -0.057034301
## Almidon:40-Pregelatinizado:30 0.504350 0.461909301 0.546790699
## Dextrina:40-Pregelatinizado:30 0.718075 0.675634301 0.760515699
## Pregelatinizado:40-Pregelatinizado:30 0.247950 0.205509301 0.290390699
## Dextrina:40-Almidon:40 0.213725 0.171284301 0.256165699
## Pregelatinizado:40-Almidon:40 -0.256400 -0.298840699 -0.213959301
## Pregelatinizado:40-Dextrina:40 -0.470125 -0.512565699 -0.427684301
## p adj
## Dextrina:26-Almidon:26 0.0002067
## Pregelatinizado:26-Almidon:26 0.1343192
## Almidon:30-Almidon:26 0.0000000
## Dextrina:30-Almidon:26 0.9947494
## Pregelatinizado:30-Almidon:26 0.0000000
## Almidon:40-Almidon:26 0.0000000
## Dextrina:40-Almidon:26 0.0000000
## Pregelatinizado:40-Almidon:26 0.0000001
## Pregelatinizado:26-Dextrina:26 0.0000002
## Almidon:30-Dextrina:26 0.0000000
## Dextrina:30-Dextrina:26 0.0000242
## Pregelatinizado:30-Dextrina:26 0.0000000
## Almidon:40-Dextrina:26 0.0000572
## Dextrina:40-Dextrina:26 0.0000000
## Pregelatinizado:40-Dextrina:26 0.0000000
## Almidon:30-Pregelatinizado:26 0.0000000
## Dextrina:30-Pregelatinizado:26 0.5152271
## Pregelatinizado:30-Pregelatinizado:26 0.0000000
## Almidon:40-Pregelatinizado:26 0.0000000
## Dextrina:40-Pregelatinizado:26 0.0000000
## Pregelatinizado:40-Pregelatinizado:26 0.0001042
## Dextrina:30-Almidon:30 0.0000000
## Pregelatinizado:30-Almidon:30 0.0000000
## Almidon:40-Almidon:30 0.0000000
## Dextrina:40-Almidon:30 0.0000000
## Pregelatinizado:40-Almidon:30 0.0362984
## Pregelatinizado:30-Dextrina:30 0.0000000
## Almidon:40-Dextrina:30 0.0000000
## Dextrina:40-Dextrina:30 0.0000000
## Pregelatinizado:40-Dextrina:30 0.0000006
## Almidon:40-Pregelatinizado:30 0.0000000
## Dextrina:40-Pregelatinizado:30 0.0000000
## Pregelatinizado:40-Pregelatinizado:30 0.0000000
## Dextrina:40-Almidon:40 0.0000000
## Pregelatinizado:40-Almidon:40 0.0000000
## Pregelatinizado:40-Dextrina:40 0.0000000
Con esta prueba pudimos comparar los nueve tratamientos y observar cuáles presentan diferencias en la friabilidad. Los resultados muestran que no todas las combinaciones se comportan de la misma manera.
Por ejemplo, al comparar Dextrina con cantidad 26 y Almidón con cantidad 26 encontramos una diferencia significativa. En cambio, al comparar Pregelatinizado con cantidad 26 y Almidón con cantidad 26, no encontramos una diferencia estadísticamente significativa.
Esto nos permite entender mejor los resultados del experimento, ya que podemos identificar cuáles combinaciones presentan diferencias y cuáles tienen valores más parecidos.
También realizamos la prueba de Fisher para comparar los tratamientos. Esta prueba nos permite observar cuáles combinaciones presentan diferencias en sus resultados.
A diferencia de Tukey, Fisher es una prueba menos estricta al momento de realizar las comparaciones. Por eso, es interesante revisar si ambas pruebas llegan a resultados parecidos.
comparacion_fisher <- pairwise.t.test(
datos$Friabilidad,
interaction(datos$Tipo, datos$Cantidad),
p.adjust.method = "none",
pool.sd = TRUE
)
comparacion_fisher
##
## Pairwise comparisons using t tests with pooled SD
##
## data: datos$Friabilidad and interaction(datos$Tipo, datos$Cantidad)
##
## Almidon.26 Dextrina.26 Pregelatinizado.26 Almidon.30
## Dextrina.26 6.8e-06 - - -
## Pregelatinizado.26 0.0074 4.6e-09 - -
## Almidon.30 1.6e-12 < 2e-16 6.2e-10 -
## Dextrina.30 0.4136 7.7e-07 0.0486 8.1e-12
## Pregelatinizado.30 < 2e-16 < 2e-16 < 2e-16 2.1e-15
## Almidon.40 5.3e-12 1.8e-06 2.9e-14 < 2e-16
## Dextrina.40 < 2e-16 < 2e-16 < 2e-16 < 2e-16
## Pregelatinizado.40 2.5e-09 4.2e-14 3.4e-06 0.0016
## Dextrina.30 Pregelatinizado.30 Almidon.40 Dextrina.40
## Dextrina.26 - - - -
## Pregelatinizado.26 - - - -
## Almidon.30 - - - -
## Dextrina.30 - - - -
## Pregelatinizado.30 < 2e-16 - - -
## Almidon.40 1.1e-12 < 2e-16 - -
## Dextrina.40 < 2e-16 < 2e-16 6.5e-16 -
## Pregelatinizado.40 1.8e-08 < 2e-16 < 2e-16 < 2e-16
##
## P value adjustment method: none
Con la prueba de Fisher pudimos comparar los diferentes tratamientos y observar que la mayoría presentan diferencias significativas. Esto nos muestra que los cambios en el tipo de almidón y la cantidad utilizada tienen relación con los valores de friabilidad.
Al comparar estos resultados con los de Tukey, podemos notar que Fisher es menos estricta y puede detectar diferencias que Tukey no considera significativas. Por eso es importante tener en cuenta las dos pruebas, aunque Tukey será nuestra referencia principal para comparar los tratamientos.
Para entender mejor los resultados realizamos un gráfico de interacción. Este gráfico nos permite observar cómo cambia la friabilidad al aumentar o disminuir la cantidad utilizada para cada tipo de almidón.
Es una parte importante del trabajo porque nos ayuda a visualizar lo que encontramos en el ANOVA y a entender por qué la combinación de los dos factores influye en los resultados.
interaction.plot(
x.factor = datos$Cantidad,
trace.factor = datos$Tipo,
response = datos$Friabilidad,
fun = mean,
type = "b",
pch = 19,
col = c("blue", "red", "darkgreen"),
xlab = "Cantidad",
ylab = "Friabilidad media",
trace.label = "Tipo de almidón",
main = "Interacción entre tipo y cantidad"
)
Al observar el gráfico podemos notar que los tres tipos de almidón no tienen el mismo comportamiento cuando cambia la cantidad. La dextrina presenta los valores más altos de friabilidad, especialmente cuando se utiliza la cantidad de 40. Por otro lado, el almidón pregelatinizado muestra el valor más bajo cuando se utiliza la cantidad de 30.
También podemos ver que las tres líneas tienen diferentes cambios entre una cantidad y otra. Esto nos ayuda a comprender que el efecto de la cantidad depende del tipo de almidón utilizado. En otras palabras, no todos los materiales reaccionan de la misma manera.
Este resultado coincide con el ANOVA, donde encontramos una interacción significativa entre los dos factores.
Después de realizar el ANOVA, también debemos revisar si el modelo cumple con sus requisitos. Para esto vamos a comprobar si los residuos tienen una distribución normal.
Utilizamos la prueba de Shapiro-Wilk, que nos ayuda a identificar si existen diferencias importantes respecto a una distribución normal.
residuos <- residuals(modelo)
shapiro.test(residuos)
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.95663, p-value = 0.1689
También necesitamos revisar si la variación de los datos es parecida entre los diferentes tratamientos. Para esto utilizamos la prueba de Levene.
Esta prueba nos ayuda a comprobar si las diferencias entre las varianzas son suficientemente pequeñas para considerar que se cumple este requisito del ANOVA.
car::leveneTest(
Friabilidad ~ interaction(Tipo, Cantidad),
data = datos
)
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 8 0.5705 0.7925
## 27
Además de las pruebas anteriores, también realizamos unos gráficos para observar cómo se comportan los residuos. Esto nos permite revisar visualmente si existen patrones que puedan afectar los resultados del experimento.
Con estos gráficos buscamos comprobar que los errores se distribuyan de manera adecuada y que no presenten comportamientos extraños.
par(mfrow = c(1, 2))
plot(modelo, which = 1)
plot(modelo, which = 2)
par(mfrow = c(1, 1))
En el gráfico de residuos frente a valores ajustados, los puntos se distribuyen alrededor de cero y no se observa una tendencia muy marcada. Sin embargo, aparecen algunos residuos más alejados, por lo que es importante tenerlos en cuenta.
En el gráfico Q-Q, la mayoría de los puntos sigue aproximadamente la línea diagonal, aunque se presentan algunas pequeñas desviaciones en los extremos. Esto indica que los residuos tienen un comportamiento cercano a la normalidad.
Estos resultados coinciden con las pruebas realizadas anteriormente: Shapiro-Wilk (p = 0,1689) y Levene (p = 0,7925). Como ambos valores son mayores que 0,05, no encontramos evidencia suficiente para rechazar los supuestos de normalidad y homogeneidad de varianzas.
El R² fue de 0,9933 (99,33 %), lo que indica que el modelo explica gran parte de la variación de la friabilidad. El R² ajustado fue de 99,14 %.
El coeficiente de variación fue de 2,24 %, mostrando una baja variabilidad experimental. En general, el modelo presenta un buen ajuste a los datos.
R2 <- summary.lm(modelo)$r.squared
R2_ajustado <- summary.lm(modelo)$adj.r.squared
CV <- 100 * sqrt(deviance(modelo) /
df.residual(modelo)) / mean(datos$Friabilidad)
R2
## [1] 0.9933438
R2_ajustado
## [1] 0.9913715
CV
## [1] 2.241209
El ANOVA mostró que el tipo de almidón, la cantidad y su interacción influyen significativamente en la friabilidad. La menor media se obtuvo con Pregelatinizado-30 (0,45) y la mayor con Dextrina-40 (1,17).
El modelo presentó un buen ajuste (R² = 99,33 %) y baja variabilidad experimental (CV = 2,24 %).
Gutiérrez Pulido, H., & De la Vara Salazar, R. (2008). Análisis y diseño de experimentos (2.ª ed.). McGraw-Hill.
R Core Team. (2026). R: A language and environment for statistical computing. R Foundation for Statistical Computing. https://www.R-project.org/
Posit Software, PBC. (s. f.). RStudio IDE. https://posit.co/products/open-source/rstudio/
OpenAI. (2026). ChatGPT [Modelo de lenguaje de inteligencia artificial]. https://chatgpt.com/