#install.packages("FrF2")Analisis bifactorial
1. Definición del Diseño Experimental
Un diseño bifactorial implica dos factores, cada uno con varios niveles. Por ejemplo, supongamos que queremos estudiar el efecto de dos fertilizantes (Factor A) y dos tipos de riego (Factor B) sobre el crecimiento de plantas.
- Factor A (Fertilizante):
- Nivel 1: Fertilizante A
- Nivel 2: Fertilizante B
- Factor B (Riego):
- Nivel 1: Riego bajo
- Nivel 2: Riego alto
Esto resulta en un diseño \(2 \times 2\), lo que significa que se realizarán cuatro combinaciones diferentes de tratamientos.
2. Creación del Diseño en RStudio
Paso 1: Preparar el entorno
Abre RStudio y asegúrate de tener instalado el paquete necesario para crear diseños factoriales. Puedes usar el paquete FrF2 o doBy. Para instalarlo, ejecuta:
Paso 2: Generar el diseño factorial
Utiliza la función FrF2 para generar el diseño:
library(FrF2)Cargando paquete requerido: DoE.base
Cargando paquete requerido: grid
Cargando paquete requerido: conf.design
Registered S3 method overwritten by 'DoE.base':
method from
factorize.factor conf.design
Adjuntando el paquete: 'DoE.base'
The following objects are masked from 'package:stats':
aov, lm
The following object is masked from 'package:graphics':
plot.design
The following object is masked from 'package:base':
lengths
# Crear un diseño factorial completo
design <- FrF2(nruns = 4, nfactors = 2, factor.names = list(Fertilizante = c("A", "B"), Riego = c("Bajo", "Alto")))creating full factorial with 4 runs ...
print(design) Fertilizante Riego
1 A Alto
2 A Bajo
3 B Alto
4 B Bajo
class=design, type= full factorial
Paso 3: Recolección de datos
Después de realizar los experimentos, registra los resultados en un dataframe. Supongamos que medimos el crecimiento en centímetros:
# Simulando resultados del experimento
set.seed(123) # Para reproducibilidad
resultados <- c(20, 25, 30, 35) + rnorm(4) # Crecimiento con algo de ruido
# Crear un dataframe
datos <- data.frame(design, Crecimiento = resultados)
print(datos) Fertilizante Riego Crecimiento
1 A Alto 19.43952
2 A Bajo 24.76982
3 B Alto 31.55871
4 B Bajo 35.07051
3. Análisis de Datos
Paso 1: Análisis de Varianza (ANOVA)
Para analizar los efectos de los factores y su interacción sobre el crecimiento, utiliza la función aov():
# Realizar ANOVA
modelo <- aov(Crecimiento ~ Fertilizante * Riego, data = datos)
summary(modelo) Df Sum Sq Mean Sq
Fertilizante 1 125.66 125.66
Riego 1 19.55 19.55
Fertilizante:Riego 1 0.83 0.83
Paso 2: Interpretación de Resultados
El resumen del modelo te proporcionará información sobre:
- Efectos principales de cada factor.
- Interacción entre factores.
- Significancia estadística (valores p).
Si el valor p es menor que 0.05, se puede concluir que hay un efecto significativo.
4. Visualización de Resultados
Para visualizar los efectos, puedes usar gráficos como boxplots o interacciones:
# Boxplot para visualizar efectos
library(ggplot2)
ggplot(datos, aes(x = interaction(Fertilizante, Riego), y = Crecimiento)) +
geom_boxplot() +
labs(title = "Efecto del Fertilizante y Riego sobre el Crecimiento",
x = "Tratamientos",
y = "Crecimiento (cm)")Ejemplo 2: Se analiza la tabla de ejemplo.
Se ingresan los factores
FactorA <- gl(n=4, k=8, length=32)
FactorB<- gl(n=4, k=2,length=32)
Porcentaje <- c(1.8, 2.1, 2.0, 2.1, 4.6, 5.0, 7.5, 7.9, 2.2, 2.4, 4.2, 4.0, 5.4, 5.6, 9.8, 9.2, 2.8, 3.2, 4.4, 4.8, 8.7, 8.4,
13.2, 13.0, 3.2, 3.6, 3.3, 3.5, 5.7, 5.8, 10.9, 11.1) Se realiza un dataframe
datos3 <- data.frame(FactorA = FactorA, FactorB = FactorB, Porcentaje=Porcentaje);datos3 FactorA FactorB Porcentaje
1 1 1 1.8
2 1 1 2.1
3 1 2 2.0
4 1 2 2.1
5 1 3 4.6
6 1 3 5.0
7 1 4 7.5
8 1 4 7.9
9 2 1 2.2
10 2 1 2.4
11 2 2 4.2
12 2 2 4.0
13 2 3 5.4
14 2 3 5.6
15 2 4 9.8
16 2 4 9.2
17 3 1 2.8
18 3 1 3.2
19 3 2 4.4
20 3 2 4.8
21 3 3 8.7
22 3 3 8.4
23 3 4 13.2
24 3 4 13.0
25 4 1 3.2
26 4 1 3.6
27 4 2 3.3
28 4 2 3.5
29 4 3 5.7
30 4 3 5.8
31 4 4 10.9
32 4 4 11.1
mod3 <- aov(Porcentaje ~ FactorA * FactorB, data = datos3);mod3 Call:
aov.default(formula = Porcentaje ~ FactorA * FactorB, data = datos3)
Terms:
FactorA FactorB FactorA:FactorB Residuals
Sum of Squares 41.87625 283.93625 15.85625 0.80000
Deg. of Freedom 3 3 9 16
Residual standard error: 0.2236068
Estimated effects may be unbalanced
summary(mod3) Df Sum Sq Mean Sq F value Pr(>F)
FactorA 3 41.88 13.96 279.18 5.05e-14 ***
FactorB 3 283.94 94.65 1892.91 < 2e-16 ***
FactorA:FactorB 9 15.86 1.76 35.24 7.09e-09 ***
Residuals 16 0.80 0.05
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Se concluye que existen diferencias entre los efectos de los factores e igualmente en la interaccion de ambos combinados.
ggplot(datos3, aes(x = interaction(FactorA, FactorB), y = Porcentaje)) +
geom_boxplot() +
labs(title = "Efecto de cada factor sobre el Porcentaje",
x = "FactorA",
y = "FactorB")