Caderno - Análise de Dados (FIP-606) – Abner
  • Apresentação
  • Sobre o R
    • A disciplina
    • Introdução ao R
    • Carregamento de Dados
  • Análises Estatísticas
    • Testes entre dois grupos
    • Comparações múltiplas (ANOVA)
    • ANOVA DBC/Parcelas
    • Regressão
    • AUDPC
  • Mapa
  • Projeto no R
    • Sobre
    • Obtenção de Dados
    • Análise
  1. anova_dbc_parcelas_sub

Navegação

  • ANOVA - DBC
    • Importação de dados
    • Transformação de dados
    • Visualização exploratória
    • Análise de variância (ANOVA) com efeito de bloco
    • Diagnóstico do modelo
    • Estimativa de médias ajustadas e comparação múltipla
  • ANOVA - Parcelas Subdivididas
    • Importação dos dados
    • Visualização exploratória
    • Criação de fator de subparcela
    • Modelo linear misto para parcelas subdivididas
    • Diagnóstico do modelo
    • Médias ajustadas por híbrido dentro de cada método
    • Correlação entre Yield e Index
      • Comparações múltiplas com letras (Teste de Tukey)

anova_dbc_parcelas_sub

# Pacotes necessários para o script completo
library(gsheet)       # Para importar dados do Google Sheets
library(Hmisc)        # Para stat_summary e manipulação de dados
library(ggplot2)      # Para visualizações
library(lme4)         # Para modelos lineares mistos (lmer)
library(DHARMa)       # Para diagnóstico de modelos mistos
library(emmeans)      # Para estimativas de médias marginais (EMMs)
library(multcomp)     # Para comparação múltipla com letras (cld)
library(car)          # Para Anova tipo II/III e utilidades adicionais

ANOVA - DBC

O Delineamento em Blocos Casualizados (DBC) é utilizado quando há uma variação ambiental conhecida que pode interferir nos resultados do experimento. Ele incorpora os três princípios da experimentação:

  • Repetição;

  • Casualização;

  • Controle local.

Neste caso, os tratamentos são aleatoriamente atribuídos dentro de cada bloco, o que permite controlar a variação não desejada (ex: diferenças de solo, luminosidade ou umidade no campo experimental).

Importação de dados

A importação de dados é feita diretamente de uma planilha do Google Sheets usando a função gsheet2tbl(). Essa abordagem é útil porque permite manter os dados atualizados automaticamente.

library(gsheet)
campo <- gsheet2tbl("https://docs.google.com/spreadsheets/d/1bq2N19DcZdtax2fQW9OHSGMR0X2__Z9T/edit?gid=866852711#gid=866852711")

Transformação de dados

Antes das análises, as variáveis categóricas são convertidas para o tipo fator, o que é essencial para que sejam tratadas corretamente nos modelos.

library(Hmisc)
campo$TRAT <- factor(campo$TRAT)
campo$BLOCO <- factor(campo$BLOCO)

Visualização exploratória

Gráfico de dispersão por tratamento, com média e intervalo de confiança em vermelho.

  campo |>
    ggplot(aes(TRAT, PROD)) +
    geom_jitter(width = 0.1) +
    stat_summary(
    fun.data = "mean_cl_boot",
    colour = "red", size = 0.3
  )

Análise de variância (ANOVA) com efeito de bloco

É utilizado um modelo linear misto (lmer) com TRAT como efeito fixo e BLOCO como efeito aleatório.

library(lme4)
m_campo <- lmer(PROD ~ TRAT + (1|BLOCO), data = campo)
anova(m_campo)
Analysis of Variance Table
     npar  Sum Sq Mean Sq F value
TRAT    7 2993906  427701  2.9227

Diagnóstico do modelo

Avaliação dos resíduos simulados, fundamental para validar as suposições da ANOVA (normalidade e homocedasticidade).

library(DHARMa)
plot(simulateResiduals(fittedModel = m_campo))

Estimativa de médias ajustadas e comparação múltipla

As médias ajustadas (EMMs) são estimadas para os tratamentos, seguidas de comparação de grupos usando letras diferentes (cld).

means_campo <- emmeans(m_campo, ~TRAT)
means_campo
 TRAT emmean  SE df lower.CL upper.CL
 1      4219 191 24     3824     4614
 2      4935 191 24     4540     5330
 3      5110 191 24     4715     5505
 4      5140 191 24     4745     5535
 5      5122 191 24     4727     5517
 6      5256 191 24     4861     5651
 7      5128 191 24     4733     5522
 8      5078 191 24     4683     5473

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 
plot(means_campo)

