library(readxl)
experimentos_anova_1 <- read_excel("experimentos_anova.xlsx",
sheet = "ANOVA_Um_Fator")
aov1 <- aov(experimentos_anova_1$Crescimento ~ experimentos_anova_1$Fertilizante, data=experimentos_anova_1)
summary(aov1)
## Df Sum Sq Mean Sq F value Pr(>F)
## experimentos_anova_1$Fertilizante 2 12 6.005 0.244 0.784
## Residuals 997 24552 24.626
Como o p-valor é maior que 0.05, não existe diferença estatística entre os tipos de fertilizantes.
library(readxl)
experimentos_anova_2 <- read_excel("experimentos_anova.xlsx",
sheet = "ANOVA_Dois_Fatores_Modificado")
aov2 <- aov(Crescimento ~ Fertilizante * Água, data = experimentos_anova_2)
summary(aov2)
## Df Sum Sq Mean Sq F value Pr(>F)
## Fertilizante 2 196 98 3.918 0.0202 *
## Água 1 14548 14548 581.081 <2e-16 ***
## Fertilizante:Água 2 49 25 0.986 0.3734
## Residuals 994 24885 25
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Neste caso, como o p-valor do fator Fertilizante é 0.0202, que é menor que o nível de significância de 0.05, concluímos que o tipo de fertilizante causa uma diferença estatisticamente significativa no crescimento das plantas. Portanto, diferentes fertilizantes influenciam de forma distinta o resultado da variável resposta.
library(readxl)
assemble_time <- read_excel("assemble_time.xlsx")
dados <- read_excel("assemble_time.xlsx")
head(dados)
## # A tibble: 6 × 5
## antes treinamento_01 treinamento_02 treinamento_03 treinamento_04
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 28.8 78.2 92.9 89.6 79.6
## 2 71.8 67.6 82.9 85.1 73.5
## 3 72.6 80.8 64.8 84.5 79.3
## 4 81.0 76.0 95.6 80.0 86.0
## 5 68.3 80.9 86.8 88.9 84.5
## 6 74.2 77.7 75.5 81.6 83.3
# Comparar 'antes' com cada sessão de treinamento
wilcox.test(dados$antes, dados$treinamento_01, paired = TRUE)
##
## Wilcoxon signed rank test with continuity correction
##
## data: dados$antes and dados$treinamento_01
## V = 24595, p-value = 0.001241
## alternative hypothesis: true location shift is not equal to 0
wilcox.test(dados$antes, dados$treinamento_02, paired = TRUE)
##
## Wilcoxon signed rank test with continuity correction
##
## data: dados$antes and dados$treinamento_02
## V = 20718, p-value = 1.321e-07
## alternative hypothesis: true location shift is not equal to 0
wilcox.test(dados$antes, dados$treinamento_03, paired = TRUE)
##
## Wilcoxon signed rank test with continuity correction
##
## data: dados$antes and dados$treinamento_03
## V = 8174, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
wilcox.test(dados$antes, dados$treinamento_04, paired = TRUE)
##
## Wilcoxon signed rank test with continuity correction
##
## data: dados$antes and dados$treinamento_04
## V = 8928, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
Após aplicar o teste de Wilcoxon para amostras pareadas, observou-se que todos os treinamentos reduziram significativamente o tempo de montagem quando comparados ao tempo inicial (“antes”). Os treinamentos 3 e 4 foram os que apresentaram os resultados mais expressivos, com p-valores extremamente baixos, indicando forte evidência de melhoria no desempenho.
library(tidyr)
# Transformar para formato longo
dados_largos <- read_excel("teste_velocidade.xlsx") |>
pivot_longer(cols = everything(), names_to = "algoritmo", values_to = "tempo")
head(dados_largos)
## # A tibble: 6 × 2
## algoritmo tempo
## <chr> <dbl>
## 1 Algorith_A 0.000031
## 2 Algorith_B 0.000183
## 3 Algorith_C 0.000824
## 4 Algorith_D 0.773
## 5 Algorith_E 0.854
## 6 Algorith_A 0.0445
by(dados_largos$tempo, dados_largos$algoritmo, shapiro.test)
## dados_largos$algoritmo: Algorith_A
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.9579, p-value = 2.773e-09
##
## ------------------------------------------------------------
## dados_largos$algoritmo: Algorith_B
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.95079, p-value = 2.802e-10
##
## ------------------------------------------------------------
## dados_largos$algoritmo: Algorith_C
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.96136, p-value = 9.237e-09
##
## ------------------------------------------------------------
## dados_largos$algoritmo: Algorith_D
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.99759, p-value = 0.835
##
## ------------------------------------------------------------
## dados_largos$algoritmo: Algorith_E
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.94697, p-value = 8.898e-11
A maioria dos algoritmos (A, B, C e E) não segue distribuição normal (p < 0.05). Portanto, usaremos o teste de Kruskal-Wallis.
kruskal.test(tempo ~ algoritmo, data = dados_largos)
##
## Kruskal-Wallis rank sum test
##
## data: tempo by algoritmo
## Kruskal-Wallis chi-squared = 356.14, df = 4, p-value < 2.2e-16
O teste de Kruskal-Wallis indicou diferença significativa entre os algoritmos (p < 0.05).
library(FSA)
## ## FSA v0.10.0. See citation('FSA') if used in publication.
## ## Run fishR() for related website and fishR('IFAR') for related book.
dunnTest(tempo ~ algoritmo, data = dados_largos, method = "bonferroni")
## Warning: algoritmo was coerced to a factor.
## Dunn (1964) Kruskal-Wallis multiple comparison
## p-values adjusted with the Bonferroni method.
## Comparison Z P.unadj P.adj
## 1 Algorith_A - Algorith_B 1.8128429 6.985606e-02 6.985606e-01
## 2 Algorith_A - Algorith_C 2.4326844 1.498736e-02 1.498736e-01
## 3 Algorith_B - Algorith_C 0.6198415 5.353621e-01 1.000000e+00
## 4 Algorith_A - Algorith_D -12.2875801 1.056206e-34 1.056206e-33
## 5 Algorith_B - Algorith_D -14.1004229 3.775004e-45 3.775004e-44
## 6 Algorith_C - Algorith_D -14.7202645 4.777881e-49 4.777881e-48
## 7 Algorith_A - Algorith_E -8.5342466 1.410717e-17 1.410717e-16
## 8 Algorith_B - Algorith_E -10.3470895 4.314014e-25 4.314014e-24
## 9 Algorith_C - Algorith_E -10.9669310 5.511136e-28 5.511136e-27
## 10 Algorith_D - Algorith_E 3.7533335 1.744985e-04 1.744985e-03
aggregate(tempo ~ algoritmo, data = dados_largos, mean)
## algoritmo tempo
## 1 Algorith_A 0.5264293
## 2 Algorith_B 0.4860531
## 3 Algorith_C 0.4809547
## 4 Algorith_D 0.7615998
## 5 Algorith_E 0.7105089
library(ggplot2)
ggplot(dados_largos, aes(x = algoritmo, y = tempo, fill = algoritmo)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Comparação de Tempo entre Algoritmos", y = "Tempo", x = "Algoritmo")
Com base no teste de Kruskal-Wallis (p < 0.05) e no teste de Dunn com correção de Bonferroni:
Os algoritmos A, B e C não apresentaram diferenças significativas entre si e foram estatisticamente mais rápidos.
Os algoritmos D e E foram significativamente mais lentos.
Houve também diferença significativa entre D e E, com E sendo melhor que D.
🏆 Melhor desempenho: O algoritmo C teve o menor tempo médio (0.48095), seguido de perto por B (0.48605) e A (0.52643).
O algoritmo D foi o pior em desempenho, com tempo médio de 0.76160.