Se tiene un diseño factorial con dos factores:
\[ a=3, \qquad b=5, \qquad r=2. \]
Por tanto, el número total de observaciones es:
\[ N=abr=3(5)(2)=30. \]
Los grados de libertad totales son:
\[ gl_T=N-1=30-1=29. \]
Como se supone un modelo de efectos fijos, el modelo estadístico apropiado es:
\[ Y_{ijk}=\mu+\alpha_i+\beta_j+(\alpha\beta)_{ij}+\varepsilon_{ijk}, \]
donde:
\[ i=1,2,3; \qquad j=1,2,3,4,5; \qquad k=1,2. \]
En este modelo:
Se supone que:
\[ \varepsilon_{ijk}\sim N(0,\sigma^2). \]
Para el factor A:
\[ H_0: \alpha_1=\alpha_2=\alpha_3=0 \]
\[ H_1: \text{al menos un efecto de A es diferente de cero.} \]
Para el factor B:
\[ H_0: \beta_1=\beta_2=\beta_3=\beta_4=\beta_5=0 \]
\[ H_1: \text{al menos un efecto de B es diferente de cero.} \]
Para la interacción A\(\times\)B:
\[ H_0:(\alpha\beta)_{ij}=0 \quad \forall i,j \]
\[ H_1: \text{existe interacción entre A y B.} \]
La tabla Anova para identificar los factores significativos es:
SC_A <- 800
SC_B <- 900
SC_AB <- 300
SC_E <- 400
# Parámetros del diseño
a <- 3
b <- 5
r <- 2
N <- a*b*r
# Grados de libertad
gl_A <- a - 1
gl_B <- b - 1
gl_AB <- (a - 1)*(b - 1)
gl_E <- a*b*(r - 1)
gl_T <- N - 1
# Cuadrados medios
CM_A <- SC_A/gl_A
CM_B <- SC_B/gl_B
CM_AB <- SC_AB/gl_AB
CM_E <- SC_E/gl_E
# Razones F
F_A <- CM_A/CM_E
F_B <- CM_B/CM_E
F_AB <- CM_AB/CM_E
anova1 <- data.frame(
Fuente = c("A", "B", "A:B", "Error", "Total"),
SC = c(SC_A, SC_B, SC_AB, SC_E, SC_A + SC_B + SC_AB + SC_E),
gl = c(gl_A, gl_B, gl_AB, gl_E, gl_T),
CM = c(CM_A, CM_B, CM_AB, CM_E, NA),
F = c(F_A, F_B, F_AB, NA, NA)
)
anova1_p <- anova1 |>
mutate(
p_valor = c(
pf(F_A, gl_A, gl_E, lower.tail = FALSE),
pf(F_B, gl_B, gl_E, lower.tail = FALSE),
pf(F_AB, gl_AB, gl_E, lower.tail = FALSE),
NA,
NA
)
)
anova1_p
Con base en los valores F y los p-valores, se observa que los factores A y B presentan evidencia estadística significativa. La interacción A\(\times\)B no presenta evidencia suficiente de significancia estadística. Por tanto, se concluye que hay diferencias entre los niveles de A y entre los niveles de B, pero no se evidencia que el efecto de A dependa del nivel de B.
## [1] 1001
El modelo factorial de dos factores con interacción es:
\[ Y_{ijk}=\mu+\alpha_i+\beta_j+(\alpha\beta)_{ij}+\varepsilon_{ijk}. \]
m2 <- aov(y ~ A*B, data = dat2)
summary(m2)
## Df Sum Sq Mean Sq F value Pr(>F)
## A 1 1440.1 1440.1 52.792 9.93e-06 ***
## B 2 785.4 392.7 14.397 0.000648 ***
## A:B 2 81.4 40.7 1.493 0.263644
## Residuals 12 327.3 27.3
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova2 <- broom::tidy(anova(m2))
anova2
Con un nivel de significancia de 0.05, el factor A tiene efecto significativo y el factor B también tiene efecto significativo. La interacción A\(\times\)B no es significativa. Esto indica que la variable respuesta cambia según los niveles del factor A y también según los niveles del factor B, pero no se observa evidencia suficiente para afirmar que el efecto de A cambie dependiendo del nivel de B.
En este ejercicio se estudia el porcentaje de sobrevivencia de Vibrio cholerae después de 24 horas. Los factores son:
La variable respuesta es el porcentaje de sobrevivencia.
Nombre del diseño
El diseño corresponde a un diseño factorial de dos factores. Como las celdas no tienen el mismo número de observaciones, el diseño es no balanceado. Por esta razón se recomienda usar sumas de cuadrados tipo II para evaluar efectos principales e interacción.
Modelo e hipótesis
El modelo estadístico es:
\[ Y_{ijk}=\mu+\alpha_i+\beta_j+(\alpha\beta)_{ij}+\varepsilon_{ijk}. \]
Se prueban las siguientes hipótesis:
Para el tipo de alimento:
\[ H_0:\alpha_i=0 \quad \forall i. \]
Para la temperatura:
\[ H_0:\beta_j=0 \quad \forall j. \]
Para la interacción alimento\(\times\)temperatura:
\[ H_0:(\alpha\beta)_{ij}=0 \quad \forall i,j. \]
dat3 |>
group_by(Alimento, Temperatura) |>
summarise(
n = n(),
media = mean(y),
sd = sd(y),
.groups = "drop"
)
Análisis de varianza
m3 <- aov(y ~ Alimento*Temperatura, data = dat3)
summary(m3)
## Df Sum Sq Mean Sq F value Pr(>F)
## Alimento 2 7977 3989 12.064 6.94e-05 ***
## Temperatura 1 1710 1710 5.172 0.028 *
## Alimento:Temperatura 2 448 224 0.677 0.514
## Residuals 43 14217 331
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Con \(\alpha=0.05\), el tipo de alimento tiene efecto significativo sobre el porcentaje de sobrevivencia. La temperatura también tiene efecto significativo. La interacción alimento\(\times\)temperatura no presenta evidencia estadística significativa.
Esto indica que la sobrevivencia de Vibrio cholerae cambia según el tipo de verdura y según la temperatura de almacenamiento, pero no se encontró evidencia suficiente para afirmar que el efecto de la temperatura dependa del tipo de verdura.
# Normalidad de residuales
shapiro.test(residuals(m3))
##
## Shapiro-Wilk normality test
##
## data: residuals(m3)
## W = 0.94561, p-value = 0.02461
# Homogeneidad de varianzas entre tratamientos
car::leveneTest(y ~ interaction(Alimento, Temperatura), data = dat3)
par(mfrow = c(1, 2))
plot(m3, which = 1)
plot(m3, which = 2)
La prueba de Levene presenta un p-valor menor que 0.05, por lo que se rechaza la hipótesis de igualdad de varianzas. Por tanto, el supuesto de homogeneidad de varianzas no se cumple satisfactoriamente.
Además, la prueba de Shapiro–Wilk también muestra evidencia contra la normalidad de los residuales. En consecuencia, las conclusiones del ANOVA deben interpretarse con cautela.
Cuando no se cumple la homogeneidad de varianzas, los estadísticos F y los p-valores del ANOVA pueden verse afectados, especialmente si el diseño no es balanceado. Esto puede aumentar el riesgo de concluir significancia cuando no la hay, o de no detectar diferencias reales. En este caso, se recomienda complementar el análisis con métodos robustos, transformar la variable respuesta o usar modelos que permitan varianzas heterogéneas.
En este ejercicio se estudia la eficacia de diferentes condiciones de desinfección sobre la reducción de la carga bacteriana de Escherichia coli en superficies de acero inoxidable.
La variable respuesta es la reducción logarítmica de UFC/cm². Valores más altos indican mayor efectividad antimicrobiana.
El diseño experimental corresponde a un diseño factorial de tres factores:
\[ 2\times 2\times 3. \]
Los factores son:
El número de tratamientos es:
\[ 2\times 2\times 3=12. \]
Como cada tratamiento tiene tres réplicas:
\[ 12\times 3=36 \]
observaciones en total.
El modelo factorial de tres factores es:
\[ Y_{ijkl} = \mu + \alpha_i + \beta_j + \gamma_k + (\alpha\beta)_{ij} + (\alpha\gamma)_{ik} + (\beta\gamma)_{jk} + (\alpha\beta\gamma)_{ijk} + \varepsilon_{ijkl}. \]
Donde:
\[ i=1,2; \qquad j=1,2; \qquad k=1,2,3; \qquad l=1,2,3. \]
Se supone que:
\[ \varepsilon_{ijkl}\sim N(0,\sigma^2). \]
Para la concentración:
\[ H_0:\alpha_i=0 \quad \forall i. \]
Para la temperatura:
\[ H_0:\beta_j=0 \quad \forall j. \]
Para el tiempo de exposición:
\[ H_0:\gamma_k=0 \quad \forall k. \]
Para las interacciones:
\[ H_0:(\alpha\beta)_{ij}=0 \quad \forall i,j. \]
\[ H_0:(\alpha\gamma)_{ik}=0 \quad \forall i,k. \]
\[ H_0:(\beta\gamma)_{jk}=0 \quad \forall j,k. \]
\[ H_0:(\alpha\beta\gamma)_{ijk}=0 \quad \forall i,j,k. \]
m4 <- aov(y ~ Concentracion*Temperatura*Tiempo, data = dat4)
summary(m4)
## Df Sum Sq Mean Sq F value Pr(>F)
## Concentracion 1 4.951 4.951 977.097 < 2e-16 ***
## Temperatura 1 2.377 2.377 469.093 < 2e-16 ***
## Tiempo 2 11.378 5.689 1122.785 < 2e-16 ***
## Concentracion:Temperatura 1 0.052 0.052 10.290 0.003769 **
## Concentracion:Tiempo 2 0.254 0.127 25.061 1.33e-06 ***
## Temperatura:Tiempo 2 0.122 0.061 12.066 0.000236 ***
## Concentracion:Temperatura:Tiempo 2 0.025 0.013 2.468 0.106022
## Residuals 24 0.122 0.005
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Con un nivel de significancia de 0.05, se espera observar efecto significativo de la concentración, la temperatura y el tiempo de exposición. También pueden aparecer interacciones dobles significativas, lo cual indica que el efecto de un factor cambia dependiendo del nivel de otro factor.
Si la interacción triple no es significativa, se interpreta que no hay evidencia suficiente de que el efecto conjunto de concentración y temperatura cambie de forma distinta a través de todos los niveles de tiempo.
# Normalidad de residuales
shapiro4 <- shapiro.test(residuals(m4))
shapiro4
##
## Shapiro-Wilk normality test
##
## data: residuals(m4)
## W = 0.86072, p-value = 0.0003392
# Homogeneidad de varianzas por tratamientos
levene4 <- car::leveneTest(y ~ interaction(Concentracion, Temperatura, Tiempo), data = dat4)
levene4
par(mfrow = c(1, 2))
plot(m4, which = 1)
plot(m4, which = 2)
par(mfrow = c(1, 1))
La normalidad de residuales se evalúa mediante la prueba de Shapiro–Wilk y el gráfico Q–Q. La homogeneidad de varianzas se evalúa con la prueba de Levene. Si el p-valor es mayor que 0.05, no se rechaza el supuesto evaluado.
Al evaluar los supuestos del modelo, la prueba de Shapiro–Wilk mostró un p-valor de 0.0003392, menor que 0.05. Por esta razón, se rechaza la hipótesis de normalidad de los residuales, lo cual indica que este supuesto no se cumple estrictamente.
Por otra parte, la prueba de Levene para homogeneidad de varianzas presentó un p-valor de 0.9999996, mayor que 0.05. En consecuencia, no se rechaza la hipótesis de igualdad de varianzas entre los tratamientos, por lo que el supuesto de homogeneidad se cumple satisfactoriamente.
Como una mayor reducción logarítmica indica mayor eficacia antimicrobiana, se ordenan las medias de mayor a menor.
medias4 <- dat4 |>
group_by(Concentracion, Temperatura, Tiempo) |>
summarise(
media = mean(y),
sd = sd(y),
n = n(),
.groups = "drop"
) |>
arrange(desc(media))
medias4
La combinación con mayor media corresponde al tratamiento más efectivo. En estos datos, la mayor reducción se espera para la combinación de mayor concentración, mayor temperatura y mayor tiempo de exposición.
emm4_df <- as.data.frame(emmeans(m4, ~ Concentracion*Temperatura*Tiempo))
ggplot(emm4_df, aes(x = Tiempo, y = emmean, group = Concentracion, linetype = Concentracion)) +
geom_point(size = 3) +
geom_line() +
geom_errorbar(aes(ymin = lower.CL, ymax = upper.CL), width = 0.1) +
facet_wrap(~ Temperatura) +
labs(
x = "Tiempo de exposición",
y = "Media ajustada de reducción logarítmica",
linetype = "Concentración",
title = "Interacción concentración × tiempo condicionada por temperatura"
) +
theme_minimal(base_size = 12)
La combinación más efectiva corresponde al tratamiento con 1.0 % de concentración del desinfectante, 40 °C de temperatura y 10 minutos de exposición, debido a que presentó la mayor media ajustada de reducción logarítmica (\(\bar{Y}=3.84\)). Dado que valores más altos de la variable respuesta indican mayor eficacia antimicrobiana, esta combinación puede considerarse la mejor condición experimental evaluada.
eta<-eta_squared(m4, partial = FALSE)
eta1<- eta %>%
select(-CI) %>%
mutate(
Eta2 = round(Eta2, 3),
CI_low = round(CI_low, 3),
CI_high = round(CI_high, 3)
)
eta1
El tamaño del efecto permite cuantificar la importancia relativa de cada fuente de variación. En este contexto, valores grandes indican que la fuente explica una proporción considerable de la variabilidad en la reducción bacteriana.
El mayor tamaño del efecto corresponde al tiempo de exposición \((\eta^2 = 0.590)\), lo que indica que este factor explica aproximadamente el 59.01 % de la variabilidad total de la reducción logarítmica bacteriana.
En segundo lugar se encuentra la concentración del desinfectante \((\eta^2 = 0.257)\), seguida por la temperatura \((\eta^2 = 0.123)\).
Las interacciones presentan tamaños del efecto mucho menores, lo cual indica que, aunque algunas puedan ser estadísticamente significativas, su contribución relativa a la variabilidad total es baja en comparación con los efectos principales.