library(multcomp)
cld(means_campo)
 TRAT emmean  SE df lower.CL upper.CL .group
 1      4219 191 24     3824     4614  1    
 2      4935 191 24     4540     5330  12   
 8      5078 191 24     4683     5473  12   
 3      5110 191 24     4715     5505  12   
 5      5122 191 24     4727     5517  12   
 7      5128 191 24     4733     5522   2   
 4      5140 191 24     4745     5535   2   
 6      5256 191 24     4861     5651   2   

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 
P value adjustment: tukey method for comparing a family of 8 estimates 
significance level used: alpha = 0.05 
NOTE: If two or more means share the same grouping symbol,
      then we cannot show them to be different.
      But we also did not show them to be the same. 
pwpp(means_campo)

ANOVA - Parcelas Subdivididas

O delineamento em parcelas subdivididas é usado quando se deseja estudar dois fatores, mas um deles exige maior parcela experimental. Neste caso, o fator principal é o híbrido e o fator secundário é o método. O uso de blocos e a subdivisão permitem maior controle experimental e economia de recursos.

Importação dos dados

milho <- gsheet2tbl("https://docs.google.com/spreadsheets/d/1bq2N19DcZdtax2fQW9OHSGMR0X2__Z9T/edit?gid=1345524759#gid=1345524759")

Visualização exploratória

milho |> 
  ggplot(aes(hybrid, index, color = method)) +
  geom_jitter(width = 0.1)+
  coord_flip() +
  facet_wrap(~method)

Criação de fator de subparcela

A interação entre hybrid e block representa as subparcelas dentro de cada parcela principal.

milho$hybrid_block <- interaction(milho$hybrid,milho$block)
#ou
#milho |> 
 # mutate(hybrid_bock = interaction(hybrid,block))

Modelo linear misto para parcelas subdivididas

A análise considera a interação entre híbrido e método como efeitos fixos, e os blocos aninhados como efeito aleatório.

library(lme4)
m_milho <- lmer(index ~ hybrid*method + 
                  (1 | block:hybrid_block),
                data = milho)
car::Anova(m_milho)
Analysis of Deviance Table (Type II Wald chisquare tests)

Response: index
                Chisq Df Pr(>Chisq)   
hybrid        11.4239  5    0.04359 * 
method         4.6964  1    0.03023 * 
hybrid:method 15.8062  5    0.00742 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Diagnóstico do modelo

plot(simulateResiduals(m_milho))

Médias ajustadas por híbrido dentro de cada método

media_milho <- emmeans(m_milho, ~ hybrid | method)
media_milho
method = pin:
 hybrid   emmean   SE   df lower.CL upper.CL
 30F53 HX   25.3 3.57 24.9     17.9     32.6
 30F53 YH   24.6 3.57 24.9     17.3     31.9
 30K64      20.6 3.57 24.9     13.2     27.9
 30S31H     38.1 3.57 24.9     30.8     45.4
 30S31YH    32.5 3.57 24.9     25.2     39.8
 BG7049H    19.4 3.57 24.9     12.1     26.8

method = silk:
 hybrid   emmean   SE   df lower.CL upper.CL
 30F53 HX   25.0 3.57 24.9     17.7     32.3
 30F53 YH   26.2 3.57 24.9     18.9     33.6
 30K64      21.5 3.57 24.9     14.2     28.8
 30S31H     26.5 3.57 24.9     19.2     33.8
 30S31YH    26.6 3.57 24.9     19.3     34.0
 BG7049H    19.2 3.57 24.9     11.8     26.5

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

Correlação entre Yield e Index

Neste estudo, foi investigada a relação entre o índice index e a produtividade yield de plantas de milho. Para isso, utilizou-se um gráfico de dispersão com uma reta de regressão linear, gerado com a função ggplot. A dispersão dos pontos foi suavizada com geom_jitter() para evitar sobreposição, e a tendência entre as variáveis foi representada por uma linha ajustada via geom_smooth(method = "lm"), que aplica um modelo linear simples.

milho |> ggplot(aes(index, yield)) + 
  geom_jitter() +
  geom_smooth(method = "lm")

#correlação
cor1 <- cor(milho$index, milho$yield)
cor1*cor1*100
[1] 6.323713
cor.test(milho$index, milho$yield)

    Pearson's product-moment correlation

data:  milho$index and milho$yield
t = -1.7622, df = 46, p-value = 0.08468
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.49988704  0.03517829
sample estimates:
       cor 
-0.2514699 

