#Carregar bibliotecas necessárias
library(dplyr)
library(ggplot2)
library(multcomp)
library(car)
library(lmtest)
library(plotly)
library(tibble)
library("bestglm")
library("ggplot2")
library(visdat)
library(regclass)
library(ExpDes.pt)
library(agricolae)
library(gridExtra)
library(grid)
library(xfun)
library(knitr)
library(knitrdata)
library(car)
library(patchwork)
library(multcomp)
title: “Análise da Qualidade de Méis Baseada nos Compostos fenólicos”
author: ” Ariel, Marcelo Ribeiro e Patrícia Pimenta ”
date: “2025-01-22”
format: html
Carregar os dados
Preparação dos Dados
Natureza das variáveis
'data.frame': 48 obs. of 5 variables:
$ Amostras : chr "M1" "M1" "M1" "M1" ...
$ Repetição : int 1 2 3 4 1 2 3 4 1 2 ...
$ Tempo.Armazenamento..meses.: int 0 0 0 0 0 0 0 0 0 0 ...
$ Temperatura.Armazenamento : chr "Ambiente" "Ambiente" "Ambiente" "Ambiente" ...
$ Fenólicos : num 0.912 0.912 0.912 0.922 0.941 ...
Redefinir a natureza das variáveis
'data.frame': 48 obs. of 5 variables:
$ Amostras : Factor w/ 3 levels "M1","M2","M3": 1 1 1 1 2 2 2 2 3 3 ...
$ Repetição : int 1 2 3 4 1 2 3 4 1 2 ...
$ Tempo.Armazenamento..meses.: Factor w/ 2 levels "0","5": 1 1 1 1 1 1 1 1 1 1 ...
$ Temperatura.Armazenamento : Factor w/ 2 levels "Ambiente","Refrigerado": 1 1 1 1 1 1 1 1 1 1 ...
$ Fenólicos : num 0.912 0.912 0.912 0.922 0.941 ...
Resultados
Análise de Variância (ANOVA)
Graus de Liberdade | Soma dos Quadrados | Média dos Quadrados | Estatística F | Valor-p | |
---|---|---|---|---|---|
Tempo.Armazenamento..meses. | 1 | 5.2222522 | 5.2222522 | 189.5060992 | 0.000000 |
Temperatura.Armazenamento | 1 | 0.0191507 | 0.0191507 | 0.6949443 | 0.408891 |
Residuals | 45 | 1.2400728 | 0.0275572 | NA | NA |
Testes de Pressupostos
Os testes confirmaram a normalidade, homocedasticidade e independência dos resíduos.
Teste | Estatística | Valor.p | |
---|---|---|---|
W | Shapiro-Wilk (Normalidade) | 0.8548709 | 2.94e-05 |
BP | Breusch-Pagan (Homocedasticidade) | 21.9672386 | 1.70e-05 |
DW | Durbin-Watson (Independência) | 0.7220994 | 0.00e+00 |
(PERMANOVA):
# Instalar e carregar o pacote RVAideMemoire
#if (!requireNamespace("RVAideMemoire", quietly = TRUE)) {
# install.packages("RVAideMemoire")
#}
library(RVAideMemoire)
*** Package RVAideMemoire v 0.9-83-7 ***
# Instalar e carregar o pacote RVAideMemoire
if (!requireNamespace("RVAideMemoire", quietly = TRUE)) {
install.packages("RVAideMemoire")
}library(RVAideMemoire)
library(vegan)
Warning: package 'vegan' was built under R version 4.4.1
Loading required package: permute
Loading required package: lattice
Attaching package: 'lattice'
The following object is masked from 'package:regclass':
qq
This is vegan 2.6-8
Attaching package: 'vegan'
The following object is masked from 'package:VGAM':
calibrate
# Criar matriz de distância (exemplo: distância Euclidiana)
#attach(Dados_filtrados)
<- dist(dados_mel[, "Fenólicos"]) # Ou use vegdist para outras distâncias
dist_matrix
set.seed(123)
# PERMANOVA global
<- adonis2(dist_matrix ~ Tempo.Armazenamento..meses. + Temperatura.Armazenamento, by="terms",p.method = "bonferroni", data = dados_mel)
adonis_result print(adonis_result)
Permutation test for adonis under reduced model
Terms added sequentially (first to last)
Permutation: free
Number of permutations: 999
adonis2(formula = dist_matrix ~ Tempo.Armazenamento..meses. + Temperatura.Armazenamento, data = dados_mel, by = "terms", p.method = "bonferroni")
Df SumOfSqs R2 F Pr(>F)
Tempo.Armazenamento..meses. 1 5.2223 0.80572 189.5061 0.001 ***
Temperatura.Armazenamento 1 0.0192 0.00295 0.6949 0.389
Residual 45 1.2401 0.19133
Total 47 6.4815 1.00000
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Amostras | Media | Mediana | Desvio_Padrao | Minimo | Maximo |
---|---|---|---|---|---|
M1 | 0.6816855 | 0.7050678 | 0.2427225 | 0.4004295 | 0.922199 |
M2 | 0.6761498 | 0.6927220 | 0.2668878 | 0.3681144 | 0.946484 |
M3 | 0.8962470 | 0.8999951 | 0.5180266 | 0.3681144 | 1.442873 |
# Instalar e carregar o pacote RVAideMemoire
#if (!requireNamespace("RVAideMemoire", quietly = TRUE)) {
# install.packages("RVAideMemoire")
#}
library(RVAideMemoire)
# Instalar e carregar o pacote RVAideMemoire
if (!requireNamespace("RVAideMemoire", quietly = TRUE)) {
install.packages("RVAideMemoire")
}library(RVAideMemoire)
library(vegan)
library(pairwiseAdonis)
Loading required package: cluster
# Criar matriz de distância (exemplo: distância Euclidiana)
#attach(Dados_filtrados)
<- dist(dados_mel[, "Fenólicos"]) # Ou use vegdist para outras distâncias
dist_matrix
set.seed(123)
# PERMANOVA global
<- adonis2(dist_matrix ~ Tempo.Armazenamento..meses. + Temperatura.Armazenamento, by="terms",p.method = "bonferroni", data = dados_mel)
adonis_result print(adonis_result)
Permutation test for adonis under reduced model
Terms added sequentially (first to last)
Permutation: free
Number of permutations: 999
adonis2(formula = dist_matrix ~ Tempo.Armazenamento..meses. + Temperatura.Armazenamento, data = dados_mel, by = "terms", p.method = "bonferroni")
Df SumOfSqs R2 F Pr(>F)
Tempo.Armazenamento..meses. 1 5.2223 0.80572 189.5061 0.001 ***
Temperatura.Armazenamento 1 0.0192 0.00295 0.6949 0.389
Residual 45 1.2401 0.19133
Total 47 6.4815 1.00000
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Pairwise PERMANOVA (post hoc)
# Comparação pairwise para Tempo
# Variável de agrupamento
<- factor(dados_mel$Tempo.Armazenamento..meses.)
groups
# Pairwise PERMANOVA com ajuste para múltiplas comparações
<- pairwise.adonis2(dist_matrix ~ groups, data = dados_mel, perm = 999)
pairwise_result
print(pairwise_result)
$parent_call
[1] "dist_matrix ~ groups , strata = Null , permutations 999"
$`0_vs_5`
Df SumOfSqs R2 F Pr(>F)
Model 1 5.2223 0.80572 190.77 0.001 ***
Residual 46 1.2592 0.19428
Total 47 6.4815 1.00000
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
attr(,"class")
[1] "pwadstrata" "list"
# Carregar pacotes necessários
library(ggplot2)
library(patchwork) # Para combinar gráficos estáticos
# Ajuste de fonte para legendas dos eixos e títulos
<- theme(
font_theme axis.title = element_text(size = 10), # Tamanho da fonte dos títulos dos eixos
axis.text = element_text(size = 8), # Tamanho da fonte dos textos nos eixos
plot.title = element_text(size = 12, face = "bold", hjust = 0.5) # Título do gráfico
)
# Função auxiliar para criar boxplots com linha da mediana em branco
<- function(data, x, y, fill, title, x_label, y_label) {
create_boxplot ggplot(data, aes_string(x = x, y = y, fill = fill)) +
geom_boxplot(outlier.color = "black", color = "black", median.colour = "white") + # Linha de mediana em branco
scale_fill_grey(start = 0.6, end = 0.2) + # Escala de cinza
labs(title = title, x = x_label, y = y_label) +
theme_minimal() +
+
font_theme theme(legend.position = "none") # Remover legenda para evitar redundância
}
# Criar os boxplots para Tempo_A
<- create_boxplot(dados_mel, "Tempo.Armazenamento..meses.", "Fenólicos", "Tempo.Armazenamento..meses.","Distribuição dos compostos fenólicos", "Tempo de armazenamento (meses)", "Fenólico") p1
Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
ℹ Please use tidy evaluation idioms with `aes()`.
ℹ See also `vignette("ggplot2-in-packages")` for more information.
Warning in geom_boxplot(outlier.color = "black", color = "black", median.colour
= "white"): Ignoring unknown parameters: `median.colour`
##p2 <- create_boxplot(dados_mel, "Armazenamento", "Umidade", "Armazenamento",
## "Distribuição da variável Umidade",
## "Temperatura de armazenamento", "Umidade")
#p3 <- create_boxplot(dados_mel, "Umidade", `Tempo de aquecimento`,
# "Distribuição da variável HMF",
# "Tempo de aquecimento (minutos)", "HMF")
# Combinar os gráficos usando patchwork
#GraficosBox <- (p1 | p2 ) # Combina gráficos de Tempo_A horizontalmente
# Exibir os gráficos
<- (p1)
GraficosBox GraficosBox
# Salvar em alta qualidade para publicação
ggsave("boxplots_Compostosfenólicos.png", GraficosBox, dpi = 300, width = 12, height = 4)
# Carregar pacotes necessários
library(ggplot2)
library(patchwork) # Para combinar gráficos estáticos
# Ajuste de fonte para legendas dos eixos e títulos
<- theme(
font_theme axis.title = element_text(size = 10), # Tamanho da fonte dos títulos dos eixos
axis.text = element_text(size = 8), # Tamanho da fonte dos textos nos eixos
plot.title = element_text(size = 12, face = "bold", hjust = 0.5) # Título do gráfico
)