install.packages("agricolae")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
install.packages("dplyr")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
install.packages("ggplot2")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(agricolae)
library(ggplot2)
library(dplyr)
##
## 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
Elabore la corrida correspondiente de un modelo completamete al azar en el software R resuelve .¿Cuánto fue el valor p mostrado en la tabla de análisis de varianza? # 5.1e-08 • ¿Las especies son significativamente diferentes? #si, son significativamente diferentes • Muestre los diferentes grupos que se forman en las pruebas post anova LSD y Duncan • Realice el grafico de barras correspondiente al grupo formados en las pruebas post anova de Duncan.
# Datos
longitud <- c(
5.1, 4.9, 4.7, 4.6, 5, 5.4, 4.6, 5, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8,
7, 6.4, 6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5, 5.9, 6, 6.1, 5.6,
6.3, 5.8, 7.1, 6.3, 6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8
)
especie <- rep(c("setosa", "versicolor", "virginica"), each = 15)
datos <- data.frame(especie, longitud)
#ANOVA
modelo <- aov(longitud ~ especie, data = datos)
summary(modelo)
## Df Sum Sq Mean Sq F value Pr(>F)
## especie 2 18.76 9.382 25.71 5.1e-08 ***
## Residuals 42 15.32 0.365
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
LSD.test(modelo, "especie", group = TRUE)
duncan <- duncan.test(modelo, "especie", group = TRUE)
# Gráfico de barras (Duncan)
resultados <- duncan$groups %>%
mutate(especie = rownames(duncan$groups)) %>%
arrange(desc(longitud))
ggplot(resultados, aes(x = especie, y = longitud, fill = groups)) +
geom_bar(stat = "identity", color = "black") +
labs(title = "Comparación de Longitudes (Duncan)", y = "Longitud Promedio", x = "Especie") +
theme_minimal()
Tratando de controlar de la mejor manera el experimento determine: • Los posibles factores perturbadores y su propuesta de control. Temperatura del agua de cocción, Tipo o variedad de frijol, Tamaño o peso de la muestra, Tiempo de remojo previo (si se hizo).Tipo de olla o fuente de calor. • La unidad experimental: Las 28 unidades experimentales (7 por tratamiento) • El procedimiento de aleatorización.4 Tratamientos:T1 Control, T2 (bicarbonato), T3 (sal), y T4 (combinado). • Formule las hipótesis estadísticas. #Hipótesis nula (H₀): Los tratamientos no tienen efecto sobre el tiempo de cocción. H0:t1 =t2 =t3=t4
#Hipótesis alternativa (H₁): Al menos uno de los tratamientos tiene un efecto distinto sobre el tiempo de cocción. 𝐻1: t1≠t2 o t1≠t3 o t1 ≠t4 o t2≠t3 o t2≠t4 o t3≠t4 • Construya la tabla ANOVA. • De ser necesario realice las pruebas de comparación múltiples y decida que tratamiento fue el que menor tiempo de cocción dio.
# Datos
tiempos <- c(
213, 214, 204, 208, 212, 200, 207, # Control
76, 85, 74, 78, 82, 75, 82, # T2 (Bicarbonato)
57, 67, 55, 64, 61, 63, 63, # T3 (Sal)
84, 82, 85, 92, 87, 79, 90 # T4 (Combinado)
)
tratamientos <- rep(c("Control", "T2", "T3", "T4"), each = 7)
datos2 <- data.frame(tratamientos, tiempos)
# ANOVA
modelo2 <- aov(tiempos ~ tratamientos, data = datos2)
#Si el valor-p es menor a 0.05, rechazamos H₀ y se justifica realizar pruebas de comparación múltiple, en este caso la rechazamos y procedemos a realizar las pruebas de comparacion multiple
# pruebas de comparacion multiple y seleccion de mejor tratamiento
# Prueba de Duncan
duncan2 <- duncan.test(modelo2, "tratamientos", group = TRUE)
print(duncan2)
## $statistics
## MSerror Df Mean CV
## 20.32143 24 108.5357 4.153407
##
## $parameters
## test name.t ntr alpha
## Duncan tratamientos 4 0.05
##
## $duncan
## Table CriticalRange
## 2 2.918793 4.973148
## 3 3.065610 5.223301
## 4 3.159874 5.383910
##
## $means
## tiempos std r se Min Max Q25 Q50 Q75
## Control 208.28571 5.122313 7 1.703837 200 214 205.5 208 212.5
## T2 78.85714 4.180453 7 1.703837 74 85 75.5 78 82.0
## T3 61.42857 4.157609 7 1.703837 55 67 59.0 63 63.5
## T4 85.57143 4.503967 7 1.703837 79 92 83.0 85 88.5
##
## $comparison
## NULL
##
## $groups
## tiempos groups
## Control 208.28571 a
## T4 85.57143 b
## T2 78.85714 c
## T3 61.42857 d
##
## attr(,"class")
## [1] "group"
# Gráfico
res2 <- duncan2$groups
res2$tratamientos <- rownames(res2)
colnames(res2) <- c("tiempos", "grupo", "tratamientos")
ggplot(res2, aes(x = tratamientos, y = tiempos, fill = grupo)) +
geom_bar(stat = "identity", color = "black") +
geom_text(aes(label = grupo), vjust = -0.5, size = 5) +
labs(title = "Tiempo de Cocción de Frijoles",
y = "Tiempo (min)",
x = "Tratamiento") +
theme_minimal()
#Según el análisis ANOVA y la prueba de Duncan, el tratamiento T3 (Sal) fue el que redujo significativamente el tiempo de cocción en comparación con los otros tratamientos. Es, por lo tanto, el tratamiento más efectivo para acortar el tiempo de cocción de los frijoles bajo las condiciones evaluadas.
rendimiento <- c(5.5, 5.5, 6.9, 7.2,
5.8, 5.3, 5.6, 4.1,
6.9, 5.3, 6.6, 4.5,
5.0, 7.2, 6.1, 7.0,
6.2, 5.7, 4.8, 5.8)
tratamiento <- c("C", "A", "B", "D",
"D", "B", "C", "A",
"D", "A", "B", "C",
"A", "B", "C", "D",
"B", "C", "A", "D")
bloque <- rep(1:5, each = 4)
datos3 <- data.frame(bloque = as.factor(bloque), tratamiento, rendimiento)
H0:μA =μB =μC=μD
#ANOVA
modelo3 <- aov(rendimiento ~ tratamiento + bloque, data = datos3)
summary(modelo3)
## Df Sum Sq Mean Sq F value Pr(>F)
## tratamiento 3 8.946 2.9820 11.528 0.000756 ***
## bloque 4 3.520 0.8800 3.402 0.044346 *
## Residuals 12 3.104 0.2587
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Para la variable tratamiento, el valor-p es 0.00756, que es menor que 0.05.Por lo tanto, rechazamos la hipótesis nula H₀. Existe evidencia estadística de que al menos un sistema de cultivo genera un rendimiento significativamente distinto.
# Prueba de comparación múltiple (Duncan)
library(agricolae)
duncan3 <- duncan.test(modelo3, "tratamiento", group = TRUE)
print(duncan3)
## $statistics
## MSerror Df Mean CV
## 0.2586667 12 5.85 8.693895
##
## $parameters
## test name.t ntr alpha
## Duncan tratamiento 4 0.05
##
## $duncan
## Table CriticalRange
## 2 3.081307 0.7008420
## 3 3.225244 0.7335804
## 4 3.312453 0.7534162
##
## $means
## rendimiento std r se Min Max Q25 Q50 Q75
## A 4.94 0.5412947 5 0.2274496 4.1 5.5 4.8 5.0 5.3
## B 6.44 0.7368853 5 0.2274496 5.3 7.2 6.2 6.6 6.9
## C 5.48 0.5932959 5 0.2274496 4.5 6.1 5.5 5.6 5.7
## D 6.54 0.6841053 5 0.2274496 5.8 7.2 5.8 6.9 7.0
##
## $comparison
## NULL
##
## $groups
## rendimiento groups
## D 6.54 a
## B 6.44 a
## C 5.48 b
## A 4.94 b
##
## attr(,"class")
## [1] "group"
# Grafico de barras
library(ggplot2)
library(dplyr)
res3 <- duncan3$groups
res3$tratamiento <- rownames(res3)
colnames(res3) <- c("rendimiento", "grupo", "tratamiento")
res3 <- arrange(res3, desc(rendimiento)) # ordenar de mayor a menor
ggplot(res3, aes(x = tratamiento, y = rendimiento, fill = grupo)) +
geom_bar(stat = "identity", color = "black") +
geom_text(aes(label = grupo), vjust = -0.5, size = 5) +
labs(title = "Rendimiento de Col Crespa por Tratamiento",
y = "Rendimiento (t/ha)",
x = "Tratamiento") +
theme_minimal()
Grupo a: Tratamientos D y B (rendimientos altos) Grupo b: Tratamientos C y A (rendimientos bajos) Esto indica que hay diferencias significativas entre los tratamientos, porque no todos están en el mismo grupo de letras.