O gráfico resultante indica uma tendência negativa: à medida que os valores do índice aumentam, a produtividade tende a diminuir. Essa tendência é expressa pela inclinação negativa da reta azul, e a área sombreada ao redor dela representa o intervalo de confiança do modelo de regressão linear, evidenciando a incerteza associada à estimativa da média.

Para quantificar essa relação, foi calculado o coeficiente de correlação de Pearson entre as duas variáveis. O valor obtido foi de aproximadamente -0,25, indicando uma correlação fraca e negativa entre o índice e a produtividade. Em outras palavras, embora exista uma tendência de redução da produtividade com o aumento do índice, essa relação não é forte. O coeficiente de determinação associado (R²) foi de apenas 6,32%, o que significa que apenas cerca de 6% da variação observada na produtividade pode ser explicada pela variação no índice. O restante se deve a outros fatores não considerados neste modelo.

Adicionalmente, foi realizado o teste estatístico de correlação de Pearson. O valor de p obtido foi de 0,084, o que não é estatisticamente significativo ao nível de 5% (p > 0,05). Isso significa que não há evidências suficientes para rejeitar a hipótese nula de que não existe correlação entre as variáveis. O intervalo de confiança para a correlação (de -0,50 a 0,035) inclui o valor zero, reforçando essa conclusão.

Portanto, embora o gráfico sugira uma leve tendência decrescente entre o índice e a produtividade, os resultados estatísticos indicam que essa associação é fraca e não significativa. É provável que outros fatores estejam influenciando a produtividade de maneira mais relevante do que o índice analisado.

summary(milho)
    hybrid              block         method              index      
 Length:48          Min.   :1.00   Length:48          Min.   :14.40  
 Class :character   1st Qu.:1.75   Class :character   1st Qu.:21.10  
 Mode  :character   Median :2.50   Mode  :character   Median :22.75  
                    Mean   :2.50                      Mean   :25.46  
                    3rd Qu.:3.25                      3rd Qu.:28.07  
                    Max.   :4.00                      Max.   :48.90  
                                                                     
     yield           hybrid_block
 Min.   : 6621   30F53 HX.1: 2   
 1st Qu.: 8058   30F53 YH.1: 2   
 Median : 9772   30K64.1   : 2   
 Mean   :10006   30S31H.1  : 2   
 3rd Qu.:11816   30S31YH.1 : 2   
 Max.   :14280   BG7049H.1 : 2   
                 (Other)   :36   

Comparações múltiplas com letras (Teste de Tukey)

Após a ANOVA e a obtenção das médias ajustadas com emmeans, é possível realizar um teste de comparações múltiplas para verificar quais tratamentos diferem estatisticamente entre si. Utiliza-se a função cld() do pacote multcomp, que adiciona letras indicando grupos estatisticamente diferentes com base em um teste como o de Tukey. Esse tipo de análise é comum em experimentos com múltiplos tratamentos, como nos delineamentos em parcelas subdivididas.

Médias com letras iguais pertencem ao mesmo grupo estatístico (ou seja, não diferem significativamente). Médias com letras diferentes pertencem a grupos distintos e são estatisticamente diferentes ao nível de significância adotado (geralmente 5%).

cld_milho <- cld(media_milho, Letters = letters, adjust = "tukey")
cld_milho
method = pin:
 hybrid   emmean   SE   df lower.CL upper.CL .group
 BG7049H    19.4 3.57 24.9     9.26     29.6  a    
 30K64      20.6 3.57 24.9    10.36     30.7  a    
 30F53 YH   24.6 3.57 24.9    14.41     34.8  ab   
 30F53 HX   25.3 3.57 24.9    15.08     35.5  ab   
 30S31YH    32.5 3.57 24.9    22.31     42.7  ab   
 30S31H     38.1 3.57 24.9    27.91     48.3   b   

method = silk:
 hybrid   emmean   SE   df lower.CL upper.CL .group
 BG7049H    19.2 3.57 24.9     8.98     29.4  a    
 30K64      21.5 3.57 24.9    11.31     31.7  a    
 30F53 HX   25.0 3.57 24.9    14.81     35.2  a    
 30F53 YH   26.2 3.57 24.9    16.06     36.4  a    
 30S31H     26.5 3.57 24.9    16.31     36.7  a    
 30S31YH    26.6 3.57 24.9    16.46     36.8  a    

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 
Conf-level adjustment: sidak method for 6 estimates 
P value adjustment: tukey method for comparing a family of 6 estimates 
significance level used: alpha = 0.05 
NOTE: If two or more means share the same grouping symbol,
      then we cannot show them to be different.
      But we also did not show them to be the same. 

© 2025 – Abner Reurisson M. Palhares

FIP-606 - Análise de Dados

Feito utilizando Quarto website