Un biólogo decidió caracterizar 3 tipos de flores y para esto tomo la medida de longitud en centímetros a 15 flores de 3 especies vegetales. A continuación, se presentan los datos.
| Especie | Observaciones | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |
| Iris setosa | 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 |
| Iris versicolor | 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 |
| Iris virginica | 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 |
Elabore la corrida correspondiente de un modelo completamente al azar en el software R y conteste
• ¿Cuánto fue el valor p mostrado en la tabla de análisis de varianza?
• ¿Las especies son significativamente diferentes?
• Muestre los diferentes grupos que se forman en las pruebas post anova LSD y Duncan
• Realice el grafico de barras correspondiente a los grupos formados en las pruebas post anova de Duncan.
Un biólogo decidió caracterizar 3 tipos de flores y para esto tomo la medida de longitud en centímetros a 15 flores de 3 especies vegetales. A continuación, se presentan los datos:
En éste documento presento los ejercicios del taller propuestos para el curso:
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
iris_data <- read.csv("iris-01.csv")
iris_data
## Especies Obs.1 Obs.2 Obs.3 Obs.4 Obs.5 Obs.6 Obs.7 Obs.8 Obs.9 Obs.10
## 1 Iris,setosa 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9
## 2 Iris,versicolor 7.0 6.4 6.9 5.5 6.5 5.7 6.3 4.9 6.6 5.2
## 3 Iris,virginica 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3 6.7 7.2
## Obs.11 Obs.12 Obs.13 Obs.14 Obs.15
## 1 5.4 4.8 4.8 4.3 5.8
## 2 5.0 5.9 6.0 6.1 5.6
## 3 6.5 6.4 6.8 5.7 5.8
iris_data_org <- iris_data %>% pivot_longer(cols = Obs.1:Obs.15, names_to = "OBSERVATIONS",values_to= "LENGTH")
iris_data_org
## # A tibble: 45 × 3
## Especies OBSERVATIONS LENGTH
## <chr> <chr> <dbl>
## 1 Iris,setosa Obs.1 5.1
## 2 Iris,setosa Obs.2 4.9
## 3 Iris,setosa Obs.3 4.7
## 4 Iris,setosa Obs.4 4.6
## 5 Iris,setosa Obs.5 5
## 6 Iris,setosa Obs.6 5.4
## 7 Iris,setosa Obs.7 4.6
## 8 Iris,setosa Obs.8 5
## 9 Iris,setosa Obs.9 4.4
## 10 Iris,setosa Obs.10 4.9
## # ℹ 35 more rows
iris_data_org$OBSERVATIONS <- as.factor(iris_data_org$OBSERVATIONS)
# Resumen de los datos
str(iris_data_org)
## tibble [45 × 3] (S3: tbl_df/tbl/data.frame)
## $ Especies : chr [1:45] "Iris,setosa" "Iris,setosa" "Iris,setosa" "Iris,setosa" ...
## $ OBSERVATIONS: Factor w/ 15 levels "Obs.1","Obs.10",..: 1 8 9 10 11 12 13 14 15 2 ...
## $ LENGTH : num [1:45] 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
summary(iris_data_org)
## Especies OBSERVATIONS LENGTH
## Length:45 Obs.1 : 3 Min. :4.300
## Class :character Obs.10 : 3 1st Qu.:5.000
## Mode :character Obs.11 : 3 Median :5.800
## Obs.12 : 3 Mean :5.782
## Obs.13 : 3 3rd Qu.:6.500
## Obs.14 : 3 Max. :7.600
## (Other):27
bxp_iris <- iris_data_org %>% ggplot(aes(x = Especies, y = LENGTH, fill = Especies))+
geom_boxplot()+
labs(x = "Especies", y = "Longitud", title = "Boxplot-Comparación")
print(bxp_iris)
ggsave(plot = bxp_iris, "bxp_iris.png", dpi = 300, units = "in", height = 6, width = 8)
modelo1 <- aov(LENGTH ~ Especies+ OBSERVATIONS, data = iris_data_org)
summary(modelo1)
## Df Sum Sq Mean Sq F value Pr(>F)
## Especies 2 18.763 9.382 22.280 1.62e-06 ***
## OBSERVATIONS 14 3.532 0.252 0.599 0.843
## Residuals 28 11.790 0.421
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
El valor de \(p=1.62\times10^{-06}\) para las especies indica que hay una fuerte evidencia en contra de la hipótesis nula. Lo anterior sugiere que hay al menos una diferencia significativa entre las medias de las diferentes especies en cuanto a las observaciones analizadas.
Por otra parte, el valor de \(p=0.843\) para las observaciones es alto, lo que sugiere que no hay evidencia suficiente para rechazar la hipótesis nula. Esto significa que no hay una diferencia significativa entre las medias de las observaciones en función de las especies.
Vamos a hacer la prueba para observaciones
#install.packages("agricolae")
library(agricolae)
compara_especies <- duncan.test(modelo1, "Especies")
compara_especies
## $statistics
## MSerror Df Mean CV
## 0.4210794 28 5.782222 11.22244
##
## $parameters
## test name.t ntr alpha
## Duncan Especies 3 0.05
##
## $duncan
## Table CriticalRange
## 2 2.896885 0.4853641
## 3 3.043847 0.5099871
##
## $means
## LENGTH std r se Min Max Q25 Q50 Q75
## Iris,setosa 4.913333 0.397971 15 0.1675469 4.3 5.8 4.65 4.9 5.05
## Iris,versicolor 5.973333 0.656252 15 0.1675469 4.9 7.0 5.55 6.0 6.45
## Iris,virginica 6.460000 0.710935 15 0.1675469 4.9 7.6 6.05 6.5 6.95
##
## $comparison
## NULL
##
## $groups
## LENGTH groups
## Iris,virginica 6.460000 a
## Iris,versicolor 5.973333 b
## Iris,setosa 4.913333 c
##
## attr(,"class")
## [1] "group"
compara_especies$groups %>% rownames_to_column("Especies")
## Especies LENGTH groups
## 1 Iris,virginica 6.460000 a
## 2 Iris,versicolor 5.973333 b
## 3 Iris,setosa 4.913333 c
Las especies en el mismo grupo no difieren significativamente entre sí, mientras que las especies en diferentes grupos tienen diferencias significativas en términos de longitud.
Vamos a hacer la prueba para las observaciones (BLOQUES)
compara_observations <- duncan.test(modelo1, "OBSERVATIONS")
compara_observations$groups %>% rownames_to_column("OBSERVATIONS")
## OBSERVATIONS LENGTH groups
## 1 Obs.3 6.233333 a
## 2 Obs.6 6.233333 a
## 3 Obs.1 6.133333 a
## 4 Obs.5 6.000000 a
## 5 Obs.9 5.900000 a
## 6 Obs.13 5.866667 a
## 7 Obs.10 5.766667 a
## 8 Obs.15 5.733333 a
## 9 Obs.8 5.733333 a
## 10 Obs.12 5.700000 a
## 11 Obs.2 5.700000 a
## 12 Obs.11 5.633333 a
## 13 Obs.4 5.466667 a
## 14 Obs.14 5.366667 a
## 15 Obs.7 5.266667 a
compara_especie_lsd <- LSD.test(modelo1,"Especies")
compara_especie_lsd$groups %>% rownames_to_column("Especies")
## Especies LENGTH groups
## 1 Iris,virginica 6.460000 a
## 2 Iris,versicolor 5.973333 b
## 3 Iris,setosa 4.913333 c
Teniendo un análisis similar a lo que había sucedido con la prueba Duncan.