Un experimento es una prueba o serie de pruebas en las que se realizan cambios deliberados en las variables de entrada de un proceso o sistema para observar los cambios en la variable de respuesta.
El diseño de experimentos es el proceso de planificar el experimento de forma que los datos recolectados puedan analizarse con métodos estadísticos, lo que permite llegar a conclusiones válidas y objetivas.
Puntos clave: - Incluye dos aspectos fundamentales: 1. Diseño del experimento (cómo se ejecuta) 2. Análisis estadístico (cómo se interpretan los resultados) - Ambos están estrechamente relacionados, ya que el método de análisis depende del diseño empleado.
Variables del proceso a las que se les pueden fijar niveles intencionalmente.
Variables del proceso que no se pueden manipular, pero que pueden afectar la respuesta del experimento.
Medida utilizada para evaluar el efecto de cada prueba experimental.
Valores asignados a cada factor estudiado.
Combinación de niveles de todos los factores involucrados.
Variabilidad observada que no se puede explicar por los factores estudiados.
Parte del error aleatorio que proviene de errores en la planeación o ejecución del experimento.
Definición: Repetición del experimento básico bajo las mismas condiciones.
Propósitos: - Estimar el error experimental. - Aumentar la precisión de las conclusiones.
Ejemplo:
Si se tratan 5 muestras con templado en aceite y 5 con
templado en agua salada, se tienen 5
réplicas de cada tratamiento.
Definición: Asignar el material experimental y el orden de las corridas al azar.
Propósitos: - Garantizar que las observaciones sean independientes. - Minimizar el efecto de factores no controlados. - Evitar sesgos sistemáticos.
Beneficio clave:
Hace válido el uso de métodos estadísticos al cumplir el supuesto de
independencia de errores.
Definición: Agrupar las unidades experimentales en bloques internamente homogéneos.
Propósitos: - Reducir la variabilidad causada por factores perturbadores. - Mejorar la precisión en la comparación entre tratamientos.
Ejemplo:
Si el experimento requiere usar dos lotes de materia
prima que podrían ser diferentes, se pueden formar
bloques para controlar esa variabilidad y no afectar el
análisis principal.
Para garantizar que el diseño experimental sea válido y genere conclusiones confiables, se recomienda seguir la siguiente secuencia de pasos:
Antes de iniciar con el análisis de experimentos, es importante conocer R y RStudio, las herramientas que utilizaremos durante el curso.
Podemos usar R como una calculadora. Prueba los siguientes comandos:
## [1] 5
## [1] 6
## [1] 30
## [1] 5
## [1] 8
## [1] 15
## [1] 50
El directorio de trabajo es la carpeta donde R busca y guarda archivos.
## [1] "C:/Users/LaboratorioCIDSE/Downloads"
# Cambiar el directorio de trabajo (reemplazar por la ruta deseada)
# setwd("C:/Users/TuUsuario/Documentos/MiProyecto")Los paquetes amplían las funciones de R. Para instalar y usar un paquete:
A continuación se presenta un listado de las librerías más utilizadas en R para el análisis de datos, junto con una breve descripción de su propósito principal.
| Librería | Descripción |
|---|---|
| tidyverse | Conjunto de paquetes (dplyr, ggplot2, tidyr, readr, tibble, stringr, forcats) que facilitan la manipulación, visualización y análisis de datos de manera coherente y eficiente. |
| dplyr | Parte de tidyverse, diseñada para la manipulación de datos (seleccionar, filtrar, agrupar, resumir, ordenar) de forma muy intuitiva. |
| ggplot2 | Librería para visualización de datos usando la gramática de gráficos. Permite crear gráficos personalizados y de alta calidad. |
| tidyr | Herramienta para limpieza y reestructuración de datos. Convierte datos de formato ancho a largo (y viceversa). |
| readr | Lectura rápida y eficiente de archivos de texto como CSV y TSV. |
| tibble | Crea marcos de datos (data frames) más modernos, limpios y fáciles de usar. |
| data.table | Similar a dplyr, pero optimizada para manejo de grandes volúmenes de datos con alta velocidad. |
| stringr | Facilita el trabajo con cadenas de texto (buscar, reemplazar, transformar). |
| lubridate | Manejo de fechas y horas de manera sencilla (conversiones, extracciones, operaciones). |
| readxl / writexl | Lectura y escritura de archivos Excel (.xls, .xlsx) sin necesidad de instalar Excel. |
| openxlsx | Otra opción muy usada para leer/escribir Excel con mayor personalización de hojas, estilos y formatos. |
| haven | Permite importar datos de SPSS, Stata y SAS a R. |
| janitor | Utilidad para limpiar nombres de variables y crear tablas de frecuencias rápidas. |
| skimr | Muestra un resumen estadístico rápido de todas las variables de un data frame. |
| car | Conjunto de funciones para análisis estadístico avanzado y regresión. |
| caret | Framework para machine learning, permite entrenar y evaluar modelos de forma unificada. |
| randomForest | Implementa el algoritmo de bosques aleatorios para clasificación y regresión. |
| shiny | Construcción de aplicaciones web interactivas directamente desde R. |
| plotly | Visualizaciones interactivas (gráficos dinámicos en HTML). |
| sf | Trabaja con datos espaciales (mapas, geolocalización). |
| cluster / factoextra | Métodos para análisis de conglomerados y su visualización. |
Las operaciones lógicas permiten comparar valores y filtrar datos.
## [1] FALSE
## [1] TRUE
## [1] TRUE
## [1] TRUE
## [1] FALSE
## [1] TRUE
R tiene varias estructuras para almacenar y manipular datos:
| Estructura | Descripción | Ejemplo |
|---|---|---|
| Vector | Colección de elementos del mismo tipo. | c(1, 2, 3, 4) |
| Matriz | Arreglo bidimensional con elementos del mismo tipo. | matrix(1:6, nrow=2) |
| Lista | Colección de elementos de distintos tipos. | list(nombre="Ana", edad=25) |
| Data Frame | Tabla de datos donde cada columna puede ser de distinto tipo. | data.frame(x=1:3, y=c("A","B","C")) |
| Factor | Variable categórica. | factor(c("M","F","M")) |
# Crear un vector con datos
pesos <- c(50, 55, 60, 65, 70)
# Calcular estadísticas
mean(pesos) # Media## [1] 60
## [1] 60
## [1] 7.905694
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 50 55 60 60 65 70
# Ejemplo práctico
mi_vector <- c(10, 20, 30)
mi_matriz <- matrix(1:6, nrow=2)
mi_lista <- list(nombre="Daniel", edad=22, notas=c(4.5, 3.8))
mi_df <- data.frame(Nombre=c("Ana","Luis"), Edad=c(20,25))Tip: R es sensible a mayúsculas y minúsculas, así que X y x son diferentes objetos.
Las funciones nos permiten automatizar tareas y reutilizar código.`
# Definir una función en R
suma_numeros <- function(a, b){
resultado <- a + b
return(resultado)
}
# Llamar a la función
suma_numeros(5, 10)## [1] 15
También existen funciones predefinidas en R, por ejemplo:
## [1] 20
## [1] 10
## [1] 3
R permite generar gráficos de manera sencilla con funciones base.
# Datos de ejemplo
x <- c(10, 20, 30, 40, 50)
y <- c(5, 15, 25, 35, 45)
# Gráfico de dispersión
plot(x, y, main="Gráfico de Dispersión", xlab="Eje X", ylab="Eje Y", col="blue", pch=19)También puedes usar ggplot2 para gráficos más personalizados:
library(ggplot2)
datos <- data.frame(x, y)
# Gráfico con ggplot2
ggplot(datos, aes(x, y)) +
geom_point(color="red", size=3) +
labs(title="Gráfico de Dispersión con ggplot2",
x="Eje X",
y="Eje Y")A continuación un recurso recomendado para profundizar en la Introducción a R y RStudio:
Un investigador desea comparar el efecto de tres
fertilizantes en el rendimiento de un cultivo de maíz.
Se cuenta con 12 parcelas homogéneas, y se asignan de
manera aleatoria los tres tratamientos, con 4 repeticiones cada uno.
Objetivo: Determinar si existen diferencias significativas entre los fertilizantes en cuanto al rendimiento.
Creamos el diseño completamente al azar:
set.seed(2025)
# Definir tratamientos y repeticiones
tratamientos <- c("Fert_A", "Fert_B", "Fert_C")
r <- 4 # 4 repeticiones por tratamiento
# Crear el diseño experimental
diseno <- data.frame(
Parcela = 1:(length(tratamientos) * r),
Tratamiento = rep(tratamientos, each = r)
)
# Reordenar aleatoriamente las parcelas
diseno <- diseno[sample(1:nrow(diseno)), ]
row.names(diseno) <- NULL
diseno## Parcela Tratamiento
## 1 12 Fert_C
## 2 4 Fert_A
## 3 10 Fert_C
## 4 1 Fert_A
## 5 7 Fert_B
## 6 6 Fert_B
## 7 3 Fert_A
## 8 2 Fert_A
## 9 9 Fert_C
## 10 11 Fert_C
## 11 5 Fert_B
## 12 8 Fert_B
Suponemos que el fertilizante C es el más efectivo. Simulamos los datos de rendimiento en toneladas por hectárea:
set.seed(2025)
diseno$Rendimiento <- c(
rnorm(r, mean = 8, sd = 0.5), # Fert_A
rnorm(r, mean = 9, sd = 0.5), # Fert_B
rnorm(r, mean = 10, sd = 0.5) # Fert_C
)
diseno## Parcela Tratamiento Rendimiento
## 1 12 Fert_C 8.310378
## 2 4 Fert_A 8.017821
## 3 10 Fert_C 8.386577
## 4 1 Fert_A 8.636245
## 5 7 Fert_B 9.185488
## 6 6 Fert_B 8.918573
## 7 3 Fert_A 9.198556
## 8 2 Fert_A 8.960005
## 9 9 Fert_C 9.827517
## 10 11 Fert_C 10.351076
## 11 5 Fert_B 9.802152
## 12 8 Fert_B 9.122473
El ANOVA (Análisis de Varianza) permite comparar varias medias al mismo tiempo para determinar si existen diferencias significativas entre tratamientos.
Analizamos si hay diferencias entre los fertilizantes.
## Df Sum Sq Mean Sq F value Pr(>F)
## Tratamiento 2 0.766 0.3829 0.785 0.485
## Residuals 9 4.391 0.4879
Conclusión: En este ejemplo, 𝑝= 0.485 > 0.05, por lo que no hay evidencia suficiente para afirmar que los tratamientos difieren. Las medias parecen ser estadísticamente iguales.
Si encontramos diferencias, identificamos cuáles fertilizantes son distintos.
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Rendimiento ~ Tratamiento, data = diseno)
##
## $Tratamiento
## diff lwr upr p adj
## Fert_B-Fert_A 0.55401470 -0.8249614 1.932991 0.5254496
## Fert_C-Fert_A 0.51573054 -0.8632456 1.894707 0.5695296
## Fert_C-Fert_B -0.03828416 -1.4172603 1.340692 0.9966942
Todas las líneas de comparación (B-Fert_A, C-Fert_A, C-Fert_B) cruzan el 0.
Por lo tanto: ninguna diferencia entre tratamientos es estadísticamente significativa al 95% de confianza.
Para interpretar mejor, generamos un boxplot:
boxplot(Rendimiento ~ Tratamiento,
data = diseno,
col = c("skyblue", "orange", "lightgreen"),
main = "Rendimiento por Fertilizante",
ylab = "Rendimiento (ton/ha)")El boxplot muestra que Fert_A tiende a producir el mayor rendimiento promedio, Fert_B presenta rendimientos intermedios y consistentes, y Fert_C ofrece rendimientos más bajos y variables.
Conclusión: El análisis muestra que, aunque el fertilizante Fert_A presentó el mayor rendimiento promedio en el cultivo de maíz, seguido de Fert_B y luego Fert_C, el ANOVA (𝑝=0.48) y la prueba de comparaciones múltiples de Tukey indican que no existen diferencias estadísticamente significativas entre los tratamientos, ya que todos los intervalos de confianza incluyen el valor cero. En consecuencia, los tres fertilizantes pueden considerarse estadísticamente equivalentes en cuanto a su efecto sobre el rendimiento; sin embargo, desde un punto de vista práctico, si los costos y la disponibilidad son similares, se recomienda Fert_A por mostrar la mayor productividad promedio.
En un centro de investigación se realiza un estudio para comparar varios tratamientos que, al aplicarse previamente a los frijoles crudos, reducen su tiempo de cocción. Estos tratamientos son a base de bicarbonato de sodio (NaHCO3) y cloruro de sodio o sal común (NaCl). El primer tratamiento es el de control, que consiste en no aplicar ningún tratamiento. El tratamiento T2 es el remojo en agua con bicarbonato de sodio, el T3 es remojar en agua con sal común y el T4 es remojar en agua con una combinación de ambos ingredientes en proporciones iguales. La variable de respuesta es el tiempo de cocción en minutos.
## # A tibble: 6 × 4
## Control T2 T3 T4
## <dbl> <dbl> <dbl> <dbl>
## 1 213 76 57 84
## 2 214 85 67 82
## 3 204 74 55 85
## 4 208 78 64 92
## 5 212 82 61 87
## 6 200 75 63 79
## # A tibble: 6 × 4
## Control T2 T3 T4
## <dbl> <dbl> <dbl> <dbl>
## 1 214 85 67 82
## 2 204 74 55 85
## 3 208 78 64 92
## 4 212 82 61 87
## 5 200 75 63 79
## 6 207 82 63 90
## [1] 7 4
## [1] "Control" "T2" "T3" "T4"
## tibble [7 × 4] (S3: tbl_df/tbl/data.frame)
## $ Control: num [1:7] 213 214 204 208 212 200 207
## $ T2 : num [1:7] 76 85 74 78 82 75 82
## $ T3 : num [1:7] 57 67 55 64 61 63 63
## $ T4 : num [1:7] 84 82 85 92 87 79 90
## Control T2 T3 T4
## Min. :200.0 Min. :74.00 Min. :55.00 Min. :79.00
## 1st Qu.:205.5 1st Qu.:75.50 1st Qu.:59.00 1st Qu.:83.00
## Median :208.0 Median :78.00 Median :63.00 Median :85.00
## Mean :208.3 Mean :78.86 Mean :61.43 Mean :85.57
## 3rd Qu.:212.5 3rd Qu.:82.00 3rd Qu.:63.50 3rd Qu.:88.50
## Max. :214.0 Max. :85.00 Max. :67.00 Max. :92.00
## Control T2 T3 T4
## 0 0 0 0
Problema: Los frijoles requieren tiempos prolongados de cocción, lo que implica mayor consumo de energía y tiempo en la preparación.
Objetivo: Evaluar el efecto de distintos tratamientos de remojo (ninguno, bicarbonato, sal común, y mezcla de ambos) sobre la reducción del tiempo de cocción (minutos) de los frijoles.
Factor estudiado: Tipo de pretratamiento en el remojo.
Niveles del factor:
Control (sin tratamiento)
T2: Remojo en agua con bicarbonato de sodio (NaHCO₃)
T3: Remojo en agua con cloruro de sodio (NaCl)
T4: Remojo en agua con mezcla de ambos (NaHCO₃ + NaCl)
Tratamientos: Las 4 condiciones mencionadas.
Variable respuesta: Tiempo de cocción (en minutos).
El experimentador debe sortear aleatoriamente la asignación de tratamientos, la distribución del material experimental y, cuando aplique, el orden de ejecución de los ensayos. Esto elimina sesgos sistemáticos y permite que las diferencias observadas se atribuyan realmente a los tratamientos.
Para asegurar la validez de los resultados y que las diferencias observadas se deban únicamente a los tratamientos aplicados, es necesario mantener constantes ciertos factores externos. Algunos ejemplos son:
De esta forma, se minimiza la variabilidad no controlada y se garantiza que los efectos detectados se deban únicamente a los tratamientos experimentales.
Se desea contrastar si existen diferencias en el tiempo de cocción entre los tratamientos.
\[ \mu_{Control} = \mu_{T2} = \mu_{T3} = \mu_{T4} \]
(Las medias de tiempo de cocción son iguales para todos los tratamientos).
\[ \text{Al menos una media difiere de las demás.} \]
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
datos <- tibble::tibble(
Control = c(213, 214, 204, 208, 212, 200),
T2 = c(76, 85, 74, 78, 82, 75),
T3 = c(57, 67, 55, 64, 61, 63),
T4 = c(84, 82, 85, 92, 87, 79)
)
# Transformar a formato largo
datos_largo <- datos %>%
pivot_longer(cols = everything(),
names_to = "Tratamiento",
values_to = "Tiempo")
head(datos_largo)## # A tibble: 6 × 2
## Tratamiento Tiempo
## <chr> <dbl>
## 1 Control 213
## 2 T2 76
## 3 T3 57
## 4 T4 84
## 5 Control 214
## 6 T2 85
## Df Sum Sq Mean Sq F value Pr(>F)
## Tratamiento 3 82261 27420 1223 <2e-16 ***
## Residuals 20 449 22
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
El p-valor del ANOVA es menor que 0.05, lo que indica que hay diferencias significativas entre al menos una de las medias de los tratamientos. Por lo tanto, se rechaza la hipótesis nula y se concluye que al menos una de las medias de los tratamientos es diferente.
Los tiempos de cocción promedio no son iguales entre los tratamientos. Los tratamientos con bicarbonato, sal y la mezcla reducen significativamente el tiempo de cocción en comparación con el control, y además existen diferencias significativas entre ellos.
library(ggplot2)
# Diagrama de caja
ggplot(datos_largo, aes(x = Tratamiento, y = Tiempo, fill = Tratamiento)) +
geom_boxplot(alpha = 0.6) +
labs(title = "Tiempo de cocción por tratamiento",
x = "Tratamiento",
y = "Tiempo (minutos)") +
theme_minimal()library(dplyr)
# Calcular medias y errores estándar
medias <- datos_largo %>%
group_by(Tratamiento) %>%
summarise(
media = mean(Tiempo),
sd = sd(Tiempo),
n = n(),
se = sd / sqrt(n),
.groups = "drop"
)
# Gráfico de medias con barras de error
ggplot(medias, aes(x = Tratamiento, y = media, color = Tratamiento)) +
geom_point(size = 3) +
geom_errorbar(aes(ymin = media - se, ymax = media + se), width = 0.2) +
labs(title = "Medias del tiempo de cocción con IC aproximado (±1SE)",
x = "Tratamiento",
y = "Media del tiempo (minutos)") +
theme_minimal()De acuerdo con los resultados obtenidos a partir del ANOVA, los diagramas de caja y el gráfico de medias con intervalos de confianza, se concluye lo siguiente:
Es importante realizar pruebas de comparaciones múltiples para determinar cuáles tratamientos son significativamente diferentes entre sí, entonces:
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Tiempo ~ Tratamiento, data = datos_largo)
##
## $Tratamiento
## diff lwr upr p adj
## T2-Control -130.16667 -137.819083 -122.51425 0.0000000
## T3-Control -147.33333 -154.985750 -139.68092 0.0000000
## T4-Control -123.66667 -131.319083 -116.01425 0.0000000
## T3-T2 -17.16667 -24.819083 -9.51425 0.0000219
## T4-T2 6.50000 -1.152416 14.15242 0.1141059
## T4-T3 23.66667 16.014250 31.31908 0.0000002
# Prueba LSD con ajuste Bonferroni
library(agricolae)
lsd_frijoles <- LSD.test(anova_model, "Tratamiento", p.adj = "bonferroni", console = TRUE)##
## Study: anova_model ~ "Tratamiento"
##
## LSD t Test for Tiempo
## P value adjustment method: bonferroni
##
## Mean Square Error: 22.425
##
## Tratamiento, means and individual ( 95 %) CI
##
## Tiempo std r se LCL UCL Min Max Q25 Q50
## Control 208.50000 5.576737 6 1.933261 204.46729 212.53271 200 214 205.00 210.0
## T2 78.33333 4.320494 6 1.933261 74.30062 82.36605 74 85 75.25 77.0
## T3 61.16667 4.490731 6 1.933261 57.13395 65.19938 55 67 58.00 62.0
## T4 84.83333 4.445972 6 1.933261 80.80062 88.86605 79 92 82.50 84.5
## Q75
## Control 212.75
## T2 81.00
## T3 63.75
## T4 86.50
##
## Alpha: 0.05 ; DF Error: 20
## Critical Value of t: 2.927119
##
## Minimum Significant Difference: 8.002874
##
## Treatments with the same letter are not significantly different.
##
## Tiempo groups
## Control 208.50000 a
## T4 84.83333 b
## T2 78.33333 b
## T3 61.16667 c
## Tiempo groups
## Control 208.50000 a
## T4 84.83333 b
## T2 78.33333 b
## T3 61.16667 c
De acuerdo con las pruebas de comparaciones múltiples, tanto el test de Tukey como la prueba LSD con ajuste Bonferroni muestran que existen diferencias significativas entre los tratamientos evaluados. El tratamiento Control presentó el mayor tiempo de cocción, siendo significativamente diferente de los demás.
Entre los tratamientos experimentales, se observó que T2 y T4 no difieren significativamente entre sí, pero ambos presentan tiempos de cocción intermedios, superiores al tratamiento T3. Por su parte, el tratamiento T3 mostró el menor tiempo de cocción (≈ 61.17 minutos y es significativamente diferente de todos los demás, consolidándose como el mejor tratamiento dentro del experimento.
Aunque T3 (remojo en sal) es el más eficaz para reducir el tiempo de cocción, puede incrementar el contenido de sodio en los frijoles y alterar sabor, textura y aspectos nutricionales; por ello se recomienda evaluar contenido de sodio, realizar pruebas sensoriales y probar estrategias de mitigación (por ejemplo, enjuague posterior o ajuste de concentración) antes de una implementación amplia.
Para validar los resultados del ANOVA es necesario comprobar sus supuestos:
# Modelo ANOVA
anova_model <- aov(Tiempo ~ Tratamiento, data = datos_largo)
# Gráficos de diagnóstico
par(mfrow = c(2, 2))
plot(anova_model)Este patrón indica una violación clave de los supuestos de un modelo de regresión lineal. Específicamente, sugiere que la relación entre las variables predictoras y la variable de respuesta no es lineal. El modelo lineal está subestimando la variable de respuesta para valores bajos y altos de los valores ajustados, y sobreestimándola en los valores intermedios (o viceversa, dependiendo de la dirección de la curva).
##
## Shapiro-Wilk normality test
##
## data: residuals(anova_model)
## W = 0.96947, p-value = 0.6539
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 3 0.2766 0.8416
## 20
Resultados:
Normalidad de los residuos: Shapiro-Wilk: W = 0.969, p-value = 0.6539 Como el valor-p > 0.05, los residuos siguen una distribución aproximadamente normal.
Homogeneidad de varianzas: Levene: F(3,20) = 0.277, p-value = 0.8416 Como el valor-p > 0.05, se cumple la homogeneidad de varianzas entre los tratamientos.
Se cumplen los supuestos del modelo ANOVA, lo que respalda la validez de los resultados y de las pruebas de comparaciones múltiples aplicadas.
Se plantea la siguiente hipótesis:
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 3 0.2766 0.8416
## 20
Dado que p> 0.05, no se rechaza \(H_0\) Por lo tanto, se puede concluir que no existen diferencias significativas en las varianzas entre los tratamientos.
El supuesto de homogeneidad de varianzas se cumple y el ANOVA es válido.
El análisis de varianza (ANOVA) mostró diferencias altamente significativas entre tratamientos \((p < 0.001)\), indicando que los tiempos de cocción dependen del tratamiento aplicado.
La prueba de comparaciones múltiples de Tukey y la prueba LSD con ajuste de Bonferroni confirmaron que:
Los supuestos del modelo ANOVA se cumplen:
Esto respalda la validez del análisis realizado.
Tratamiento a implementar:
Se recomienda aplicar el tratamiento T3 como el más
eficiente, ya que reduce de forma significativa el tiempo de cocción sin
perder consistencia estadística.
Monitoreo de efectos colaterales:
Antes de implementar a gran escala, se sugiere evaluar posibles efectos
secundarios del tratamiento ganador, tales como:
Replicación y validación:
Próximos pasos:
Explorar otros factores que puedan influir (variedad del frijol, tipo de
agua, presión de cocción) mediante un diseño factorial
que permita detectar interacciones.
Gutiérrez Pulido, H., & de la Vara Salazar, R. (2008). Análisis y diseño de experimentos (2ª ed.). McGraw-Hill/Interamericana Editores. gc.scalahed.com