1 Introdução

1.1 Objetivo do e-book

Este e-book apresenta as principais análises estatísticas usadas em pesquisa, com explicações conceituais e exemplos de código em R. É direcionado a alunos de graduação, pós graduação, professores e profissionais que querem entender mais sobre análise de dados.

1.2 Como escolher a análise estatística correta

A escolha da análise estatística adequada é um dos passos mais importantes para garantir resultados confiáveis e interpretações corretas.
Essa decisão depende diretamente das características dos seus dados e da forma como o experimento foi conduzido.

De modo geral, é preciso considerar os seguintes aspectos:

1.2.1 Tipo de variável

Antes de escolher a análise estatística, é essencial compreender que tipo de dado você possui.
Cada tipo de variável requer um tratamento estatístico diferente, pois os modelos assumem propriedades específicas (como distribuição, escala e natureza da medição).

Os dados em experimentos e pesquisas científicas podem ser classificados de diversas formas.
A tabela a seguir resume os principais tipos de variáveis e as análises mais adequadas para cada caso.

Tipo de Dado Exemplos Características Técnicas de Análise Comuns
Contínuo Altura de plantas, produtividade, peso, temperatura Assume valores em uma escala contínua; geralmente seguem distribuição normal. Teste t, ANOVA, Regressão Linear, Modelos Mistos
Discreto Número de folhas, número de frutos, número de insetos Valores inteiros, geralmente oriundos de contagens. GLM Poisson, Binomial Negativa, Testes não paramétricos
Categórico Nominal Tratamento, genótipo, local, cor, espécie Sem ordem lógica entre as categorias. Teste Qui-quadrado, Modelos Log-lineares, GLM com variável dummy
Categórico Ordinal Estágio fenológico, notas de severidade, níveis de dano Categorias ordenadas, mas sem intervalos numéricos definidos. Testes de tendência, Regressão Ordinal, Kruskal–Wallis
Proporção / Percentual Germinação (%), sobrevivência (%), incidência de doença (%) Restrito entre 0 e 1 (ou 0 e 100%); distribuição assimétrica. GLM Binomial (logit ou probit), Transformação Arco-seno, Modelos Beta
Contagem Nº de sementes germinadas, Nº de insetos, Nº de falhas Valores não negativos e inteiros; variância geralmente dependente da média. GLM Poisson, GLM Binomial Negativa
Binário (0/1) Presença/ausência, sucesso/falha, vivo/morto Duas categorias mutuamente exclusivas. Regressão Logística, GLM Binomial
Proporcional Composta Fração de um total (ex.: área coberta / área total) Derivada de contagens, mas tratada como proporção contínua. GLM Beta, Transformação logit
Tempo / Sobrevivência Tempo até germinação, duração até evento, falha mecânica Medidas de tempo ou duração; podem incluir censura. Análise de Sobrevivência (Kaplan-Meier, Cox), Regressão Exponencial
Espacial / Geográfica Coordenadas GPS, posição no campo, altitude Dados associados a localização espacial. Geoestatística, Krigagem, Modelos Mistos Espaciais
Temporal / Série Temporal Temperatura diária, chuva mensal, produção anual Observações sequenciais ao longo do tempo. Modelos ARIMA, Regressão Temporal, Modelos Mistos Longitudinais
Composicional Fração de componentes (ex.: areia, silte, argila) que somam 1 Dados interdependentes entre si (soma constante). Análise Composicional, Transformações Log-ratio (clr, alr, ilr)
Multivariado Conjunto de variáveis correlacionadas (ex.: caracteres agronômicos) Conjunto de respostas medidas no mesmo indivíduo. PCA, Análise Fatorial, Discriminante, Cluster Analysis

1.2.2 Número de grupos ou condições

Quando há apenas duas médias a comparar, geralmente aplicamos o teste t (ou Mann–Whitney, se os dados não forem normais).
Se existem três ou mais grupos, a análise adequada é a ANOVA (ou Kruskal–Wallis, na versão não paramétrica), seguida de testes de comparação múltipla como Tukey, Scott-Knott ou Dunnett.

1.2.3 Estrutura do experimento

A estrutura do experimento é um dos pilares mais importantes da análise estatística, pois define o tipo de modelo que deve ser ajustado aos dados.
Antes de escolher o método de análise, é essencial compreender os três princípios básicos da experimentação, o delineamento utilizado e a presença de fatores ou interações.


1.2.3.1 Princípios básicos da experimentação

  1. Repetição
    A repetição é a aplicação do mesmo tratamento mais de uma vez.
    Ela permite estimar o erro experimental e aumentar a precisão dos resultados.
    Sem repetições, não é possível avaliar se as diferenças observadas entre tratamentos são reais ou apenas fruto do acaso.

  2. Aleatorização
    A aleatorização consiste em distribuir os tratamentos ao acaso entre as unidades experimentais.
    Esse princípio garante que fatores não controlados (como variações de solo ou temperatura) não causem viés sistemático nos resultados.

  3. Controle local (ou bloqueamento)
    O controle local é obtido ao agrupar unidades experimentais homogêneas em blocos, de modo que a variação dentro de cada bloco seja mínima.
    Isso reduz o erro experimental e aumenta a capacidade de detectar diferenças reais entre tratamentos.


1.2.3.2 Delineamentos experimentais mais comuns

Os delineamentos definem como os tratamentos são distribuídos nas unidades experimentais.

  • Delineamento Inteiramente Casualizado (DIC)
    • Indicado quando as unidades experimentais são homogêneas.
    • Os tratamentos são atribuídos aleatoriamente a todas as unidades.
    • Modelo estatístico:
      \[ Y_{ij} = \mu + T_i + \varepsilon_{ij} \]
      onde \(T_i\) é o efeito do tratamento e \(\varepsilon_{ij}\) o erro experimental.
  • Delineamento em Blocos Casualizados (DBC)
    • Utilizado quando há variação sistemática entre blocos (ex.: gradiente de fertilidade, umidade, luminosidade).
    • Os tratamentos são aplicados em cada bloco, permitindo controlar a variação entre eles.
    • Modelo estatístico:
      \[ Y_{ij} = \mu + B_j + T_i + \varepsilon_{ij} \]
      onde \(B_j\) é o efeito do bloco.

1.2.3.3 Experimentos fatoriais

Os experimentos fatoriais avaliam simultaneamente dois ou mais fatores (ex.: doses × cultivares, adubo × irrigação).
Esses delineamentos permitem:

  • Estimar os efeitos principais de cada fator.
  • Avaliar interações entre fatores, ou seja, verificar se o efeito de um fator depende do nível do outro.

Por exemplo, em um experimento fatorial \(2 \times 3\) (dois fatores com 2 e 3 níveis), o modelo pode ser:

\[ Y_{ijk} = \mu + A_i + B_j + (A \times B)_{ij} + \varepsilon_{ijk} \]

Os experimentos fatoriais podem ser conduzidos em DIC, DBC ou até em parcelas subdivididas, dependendo da estrutura e do controle desejado sobre as fontes de variação.


1.2.3.4 Escolha do modelo estatístico

A presença de repetições, blocos, anos, locais ou tratamentos hierárquicos define se o modelo será:

  • Fixos (ANOVA tradicional) — quando todos os efeitos de interesse são conhecidos e controlados.
  • Mistos (LMM/GLMM) — quando há efeitos aleatórios (ex.: blocos, locais, anos, genótipos), permitindo generalizar resultados para populações maiores.

Em resumo:
A correta definição da estrutura experimental é o primeiro passo para uma análise estatística válida e confiável.
Negligenciar os princípios da experimentação pode levar a interpretações incorretas e conclusões não reprodutíveis.

1.2.4 Pressupostos dos modelos

Antes de aplicar testes paramétricos — como ANOVA, correlação de Pearson e regressão linear — é fundamental verificar se os dados atendem aos pressupostos do modelo estatístico.
Esses pressupostos garantem a validade das inferências e a confiabilidade das conclusões.
Em geral, os modelos lineares clássicos assumem cinco condições principais:


1.2.4.1 Normalidade dos resíduos

Os resíduos (diferença entre valores observados e ajustados) devem seguir uma distribuição normal com média zero.
Esse pressuposto assegura que os testes de significância (como F e t) tenham validade.

  • Como verificar:
    • Testes formais: Shapiro-Wilk (shapiro.test() no R)
    • Gráficos: histograma dos resíduos, gráfico Q-Q plot (qqnorm() e qqline())
  • Como corrigir:
    • Aplicar transformações nos dados (log, raiz quadrada, Box-Cox, arco-seno, etc.)
    • Utilizar modelos não paramétricos (ex.: Kruskal-Wallis, Spearman) se a violação for severa.

1.2.4.2 Homogeneidade de variâncias (homocedasticidade)

A variância dos resíduos deve ser constante entre todos os grupos ou níveis dos fatores.
Em outras palavras, a dispersão dos erros deve ser semelhante em todas as condições.

  • Como verificar:
    • Testes formais: Levene (leveneTest() do pacote car), Bartlett (bartlett.test())
    • Gráficos: resíduos vs. valores ajustados
  • Como corrigir:
    • Aplicar transformações nos dados (log, raiz quadrada)
    • Utilizar modelos lineares generalizados (GLM) ou modelos mistos (LMM/GLMM) com estrutura de variância adequada.

1.2.4.3 Independência dos erros

Os erros (resíduos) devem ser independentes entre si, ou seja, o erro de uma observação não deve influenciar o erro de outra.
A violação desse pressuposto é comum em dados temporais ou espaciais.

  • Como verificar:
    • Analisar o resíduo em função da ordem de coleta
    • Teste de autocorrelação de Durbin–Watson (durbinWatsonTest() do pacote car)
  • Como corrigir:
    • Ajustar modelos com estrutura de correlação (ex.: AR(1) para séries temporais)
    • Usar modelos mistos com correlação por sujeito/local ou técnicas de geoestatística.

1.2.4.4 Linearidade da relação entre variáveis

Nos modelos de regressão e correlação, supõe-se que exista uma relação linear entre as variáveis dependente e independente.
A presença de padrões não lineares compromete a interpretação dos coeficientes.

  • Como verificar:
    • Gráfico de dispersão com linha ajustada (plot() e abline(lm()) no R)
    • Análise do gráfico de resíduos: padrões curvilíneos indicam violação.
  • Como corrigir:
    • Aplicar transformações nas variáveis (log, quadrado, inverso, etc.)
    • Utilizar modelos não lineares ou regressões polinomiais/segmentadas.

1.2.4.5 Aditividade do modelo

O modelo linear assume que os efeitos dos fatores e preditores se somam de forma aditiva (sem interação não-modelada ou dependência multiplicativa).
A aditividade significa que o efeito conjunto de duas variáveis é a soma dos efeitos individuais (exceto quando explicitamente incluída uma interação).

  • Como verificar:
    • Em experimentos com dois ou mais fatores, avalie o termo de interação (ex.: A:B em lm(response ~ A * B)).
    • Gráficos de interação (médias por nível) ajudam a visualizar não–aditividade.
    • Padrões não paralelos nas linhas de interação indicam violação da aditividade.
  • Como corrigir:
    • Incluir termos de interação no modelo quando a interação for significativa.
    • Transformar variáveis (log, raiz) pode às vezes tornar efeitos multiplicativos em aditivos.
    • Usar modelos que permitam estrutura não aditiva (por exemplo, modelos não lineares, termos polinomiais, ou modelos aditivos generalizados — GAM).

1.2.4.6 ⚙️ Resumo dos principais pressupostos

Pressuposto O que garante Como verificar Alternativas se violado
Normalidade dos resíduos Validade dos testes F e t Shapiro-Wilk, Q–Q plot Transformar dados ou usar testes não paramétricos
Homogeneidade de variâncias Comparabilidade entre grupos Levene, Bartlett, resíduos vs. ajustados Transformação ou GLM/LMM com variância heterogênea
Independência dos erros Erros não correlacionados Durbin–Watson, inspeção visual Modelos com estrutura de correlação
Linearidade Relação linear entre variáveis Gráficos de dispersão e resíduos Transformações ou modelos não lineares
Aditividade Efeitos somam-se de forma linear Teste e gráfico de interação Incluir interações, transformar ou usar modelos não aditivos

Em resumo:
A análise estatística correta é aquela que respeita os pressupostos do modelo, reflete o delineamento experimental e considera a natureza dos dados.
Verificar e, quando necessário, corrigir violações de pressupostos é essencial para que os resultados sejam estatisticamente válidos e biologicamente interpretáveis. —

# -------------------------------------------------------------
# Exemplo prático: Verificação dos pressupostos de modelos lineares
# -------------------------------------------------------------

# Pacotes necessários
library(car)        # para testes de Levene e Durbin-Watson
library(ggplot2)    # para visualizações
library(performance) # diagnóstico completo de modelos
library(dplyr)

# Gerando dados simulados para o exemplo
set.seed(123)
dados <- data.frame(
  tratamento = factor(rep(LETTERS[1:4], each = 10)),
  y = c(rnorm(10, 10, 1),
        rnorm(10, 12, 1.2),
        rnorm(10, 14, 1),
        rnorm(10, 15, 1.5))
)

# Ajuste do modelo linear
modelo <- lm(y ~ tratamento, data = dados)

# -------------------------------------------------------------
# 1. NORMALIDADE DOS RESÍDUOS
# -------------------------------------------------------------
shapiro.test(residuals(modelo))   # Teste de Shapiro-Wilk

    Shapiro-Wilk normality test

data:  residuals(modelo)
W = 0.97808, p-value = 0.6186
qqnorm(residuals(modelo)); qqline(residuals(modelo), col = "red")  # Q-Q plot

# -------------------------------------------------------------
# 2. HOMOGENEIDADE DE VARIÂNCIAS
# -------------------------------------------------------------
leveneTest(y ~ tratamento, data = dados)  # Teste de Levene
Levene's Test for Homogeneity of Variance (center = median)
      Df F value Pr(>F)
group  3  0.1577 0.9241
      36               
bartlett.test(y ~ tratamento, data = dados)  # Teste de Bartlett

    Bartlett test of homogeneity of variances

data:  y by tratamento
Bartlett's K-squared = 1.8999, df = 3, p-value = 0.5934
plot(fitted(modelo), residuals(modelo),
     xlab = "Valores Ajustados", ylab = "Resíduos",
     main = "Homogeneidade de variâncias")
abline(h = 0, col = "red")

# -------------------------------------------------------------
# 3. INDEPENDÊNCIA DOS ERROS
# -------------------------------------------------------------
durbinWatsonTest(modelo)  # Teste de Durbin–Watson
 lag Autocorrelation D-W Statistic p-value
   1     -0.05766103      2.072777   0.782
 Alternative hypothesis: rho != 0
plot(residuals(modelo), type = "b", pch = 19,
     ylab = "Resíduos", xlab = "Ordem das observações",
     main = "Verificação da independência dos erros")
abline(h = 0, col = "red")

# -------------------------------------------------------------
# 4. LINEARIDADE (Exemplo com variável contínua)
# -------------------------------------------------------------
# Simulando dados para regressão linear
set.seed(321)
x <- 1:50
y2 <- 3 + 2*x + rnorm(50, 0, 5)
modelo_lin <- lm(y2 ~ x)

# Gráfico de dispersão e linha ajustada
plot(x, y2, main = "Verificação da linearidade", pch = 19)
abline(modelo_lin, col = "blue", lwd = 2)

# Gráfico de resíduos
plot(fitted(modelo_lin), residuals(modelo_lin),
     xlab = "Valores Ajustados", ylab = "Resíduos",
     main = "Resíduos vs. Ajustados")
abline(h = 0, col = "red")

# -------------------------------------------------------------
# 5. ADITIVIDADE DO MODELO (Exemplo com dois fatores)
# -------------------------------------------------------------
set.seed(456)
fatorA <- factor(rep(c("A1", "A2"), each = 20))
fatorB <- factor(rep(c("B1", "B2"), 20))
y3 <- 10 + 2*(fatorA == "A2") + 3*(fatorB == "B2") + rnorm(40, 0, 1)
dados2 <- data.frame(fatorA, fatorB, y3)

# Modelo sem interação
mod_sem_int <- lm(y3 ~ fatorA + fatorB, data = dados2)
# Modelo com interação
mod_com_int <- lm(y3 ~ fatorA * fatorB, data = dados2)

anova(mod_sem_int, mod_com_int)  # Teste de aditividade
Analysis of Variance Table

Model 1: y3 ~ fatorA + fatorB
Model 2: y3 ~ fatorA * fatorB
  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     37 41.876                           
2     36 41.872  1 0.0044827 0.0039 0.9508
interaction.plot(fatorA, fatorB, y3,
                 main = "Verificação da aditividade (gráfico de interação)",
                 xlab = "Fator A", ylab = "Média de Y", col = c("blue", "red"))
legend("topleft", legend = levels(fatorB), col = c("blue", "red"), lty = 1, bty = "n")

# -------------------------------------------------------------
# 6. DIAGNÓSTICO GLOBAL DO MODELO (opcional)
# -------------------------------------------------------------
check_model(modelo)

2 Estatística Descritiva

A estatística descritiva é o primeiro passo na análise de dados experimentais.
Seu objetivo é resumir, organizar e interpretar as informações obtidas em um experimento, ajudando o pesquisador a compreender o comportamento das variáveis antes de aplicar modelos mais complexos, como ANOVA ou regressões.

Ela é composta principalmente por duas categorias de medidas: 1. Medidas de tendência central – indicam o valor em torno do qual os dados se concentram.
2. Medidas de dispersão – indicam o quanto os dados variam em torno desse valor central.


2.1 Medidas de tendência central

As medidas de tendência central resumem os dados em um único valor representativo.

  • Média (\(\bar{x}\)):
    É o valor médio de todas as observações.
    É adequada quando os dados são simétricos e não possuem outliers.
    \[\bar{x} = \frac{1}{n}\sum_{i=1}^n x_i\]

    Exemplo: produtividade média de soja em um experimento.

  • Mediana:
    É o valor central dos dados ordenados.
    É mais apropriada quando há valores extremos, pois não é influenciada por outliers.

    Exemplo: altura mediana de plantas em um ensaio com alguns indivíduos muito altos.

  • Moda:
    É o valor mais frequente.
    Útil em dados categóricos ou discretos (ex: classes de solo, notas, categorias de germinação).


2.2 Medidas de dispersão

As medidas de dispersão avaliam a variabilidade dos dados — ou seja, o quanto as observações se afastam da média.

  • Variância (\(s^2\)):
    Mede o grau de dispersão dos dados.
    \[s^2 = \frac{1}{n-1}\sum_{i=1}^n (x_i - \bar{x})^2\]

  • Desvio padrão (\(s\)):
    É a raiz quadrada da variância e expressa a dispersão na mesma unidade dos dados.
    \[s = \sqrt{s^2}\]
    Quanto maior o desvio padrão, mais heterogêneos são os dados.

  • Erro padrão da média (SE):
    Mede a precisão da média amostral como estimativa da média populacional.
    \[SE = \frac{s}{\sqrt{n}}\]
    Valores menores indicam maior confiança na média.

  • Coeficiente de variação (CV%):
    Relaciona o desvio padrão com a média, permitindo comparar variabilidades entre variáveis com diferentes escalas.
    \[CV(\%) = \frac{s}{\bar{x}} \times 100\]
    Em experimentos agrícolas, um CV inferior a 20% geralmente indica boa precisão experimental (dependendo da variável).


2.3 Exemplo prático em R

A seguir, um exemplo simples de cálculo das medidas descritivas para um vetor de dados simulados:

# Vetor de dados
dados <- c(12, 15, 13, 16, 14, 17)

# Cálculo das principais medidas descritivas
stats <- data.frame(
  Média = mean(dados),
  Mediana = median(dados),
  Variância = var(dados),
  Desvio_Padrão = sd(dados),
  Erro_Padrão = sd(dados) / sqrt(length(dados)),
  CV_percent = sd(dados) / mean(dados) * 100
)

# Exibir resultados arredondados
round(stats, 3)
  Média Mediana Variância Desvio_Padrão Erro_Padrão CV_percent
1  14.5    14.5       3.5         1.871       0.764     12.902

2.4 Visualização da distribuição dos dados

Os gráficos ajudam a interpretar visualmente as medidas descritivas e identificar possíveis assimetria ou outliers.


2.4.1 Histograma

O histograma mostra a distribuição de frequência dos dados, permitindo visualizar se eles seguem uma tendência simétrica ou assimétrica.

hist(dados,
     main = "Distribuição dos Dados (Histograma)",
     xlab = "Valores observados",
     ylab = "Frequência",
     col = "lightblue",
     border = "white")
abline(v = mean(dados), col = "red", lwd = 2, lty = 2)
text(mean(dados), 1, paste("Média =", round(mean(dados), 2)), pos = 4, col = "red")

2.4.2 Boxplot

O boxplot (ou diagrama de caixa) resume visualmente a mediana, os quartis e possíveis valores discrepantes (outliers).
É uma ferramenta útil para detectar outliers e comparar grupos em análises posteriores.

boxplot(dados,
        main = "Boxplot dos Dados",
        ylab = "Valores observados",
        col = "lightgreen",
        border = "darkgreen",
        notch = TRUE)
points(mean(dados), col = "red", pch = 19)
text(mean(dados), mean(dados) + 0.2, "Média", col = "red", pos = 4)

2.5 Conclusão

A estatística descritiva é uma etapa essencial para compreender o comportamento dos dados antes da modelagem estatística.
Ela permite:

  • Identificar padrões e valores extremos;
  • Avaliar a precisão experimental (via CV e SE);
  • Escolher o modelo estatístico mais adequado com base na distribuição e variabilidade observada.

Em resumo: conhecer os dados é o primeiro passo para interpretá-los corretamente.


3 Análise de Correlação

A análise de correlação é utilizada para medir o grau de associação entre duas variáveis numéricas.
Ela indica quanto uma variável se altera quando a outra varia, mas não estabelece relação de causa e efeito.


3.1 Métodos de Correlação e Comandos no R

Método Tipo de Associação Quando Utilizar Comando no R
Pearson Linear Quando as variáveis têm distribuição normal cor(x, y, method = "pearson")
Spearman Monotônica (cresce ou decresce de forma ordenada) Quando há outliers ou dados não lineares cor(x, y, method = "spearman")
Kendall Monotônica (baseada em pares ordenados) Para amostras pequenas ou dados com empates cor(x, y, method = "kendall")

3.2 Interpretação dos Coeficientes

Valor de r Interpretação
0.00 – 0.19 Correlação muito fraca
0.20 – 0.39 Correlação fraca
0.40 – 0.69 Correlação moderada
0.70 – 0.89 Correlação forte
0.90 – 1.00 Correlação muito forte

Dica:
O sinal do coeficiente indica a direção da relação:
r > 0: correlação positiva (ambas aumentam)
r < 0: correlação negativa (uma aumenta, a outra diminui)


3.3 Exemplo Prático

Simularemos dois conjuntos de dados com uma relação linear positiva:

set.seed(1)
x <- rnorm(50, mean = 10, sd = 2)
y <- 1.5 * x + rnorm(50, sd = 1)

# Visualização rápida
plot(x, y, 
     main = "Relação entre x e y",
     xlab = "Variável X", ylab = "Variável Y",
     pch = 19, col = "steelblue")
abline(lm(y ~ x), col = "red", lwd = 2)

# Calcular diferentes tipos de correlação
r_pearson  <- cor(x, y, method = "pearson")
r_spearman <- cor(x, y, method = "spearman")
r_kendall  <- cor(x, y, method = "kendall")

# Exibir resultados
data.frame(
  Método = c("Pearson", "Spearman", "Kendall"),
  Correlação = round(c(r_pearson, r_spearman, r_kendall), 3)
)
    Método Correlação
1  Pearson      0.930
2 Spearman      0.902
3  Kendall      0.734

3.4 Teste de Significância (p-valor)

O teste t de correlação verifica se a correlação é significativamente diferente de zero.
A função cor.test() realiza automaticamente esse teste e fornece o valor de p.

3.4.1 Testes de Correlação

# Simulação de dados
set.seed(1)
x <- rnorm(50)
y <- 2*x + rnorm(50, sd = 0.5)

# Teste para Pearson
teste_pearson <- cor.test(x, y, method = "pearson")

# Teste para Spearman
teste_spearman <- cor.test(x, y, method = "spearman")

# Teste para Kendall
teste_kendall <- cor.test(x, y, method = "kendall")

# Resultados resumidos
cat("Teste de Pearson: p-valor =", round(teste_pearson$p.value, 4), "\n")
Teste de Pearson: p-valor = 0 
cat("Teste de Spearman: p-valor =", round(teste_spearman$p.value, 4), "\n")
Teste de Spearman: p-valor = 0 
cat("Teste de Kendall: p-valor =", round(teste_kendall$p.value, 4), "\n")
Teste de Kendall: p-valor = 0 

✅ Interpretação: Se o p-valor < 0.05, rejeitamos H₀ e concluímos que há correlação significativa entre as variáveis. Caso contrário, não há evidência estatística de associação.

💡 Dica: Mesmo quando a correlação é significativa, lembre-se de que correlação não implica causalidade. Sempre analise os gráficos de dispersão e o contexto biológico/experimental antes de tirar conclusões.


4 Testes de Comparação de Médias

A comparação de médias é fundamental para verificar se diferentes tratamentos, grupos ou condições apresentam diferenças estatisticamente significativas em uma variável de interesse.

Antes de escolher o teste adequado, é importante considerar:

  • Se os dados seguem distribuição normal;
  • Se as variâncias são homogêneas (homocedasticidade);
  • Se as amostras são independentes ou pareadas.

4.1 Testes de Comparação de Duas Médias

4.1.1 Teste t de Student

O teste t é um dos testes paramétricos mais usados para comparar médias entre dois grupos.

4.1.1.1 Tipos de Teste t

Tipo Situação Exemplo
Independente Quando os grupos não têm relação entre si Tratamentos diferentes em parcelas distintas
Pareado Quando há relação entre as observações Antes e depois do tratamento, ou medidas repetidas

4.1.1.2 Hipóteses

\[ H_0: \mu_1 = \mu_2 \quad \text{(as médias são iguais)} \] \[ H_1: \mu_1 \neq \mu_2 \quad \text{(as médias são diferentes)} \]

4.1.1.3 Requisitos

  • Variáveis contínuas;
  • Distribuição aproximadamente normal;
  • Variâncias semelhantes (para o teste independente).

4.1.1.4 Exemplo em R

grupo1 <- c(10, 12, 9, 11, 10)
grupo2 <- c(13, 14, 12, 13, 15)

# Teste t para amostras independentes
t_ind <- t.test(grupo1, grupo2, var.equal = TRUE)

# Teste t pareado
t_paired <- t.test(grupo1, grupo1 + rnorm(5, 0, 0.5), paired = TRUE)

t_ind

    Two Sample t-test

data:  grupo1 and grupo2
t = -4.1603, df = 8, p-value = 0.003164
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -4.662883 -1.337117
sample estimates:
mean of x mean of y 
     10.4      13.4 
t_paired

    Paired t-test

data:  grupo1 and grupo1 + rnorm(5, 0, 0.5)
t = 1.892, df = 4, p-value = 0.1314
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
 -0.09282787  0.48997354
sample estimates:
mean difference 
      0.1985728 

✅ Interpretação: Se o p-valor < 0.05, rejeitamos H₀ e concluímos que há diferença significativa entre as médias.


4.1.2 Testes Não Paramétricos

Quando os dados não atendem aos pressupostos de normalidade (ex.: teste de Shapiro-Wilk indica p < 0.05) ou não apresentam homogeneidade de variância, utilizamos testes não paramétricos.
Esses testes não dependem de distribuição normal e comparam postos (ranks) em vez dos valores originais, tornando-os mais robustos para dados assimétricos, com outliers ou amostras pequenas.


4.1.2.1 Mann–Whitney U (ou Wilcoxon Rank-Sum)

  • Alternativa ao teste t para amostras independentes;
  • Indicado quando temos dois grupos distintos e queremos saber se suas distribuições diferem;
  • Compara as medianas ou a tendência central dos grupos com base nas posições (ranks).

Exemplo no R

# Dois grupos independentes
grupo1 <- c(10.1, 9.8, 10.5, 9.9, 10.2)
grupo2 <- c(11.5, 12.1, 11.8, 12.3, 11.9)

# Teste de Mann-Whitney
teste_mw <- wilcox.test(grupo1, grupo2, alternative = "two.sided")

teste_mw

    Wilcoxon rank sum exact test

data:  grupo1 and grupo2
W = 0, p-value = 0.007937
alternative hypothesis: true location shift is not equal to 0

✅ Interpretação: Se o p-valor < 0.05 → há diferença significativa entre os grupos, indicando que as distribuições são distintas. Se p ≥ 0.05 → não há evidência de diferença significativa.


4.1.2.2 Teste de Wilcoxon Pareado

O teste de Wilcoxon Pareado é uma alternativa não paramétrica ao teste t pareado.
Ele é utilizado quando os dados não seguem uma distribuição normal, mas há dependência entre as amostras, ou seja, quando se comparam as mesmas unidades experimentais em dois momentos ou condições.


Quando utilizar

  • Quando os mesmos indivíduos ou unidades experimentais são avaliados antes e depois de um tratamento, ou sob duas condições diferentes.
  • Quando as diferenças entre os pares não seguem distribuição normal.
  • Quando há outliers ou violação da homogeneidade de variâncias.
  • É especialmente útil em experimentos com n pequeno (amostras pequenas).

Hipóteses do Teste

  • H₀ (Hipótese nula): A mediana das diferenças entre os pares é igual a zero.
  • H₁ (Hipótese alternativa): A mediana das diferenças entre os pares é diferente de zero.

Exemplo em R

# Valores antes e depois de um tratamento
antes <- c(10, 11, 12, 13, 14)
depois <- c(11, 12, 12, 14, 15)

# Teste de Wilcoxon pareado
resultado_wilcox <- wilcox.test(antes, depois, paired = TRUE, alternative = "two.sided")

resultado_wilcox

    Wilcoxon signed rank test with continuity correction

data:  antes and depois
V = 0, p-value = 0.07186
alternative hypothesis: true location shift is not equal to 0

Interpretação dos Resultados

O resultado do teste de Wilcoxon Pareado (e outros testes não paramétricos) fornece informações essenciais para avaliar a existência de diferença entre grupos dependentes.


Elementos do Resultado

  • W: estatística de teste baseada na soma dos postos;
  • p-valor: probabilidade de observar um valor tão extremo quanto o obtido, sob a hipótese nula (H₀).

Interpretação prática: - Se p-valor < 0.05, rejeitamos H₀ → existe diferença significativa entre os grupos ou entre os momentos comparados.
- Se p-valor ≥ 0.05, não rejeitamos H₀ → não há evidência de diferença significativa.


4.1.2.3 Comparação entre Testes Paramétricos e Não Paramétricos

Situação Teste Paramétrico Teste Não Paramétrico
Duas amostras independentes t-test independente Mann–Whitney U
Duas amostras pareadas t-test pareado Wilcoxon Pareado
Mais de duas amostras independentes ANOVA Kruskal–Wallis
Mais de duas amostras pareadas ANOVA de medidas repetidas Friedman

Dica Prática 💡

Antes de escolher qual teste aplicar, siga estes passos:

  1. Verifique a normalidade das diferenças (teste de Shapiro–Wilk).
  2. Avalie a presença de outliers.

Mesmo que os testes paramétricos (como o t-test) sejam mais poderosos sob normalidade, os testes não paramétricos garantem resultados mais robustos e confiáveis quando os pressupostos não são atendidos.


Exemplo de Verificação de Normalidade

O código abaixo exemplifica como verificar se as diferenças entre pares seguem uma distribuição normal — etapa essencial antes de decidir entre o teste t pareado ou o Wilcoxon Pareado.

# Valores simulados (antes e depois)
antes <- c(10, 11, 12, 13, 14)
depois <- c(11, 12, 12, 14, 15)

# Diferenças entre os pares
dif <- depois - antes

# Teste de normalidade de Shapiro–Wilk
shapiro.test(dif)

    Shapiro-Wilk normality test

data:  dif
W = 0.55218, p-value = 0.000131

Interpretação:

p-valor ≥ 0.05: as diferenças seguem distribuição normal → use teste t pareado.

p-valor < 0.05: as diferenças não seguem distribuição normal → use Wilcoxon Pareado.

✅ Conclusão: O teste de Wilcoxon Pareado é ideal quando há dependência entre as observações e os pressupostos paramétricos não são satisfeitos. Ele oferece uma forma segura e robusta de detectar diferenças em dados pareados sem depender da normalidade.

4.2 Testes de Comparação de Médias para Mais de Duas Amostras

Quando queremos comparar três ou mais médias, o primeiro passo é aplicar uma ANOVA (Análise de Variância).
Se a ANOVA indicar diferença significativa entre os tratamentos (p-valor < 0.05), aplicamos testes de comparação múltipla para identificar quais médias diferem entre si.


4.2.1 Testes Paramétricos

Esses testes assumem que os resíduos seguem distribuição normal e que as variâncias são homogêneas entre os grupos.

4.2.1.1 Exemplo de ANOVA

# Criando dados simulados
set.seed(123)
dados <- data.frame(
  trat = factor(rep(c("A","B","C","D"), each=6)),
  y = c(rnorm(6,10,1), rnorm(6,12,1), rnorm(6,11,1), rnorm(6,13,1.2))
)

# ANOVA
mod_aov <- aov(y ~ trat, data = dados)
summary(mod_aov)
            Df Sum Sq Mean Sq F value Pr(>F)  
trat         3  14.31   4.769   4.878 0.0105 *
Residuals   20  19.55   0.978                 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Se o p-valor da ANOVA for < 0.05, aplicamos os testes de comparação múltipla a seguir.


4.2.1.2 Teste de Tukey (HSD)

O Teste de Tukey, também conhecido como HSD (Honest Significant Difference), é um dos testes mais utilizados para comparar médias após uma ANOVA significativa.


4.2.1.2.1 Quando Utilizar
  • Após uma ANOVA com p-valor < 0.05, indicando que há diferença entre as médias.
  • Quando você deseja comparar todas as médias entre si (comparações múltiplas).
  • Recomendado para experimentos com variâncias homogêneas e dados aproximadamente normais.

4.2.1.2.2 Hipóteses
  • H₀ (nula): As médias são iguais (não há diferença entre os grupos).
  • H₁ (alternativa): Pelo menos uma média é diferente das demais.

4.2.1.2.3 Exemplo em R
# Pacote necessário
# install.packages("agricolae")  # Execute apenas uma vez, se necessário
library(agricolae)

# Gerando dados simulados
set.seed(123)
dados <- data.frame(
  trat = factor(rep(c("A", "B", "C", "D"), each = 6)),
  y = c(rnorm(6, 10, 1), rnorm(6, 12, 1), rnorm(6, 11, 1), rnorm(6, 13, 1.2))
)

# ANOVA
mod_aov <- aov(y ~ trat, data = dados)
summary(mod_aov)
            Df Sum Sq Mean Sq F value Pr(>F)  
trat         3  14.31   4.769   4.878 0.0105 *
Residuals   20  19.55   0.978                 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Aplicando o teste de Tukey
tukey <- HSD.test(mod_aov, "trat", group = TRUE)
tukey$groups
         y groups
D 12.43757      a
B 11.94121     ab
C 11.04563     ab
A 10.44715      b
4.2.1.2.4 Interpretação dos Resultados
  • O resultado mostra as médias dos tratamentos e as letras de agrupamento.

  • Tratamentos com a mesma letra não diferem significativamente.

  • Tratamentos com letras diferentes possuem médias diferentes ao nível de significância adotado (geralmente 5%).


4.2.1.3 Teste de Duncan

O Teste de Duncan (Duncan’s Multiple Range Test) é um método de comparação múltipla de médias utilizado após uma ANOVA significativa.
Ele é menos conservador que o teste de Tukey, ou seja, tem maior poder para detectar diferenças, mas também maior risco de erro tipo I (falsos positivos).


4.2.1.3.1 Quando Utilizar
  • Após uma ANOVA com p < 0.05, indicando diferenças entre as médias.
  • Quando o pesquisador deseja detectar pequenas diferenças entre tratamentos.
  • Usado com frequência em ensaios agrícolas e zootécnicos, especialmente quando o número de tratamentos é grande.

4.2.1.3.2 Hipóteses
  • H₀ (nula): Todas as médias são iguais.
  • H₁ (alternativa): Pelo menos uma média é diferente das demais.

4.2.1.3.3 Exemplo em R
# Pacote necessário
# install.packages("agricolae")  # Execute apenas uma vez, se necessário
library(agricolae)

# Gerando dados simulados
set.seed(321)
dados <- data.frame(
  trat = factor(rep(c("A", "B", "C", "D"), each = 6)),
  y = c(rnorm(6, 10, 1), rnorm(6, 11, 1.1), rnorm(6, 12, 1), rnorm(6, 13, 1.2))
)

# ANOVA
mod_aov <- aov(y ~ trat, data = dados)
summary(mod_aov)
            Df Sum Sq Mean Sq F value   Pr(>F)    
trat         3  33.19  11.062   11.98 0.000104 ***
Residuals   20  18.48   0.924                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Teste de Duncan
duncan <- duncan.test(mod_aov, "trat", group = TRUE)
duncan$groups
         y groups
D 13.35005      a
C 12.25831     ab
B 11.47290      b
A 10.12324      c
4.2.1.3.4 Interpretação dos Resultados
  • O resultado apresenta as médias por tratamento e as letras de agrupamento.

  • Tratamentos com a mesma letra não diferem significativamente.

  • Tratamentos com letras diferentes apresentam médias diferentes ao nível de significância adotado (geralmente 5%).


4.2.1.4 Teste de Scheffé

O teste de Scheffé é um teste paramétrico utilizado para comparar médias de tratamentos após uma ANOVA significativa.
É mais conservador do que o teste de Tukey ou Duncan, pois controla melhor o erro tipo I, sendo recomendado quando se deseja uma análise mais rigorosa.

4.2.1.4.1 Quando utilizar
  • Após uma ANOVA significativa.
  • Quando há mais de dois tratamentos e deseja-se um teste mais conservador.
  • Adequado quando o número de comparações é grande.
4.2.1.4.2 Exemplo prático no R

# Instalar e carregar o pacote agricolae
install.packages("agricolae")
library(agricolae)

# Exemplo de dados
trat <- c("A", "B", "C", "D")
rep <- 4
valor <- c(10, 12, 13, 15,
           11, 13, 14, 16,
           9, 11, 12, 14,
           10, 12, 13, 15)

dados <- data.frame(trat = rep(trat, each = rep), valor)

# Análise de variância
modelo <- aov(valor ~ trat, data = dados)
summary(modelo)
            Df Sum Sq Mean Sq F value Pr(>F)
trat         3      8   2.667   0.615  0.618
Residuals   12     52   4.333               
# Aplicar o teste de Scheffé
teste_scheffe <- scheffe.test(modelo, "trat", group = TRUE)
teste_scheffe
$statistics
   MSerror Df        F Mean       CV  Scheffe CriticalDifference
  4.333333 12 3.490295 12.5 16.65333 3.235875           4.763078

$parameters
     test name.t ntr alpha
  Scheffe   trat   4  0.05

$means
  valor      std r       se Min Max  Q25  Q50  Q75
A  12.5 2.081666 4 1.040833  10  15 11.5 12.5 13.5
B  13.5 2.081666 4 1.040833  11  16 12.5 13.5 14.5
C  11.5 2.081666 4 1.040833   9  14 10.5 11.5 12.5
D  12.5 2.081666 4 1.040833  10  15 11.5 12.5 13.5

$comparison
NULL

$groups
  valor groups
B  13.5      a
A  12.5      a
D  12.5      a
C  11.5      a

attr(,"class")
[1] "group"
# Exibir o agrupamento de médias
teste_scheffe$groups
  valor groups
B  13.5      a
A  12.5      a
D  12.5      a
C  11.5      a
4.2.1.4.3 Interpretação
  • O resultado mostra as médias dos tratamentos e as letras de agrupamento.

  • Tratamentos com a mesma letra não diferem estatisticamente.

  • Por ser conservador, o teste de Scheffé tende a identificar menos diferenças significativas entre médias.


4.2.1.5 Teste de Dunnett

O teste de Dunnett é um teste paramétrico utilizado após uma ANOVA significativa, quando se deseja comparar vários tratamentos com um tratamento controle.
Diferente de Tukey ou Duncan, ele não compara todas as médias entre si, apenas compara cada tratamento ao controle, o que reduz o erro tipo I e aumenta o poder do teste.

4.2.1.5.1 Quando utilizar
  • Após uma ANOVA significativa.
  • Quando há um tratamento controle e os demais tratamentos serão comparados apenas a ele.
  • Ideal em experimentos agrícolas, biológicos ou farmacológicos com grupos experimentais e um controle.
4.2.1.5.2 Exemplo prático no R

# Instalar e carregar o pacote multcomp
library(multcomp)

# Exemplo de dados
trat <- factor(rep(c("Controle", "T1", "T2", "T3"), each = 5))
valor <- c(10, 9, 11, 10, 10,   # Controle
           12, 11, 13, 12, 12,  # T1
           14, 13, 15, 14, 13,  # T2
           11, 12, 10, 11, 12)  # T3

dados <- data.frame(trat, valor)

# Análise de variância
modelo <- aov(valor ~ trat, data = dados)
summary(modelo)
            Df Sum Sq Mean Sq F value   Pr(>F)    
trat         3  38.15   12.72   21.19 8.08e-06 ***
Residuals   16   9.60    0.60                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Aplicar o teste de Dunnett
comparacao <- glht(modelo, linfct = mcp(trat = "Dunnett"))
summary(comparacao)

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Dunnett Contrasts


Fit: aov(formula = valor ~ trat, data = dados)

Linear Hypotheses:
                   Estimate Std. Error t value Pr(>|t|)    
T1 - Controle == 0   2.0000     0.4899   4.082  0.00248 ** 
T2 - Controle == 0   3.8000     0.4899   7.757  < 0.001 ***
T3 - Controle == 0   1.2000     0.4899   2.449  0.06595 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Adjusted p values reported -- single-step method)
# Intervalos de confiança
confint(comparacao)

     Simultaneous Confidence Intervals

Multiple Comparisons of Means: Dunnett Contrasts


Fit: aov(formula = valor ~ trat, data = dados)

Quantile = 2.5888
95% family-wise confidence level
 

Linear Hypotheses:
                   Estimate lwr      upr     
T1 - Controle == 0  2.00000  0.73178  3.26822
T2 - Controle == 0  3.80000  2.53178  5.06822
T3 - Controle == 0  1.20000 -0.06822  2.46822
4.2.1.5.3 Interpretação
  • O teste compara cada tratamento com o grupo Controle.

  • O resultado apresenta a diferença média, o p-valor e o intervalo de confiança.

  • p-valor < 0.05 indicam que o tratamento difere significativamente do controle.


4.2.1.6 Teste de Scott-Knott

O teste de Scott-Knott é um método paramétrico de comparação de médias utilizado após uma ANOVA significativa.
Ele agrupa médias semelhantes em grupos homogêneos, maximizando a diferença entre os grupos e minimizando a diferença dentro de cada grupo.

Diferente de Tukey ou Duncan, o Scott-Knott não realiza comparações par a par.
Em vez disso, ele divide as médias em grupos distintos de forma hierárquica e estatisticamente fundamentada.

4.2.1.6.0.1 Quando utilizar
  • Após uma ANOVA significativa.
  • Quando se deseja formar grupos de médias homogêneas (sem sobreposição).
  • Amplamente utilizado em experimentos agrícolas e melhoramento genético, pois permite identificar grupos de genótipos com desempenho semelhante.
4.2.1.6.1 Exemplo prático no R

# Instalar e carregar o pacote ExpDes.pt
# Carregar o pacote
library(ExpDes.pt)

# Criar um conjunto de dados de exemplo
dados <- data.frame(
  Tratamento = rep(LETTERS[1:5], each = 5),
  Producao = c(10.1, 9.8, 10.5, 10.2, 9.9,
               12.1, 11.9, 12.4, 12.3, 12.0,
               15.2, 15.4, 15.6, 15.3, 15.1,
               14.9, 14.8, 15.0, 15.2, 14.7,
               11.1, 11.0, 11.3, 10.9, 11.2)
)

# Aplicar o teste de Scott-Knott
dic(dados$Tratamento,
    dados$Producao,
    mcomp = "sk")
------------------------------------------------------------------------
Quadro da analise de variancia
------------------------------------------------------------------------
           GL      SQ      QM     Fc      Pr>Fc
Tratamento  4 107.126 26.7814 617.08 1.2286e-20
Residuo    20   0.868  0.0434                  
Total      24 107.994                          
------------------------------------------------------------------------
CV = 1.64 %

------------------------------------------------------------------------
Teste de normalidade dos residuos ( Shapiro-Wilk ) 
Valor-p:  0.4347053 
De acordo com o teste de Shapiro-Wilk a 5% de significancia, os residuos podem ser considerados normais.
------------------------------------------------------------------------

------------------------------------------------------------------------
Teste de homogeneidade de variancia 
valor-p:  0.876361 
De acordo com o teste de bartlett a 5% de significancia, as variancias podem ser consideradas homogeneas.
------------------------------------------------------------------------

Teste de Scott-Knott
------------------------------------------------------------------------
  Grupos Tratamentos Medias
1      a           C  15.32
2      b           D  14.92
3      c           B  12.14
4      d           E  11.10
5      e           A  10.10
------------------------------------------------------------------------
4.2.1.6.2 Interpretação
  • As médias são agrupadas em letras (A, B, C, …) indicando grupos homogêneos.
  • Médias com a mesma letra não diferem estatisticamente entre si.
  • Médias com letras diferentes pertencem a grupos significativamente distintos.
4.2.1.6.3 Vantagens
  • Evita comparações redundantes.
  • Menor risco de erro tipo I acumulado.
  • Interpretação mais clara dos grupos de desempenho.

4.2.2 Testes Não Paramétricos para Comparação de Mais de Duas Médias

Quando os pressupostos de normalidade e homogeneidade de variâncias não são atendidos, os testes paramétricos como a ANOVA deixam de ser adequados.
Nessas situações, utilizamos os testes não paramétricos, que comparam postos (ranks) em vez dos valores originais dos dados.

Os dois principais testes não paramétricos para mais de duas amostras são:

  1. Kruskal–Wallis → usado para amostras independentes
  2. Friedman → usado para amostras dependentes (pareadas)

4.2.2.1 🧪 Teste de Kruskal–Wallis

4.2.2.1.1 Quando utilizar
  • Alternativa não paramétrica à ANOVA de uma via.
  • Utilizado quando há três ou mais grupos independentes.
  • Avalia se as amostras vêm da mesma distribuição populacional.
4.2.2.1.2 Hipóteses
  • H₀: As distribuições dos grupos são iguais.
  • H₁: Pelo menos um grupo difere significativamente.
4.2.2.1.3 Exemplo em R

# Exemplo de dados
grupo <- factor(rep(c("A", "B", "C"), each = 5))
valor <- c(5, 7, 6, 8, 7,
           9, 10, 8, 9, 11,
           12, 11, 13, 12, 14)
dados <- data.frame(grupo, valor)

# Teste de Kruskal-Wallis
kruskal.test(valor ~ grupo, data = dados)

    Kruskal-Wallis rank sum test

data:  valor by grupo
Kruskal-Wallis chi-squared = 12.113, df = 2, p-value = 0.002342
4.2.2.1.4 Interpretação
  • O resultado apresenta o valor de H (estatística do teste) e o p-valor.

  • Se p < 0.05, rejeitamos H₀ e concluímos que pelo menos um grupo é diferente.

  • Caso o teste seja significativo, é possível aplicar testes pós-hoc (como o kruskal() do pacote agricolae) para identificar quais grupos diferem.


4.2.2.2 Teste de Friedman

4.2.2.2.1 Quando utilizar

O Teste de Friedman é a alternativa não paramétrica à ANOVA de medidas repetidas.

É utilizado quando: - As mesmas unidades experimentais são avaliadas sob três ou mais condições (por exemplo, antes, durante e depois de um tratamento); - Os pressupostos de normalidade e homogeneidade de variâncias não são atendidos; - Os dados são ordinais ou não seguem distribuição normal.

Esse teste analisa se as medianas dos tratamentos diferem significativamente, considerando o bloqueio (ou o fator que representa as repetições dos mesmos indivíduos).


4.2.2.2.2 Hipóteses
  • H₀ (nula): As distribuições (ou medianas) dos grupos são iguais.
  • H₁ (alternativa): Pelo menos um grupo difere significativamente dos demais.

4.2.2.2.3 Exemplo em R
# Exemplo de dados
trat <- factor(rep(c("T1", "T2", "T3"), each = 5))
bloco <- factor(rep(1:5, times = 3))
valor <- c(8, 7, 9, 8, 7,
           10, 9, 11, 10, 9,
           12, 11, 13, 12, 11)

dados <- data.frame(trat, bloco, valor)

# Teste de Friedman
friedman.test(valor ~ trat | bloco, data = dados)

    Friedman rank sum test

data:  valor and trat and bloco
Friedman chi-squared = 10, df = 2, p-value = 0.006738
4.2.2.2.4 Interpretação dos Resultados

O resultado do teste apresenta:

  • Estatística de Friedman (χ²): valor baseado na soma dos postos;

  • p-valor: probabilidade de obter um resultado tão extremo quanto o observado, sob H₀.

✅ Decisão: Se p < 0.05, rejeitamos H₀, indicando diferença significativa entre os tratamentos.


5 Modelos de Regressão

A regressão é uma técnica estatística usada para modelar e entender a relação entre uma variável dependente (ou resposta) e uma ou mais variáveis independentes (ou explicativas).
Seu principal objetivo é explicar e/ou prever o comportamento da variável resposta a partir das variáveis explicativas.


5.1 Regressão linear simples

5.1.1 O que é

A regressão linear simples modela a relação entre uma variável resposta \(y\) e uma única variável explicativa \(x\), assumindo uma relação linear entre elas:

\[ y = \beta_0 + \beta_1 x + \epsilon \]

onde: - \(\beta_0\): intercepto (valor esperado de \(y\) quando \(x = 0\)); - \(\beta_1\): coeficiente angular (mudança média em \(y\) para um aumento unitário em \(x\)); - \(\epsilon\): erro aleatório.

5.1.2 Por que usar

  • É fácil de interpretar e visualizar.
  • Serve como ponto de partida para entender relações básicas.
  • Permite realizar previsões iniciais e avaliar tendência.

5.1.3 Quando usar

  • Quando há apenas uma variável explicativa contínua.
  • Quando a relação entre \(x\) e \(y\) parece linear (verificado via gráfico de dispersão).
  • Quando os resíduos têm distribuição aproximadamente normal e homocedasticidade.
set.seed(1)
x <- 1:20
y <- 2 + 0.5*x + rnorm(20)
fit <- lm(y ~ x)
summary(fit)

Call:
lm(formula = y ~ x)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.4808 -0.5168  0.1875  0.4833  1.5450 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.96391    0.43158   4.551 0.000248 ***
x            0.52158    0.03603  14.477 2.33e-11 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.9291 on 18 degrees of freedom
Multiple R-squared:  0.9209,    Adjusted R-squared:  0.9165 
F-statistic: 209.6 on 1 and 18 DF,  p-value: 2.33e-11
plot(x, y, main = "Regressão Linear Simples", pch = 19)
abline(fit, col = "blue", lwd = 2)

5.2 Regressão linear múltipla

5.2.1 O que é

A regressão linear múltipla é uma extensão da regressão linear simples que permite analisar o efeito de duas ou mais variáveis explicativas sobre uma variável resposta contínua.
O modelo é expresso como:

\[ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_p x_p + \epsilon \]

onde: - \(\beta_0\) é o intercepto (valor esperado de \(y\) quando todas as variáveis \(x_i = 0\)); - \(\beta_i\) representa o efeito médio de \(x_i\) sobre \(y\), mantendo as demais variáveis constantes; - \(\epsilon\) é o termo de erro.

5.2.2 Por que usar

  • Permite modelar situações reais onde vários fatores influenciam a resposta.
  • Controla o efeito de variáveis de confusão.
  • Melhora a capacidade preditiva do modelo.
  • Ajuda a entender a importância relativa de cada variável.

5.2.3 Quando usar

  • Quando há duas ou mais variáveis explicativas contínuas ou categóricas.
  • Quando o interesse é avaliar o efeito isolado de cada preditor.
  • Quando os pressupostos da regressão linear são atendidos (linearidade, independência dos erros, homocedasticidade e normalidade dos resíduos).
# Exemplo de regressão linear múltipla
set.seed(10)
n <- 50
x1 <- rnorm(n, mean = 10, sd = 2)
x2 <- rnorm(n, mean = 5, sd = 1)
y <- 3 + 0.8*x1 - 0.5*x2 + rnorm(n)

df <- data.frame(y, x1, x2)

# Ajuste do modelo
modelo_mult <- lm(y ~ x1 + x2, data = df)
summary(modelo_mult)

Call:
lm(formula = y ~ x1 + x2, data = df)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.0016 -0.7637  0.1436  0.7819  1.5371 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.42110    1.04441   3.276 0.001984 ** 
x1           0.78522    0.08177   9.603 1.16e-12 ***
x2          -0.55117    0.14509  -3.799 0.000417 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.9908 on 47 degrees of freedom
Multiple R-squared:  0.6879,    Adjusted R-squared:  0.6746 
F-statistic:  51.8 on 2 and 47 DF,  p-value: 1.305e-12
# Visualização simples
pairs(df, main = "Matriz de Dispersão das Variáveis")

5.2.4 Interpretação dos coeficientes

O coeficiente de x1 indica a variação média esperada em y para cada unidade de aumento em x1, mantendo x2 constante.

O coeficiente de x2 mostra o efeito isolado de x2 sobre y, mantendo x1 constante.

Dica 💡

Verifique sempre os pressupostos da regressão linear múltipla:

Resíduos: devem ser aproximadamente normais e com variância constante.

Multicolinearidade: evite alta correlação entre variáveis explicativas.

Valores influentes: identifique outliers que podem distorcer o modelo.


6 Modelos Lineares Generalizados (GLM)

Os Modelos Lineares Generalizados (GLMs) são uma extensão da regressão linear tradicional que permitem lidar com variáveis resposta que não seguem uma distribuição Normal.
Eles são compostos por três elementos principais:

  1. Distribuição da resposta — especifica como os dados são distribuídos (Normal, Poisson, Binomial, etc.);
  2. Função de ligação (link) — relaciona a média da resposta com o preditor linear;
  3. Estrutura linear — combinação das variáveis explicativas, como em um modelo linear:
    \(\eta = \beta_0 + \beta_1 x_1 + \cdots + \beta_p x_p\)

Em um GLM, modelamos:

\[ g(E[Y]) = \eta = X\beta \]

onde \(g()\) é a função de ligação.


6.1 Distribuições e tipos de variáveis

Os GLMs permitem ajustar modelos para diferentes tipos de dados:

Distribuição Tipo de dado Função de ligação recomendada Exemplo comum
Normal Contínuo (valores reais) identity Regressão linear tradicional
Poisson Contagem (0,1,2,…) log Número de eventos em certo período
Binomial Binária (0/1) ou proporção logit Sucesso/fracasso, presença/ausência
Gamma Contínuo positivo (taxas, durações) inverse ou log Tempo até um evento, custos
Beta Proporção entre 0 e 1 logit ou log-log Frações, taxas percentuais

6.2 Exemplo 1 — Regressão Poisson (dados de contagem)

A regressão de Poisson é usada quando a variável resposta representa número de ocorrências de um evento em um intervalo fixo (tempo, espaço, etc.).

\[ \log(E[Y]) = \beta_0 + \beta_1 X \]

set.seed(123)
x <- rnorm(100)
counts <- rpois(100, lambda = exp(0.5 + 0.3 * x))
glm_pois <- glm(counts ~ x, family = poisson(link = "log"))
summary(glm_pois)

Call:
glm(formula = counts ~ x, family = poisson(link = "log"))

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   0.4286     0.0840   5.102 3.36e-07 ***
x             0.3548     0.0849   4.180 2.92e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 139.65  on 99  degrees of freedom
Residual deviance: 122.18  on 98  degrees of freedom
AIC: 322.96

Number of Fisher Scoring iterations: 5
# Visualização da relação
plot(x, counts, main = "Regressão Poisson", pch = 19)
lines(sort(x), fitted(glm_pois)[order(x)], col = "red", lwd = 2)

Interpretação dos resultados

O coeficiente de x representa o efeito multiplicativo de x sobre o número esperado de eventos.

Em modelos de Poisson com link log, a média esperada \(E[Y]\) é dada por:

\[ E[Y] = e^{(\beta_0 + \beta_1 x)} \]

Assim, para cada aumento unitário em x, o número esperado de eventos é multiplicado por \(e^{\beta_1}\).

No exemplo acima, se \(\beta_1 = 0.3\), então \(e^{0.3} \approx 1.35\), indicando que um aumento de 1 unidade em x aumenta o número esperado de eventos em cerca de 35%.

O intercepto \(\beta_0\) indica o logaritmo da média esperada de Y quando x = 0.


6.3 Exemplo 2 — Regressão Binomial (dados binários ou proporções)

A regressão logística é um caso especial dos modelos lineares generalizados (GLMs) usado quando a variável resposta é binária (0/1, sucesso/fracasso, presença/ausência).
Em vez de modelar o valor esperado diretamente, modelamos a probabilidade de sucesso \(P(Y = 1)\) por meio da função logística:

\[ \log\left(\frac{p}{1 - p}\right) = \beta_0 + \beta_1 X \]

onde: - \(p = P(Y=1)\) é a probabilidade de sucesso; - o termo \(\log\left(\frac{p}{1-p}\right)\) é chamado de log-odds ou logit.


set.seed(321)
x <- rnorm(200)
# Gera probabilidades segundo uma função logística
p <- 1 / (1 + exp(-(-0.5 + 1.2 * x)))
# Gera resposta binária (0/1) com base nessas probabilidades
y <- rbinom(200, 1, p)

# Ajuste do modelo logístico
glm_bin <- glm(y ~ x, family = binomial(link = "logit"))
summary(glm_bin)

Call:
glm(formula = y ~ x, family = binomial(link = "logit"))

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -0.3345     0.1598  -2.093   0.0364 *  
x             1.1620     0.2120   5.480 4.25e-08 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 273.87  on 199  degrees of freedom
Residual deviance: 233.10  on 198  degrees of freedom
AIC: 237.1

Number of Fisher Scoring iterations: 4
# Visualização
plot(x, y, main = "Regressão Logística (Binomial)", pch = 19, col = "gray50")
curve(predict(glm_bin, data.frame(x = x), type = "response")[order(x)],
      add = TRUE, col = "red", lwd = 2)

Interpretação dos resultados

O coeficiente de x (\(\beta_1\)) representa o efeito de x sobre o logaritmo das chances (log-odds) de sucesso.

Um coeficiente positivo indica que o aumento em x aumenta a probabilidade de sucesso, enquanto um coeficiente negativo diminui essa probabilidade.

Para uma interpretação mais intuitiva, usamos o odds ratio (razão de chances):

exp(coef(glm_bin))
(Intercept)           x 
  0.7156932   3.1964736 

Se \(\beta_1 = 1.2\), então:

\[ e^{1.2} \approx 3.32 \]

Isso significa que, a cada aumento unitário em x, as chances de sucesso são multiplicadas por 3,32, mantendo as demais variáveis constantes.

O intercepto (\(\beta_0\)) representa o log-odds de sucesso quando x = 0.
Assim, \(e^{\beta_0}\) fornece o odds esperado nesse ponto.


💡 Dica

  • Avalie a qualidade do ajuste usando medidas como AUC (Área sob a Curva ROC) e matriz de confusão.
  • Verifique se há separação completa, pois isso pode causar coeficientes infinitos.
  • Se trabalhar com proporções (número de sucessos em n tentativas), ajuste o modelo com family = binomial e use a sintaxe cbind(sucessos, fracassos).

Avaliação do Modelo

library(pROC)

# Gerando previsões de probabilidade
pred_prob <- predict(glm_bin, type = "response")

# Curva ROC
roc_obj <- roc(y, pred_prob)
plot(roc_obj, main = "Curva ROC - Regressão Logística")

# AUC
auc(roc_obj)
Area under the curve: 0.7488

Resumo

A regressão logística é ideal para modelar respostas dicotômicas e estimar probabilidades de ocorrência.
O uso do link logit garante que as previsões fiquem entre 0 e 1, tornando o modelo adequado para dados binários. —

6.4 Exemplo 3 — Regressão Gamma (dados contínuos positivos)

A regressão Gamma é usada quando a variável resposta é contínua, positiva e assimétrica à direita — por exemplo, tempo de espera, custo, duração ou taxas.
É apropriada quando a variância aumenta com o quadrado da média, isto é:

\[ Var(Y) = \phi \mu^2 \]

O modelo assume que a média \(\mu\) da resposta está relacionada às variáveis explicativas por meio de um link logarítmico (geralmente):

\[ \log(\mu) = \beta_0 + \beta_1 X \]


set.seed(42)
x <- runif(100, 0, 10)
# Gera dados positivos assimétricos
mu <- exp(1 + 0.2 * x)
y <- rgamma(100, shape = 2, scale = mu / 2)

# Ajuste do modelo Gamma com link log
glm_gamma <- glm(y ~ x, family = Gamma(link = "log"))
summary(glm_gamma)

Call:
glm(formula = y ~ x, family = Gamma(link = "log"))

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.05467    0.12679   8.318 5.29e-13 ***
x            0.19647    0.02098   9.366 2.88e-15 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for Gamma family taken to be 0.3971666)

    Null deviance: 81.162  on 99  degrees of freedom
Residual deviance: 48.545  on 98  degrees of freedom
AIC: 594.03

Number of Fisher Scoring iterations: 5
# Visualização
plot(x, y, main = "Regressão Gamma (dados positivos)", pch = 19, col = "gray50")
lines(sort(x), fitted(glm_gamma)[order(x)], col = "blue", lwd = 2)

Interpretação dos resultados

O coeficiente de x indica o efeito multiplicativo de x sobre a média de Y.

Como o link é logarítmico, temos:

\[ \mu = e^{(\beta_0 + \beta_1 x)} \]

Assim, para cada aumento unitário em x, a média esperada de Y é multiplicada por:

\[ e^{\beta_1} \]

Por exemplo, se \(\beta_1 = 0.2\), então:

\[ e^{0.2} \approx 1.22 \]

Isso significa que, para cada aumento de 1 unidade em x, a média de Y aumenta cerca de 22%.

O intercepto (\(\beta_0\)) representa o logaritmo da média esperada de Y quando x = 0.


💡 Dica:
Use a regressão Gamma quando os resíduos da regressão linear forem fortemente assimétricos e Y for sempre positiva.

Avalie se o modelo com link log ou link inverso oferece melhor ajuste (via AIC ou diagnóstico gráfico).

Para diagnósticos, utilize gráficos de resíduos deviance:

plot(residuals(modelo, type = "deviance"))

6.5 Exemplo 4 — Regressão Beta (proporções entre 0 e 1)

A regressão Beta é usada quando a variável resposta é uma proporção contínua entre 0 e 1, como: - taxa de conversão, - proporção de votos, - porcentagem de acertos, - índice de eficiência.

A distribuição Beta é bastante flexível, permitindo diferentes graus de assimetria.
O modelo relaciona a média da proporção (\(\mu\)) às variáveis explicativas usando, normalmente, o link logit:

\[ \text{logit}(\mu) = \log\left(\frac{\mu}{1 - \mu}\right) = \beta_0 + \beta_1 X \]


library(betareg)

set.seed(7)
x <- runif(150, 0, 10)
# Gera proporções entre 0 e 1 com relação positiva com x
mu <- plogis(-1 + 0.3 * x)   # transforma linear em probabilidade
y <- rbeta(150, shape1 = mu * 20, shape2 = (1 - mu) * 20)

# Ajuste do modelo Beta
glm_beta <- betareg(y ~ x, link = "logit")
summary(glm_beta)

Call:
betareg(formula = y ~ x, link = "logit")

Quantile residuals:
    Min      1Q  Median      3Q     Max 
-2.1421 -0.6995  0.0122  0.6941  2.4701 

Coefficients (mean model with logit link):
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -0.96616    0.08104  -11.92   <2e-16 ***
x            0.28498    0.01480   19.26   <2e-16 ***

Phi coefficients (precision model with identity link):
      Estimate Std. Error z value Pr(>|z|)    
(phi)   20.226      2.292   8.825   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 138.9 on 3 Df
Pseudo R-squared: 0.7187
Number of iterations: 10 (BFGS) + 2 (Fisher scoring) 
# Visualização
plot(x, y, main = "Regressão Beta (proporções)", pch = 19, col = "gray50")
lines(sort(x), fitted(glm_beta)[order(x)], col = "darkgreen", lwd = 2)

Interpretação dos resultados

O coeficiente de x indica o efeito de x sobre o logit da proporção média.

Como o link é logit, a relação entre x e y é não linear, mas podemos interpretar o coeficiente por meio do odds ratio:

exp(coef(glm_beta))
 (Intercept)            x        (phi) 
3.805405e-01 1.329730e+00 6.081579e+08 

Por exemplo, se \(\beta_1 = 0.3\), então:

\[ e^{0.3} \approx 1.35 \]

Isso indica que, para cada aumento unitário em x, as chances associadas à proporção média aumentam cerca de 35%.

O intercepto (\(\beta_0\)) representa o logit da proporção esperada quando x = 0.


💡 Dica:
A regressão Beta requer que os valores de y estejam estritamente entre 0 e 1.
Se houver valores iguais a 0 ou 1, uma prática comum é ajustar ligeiramente os dados:

y <- (y * (n - 1) + 0.5) / n

onde n é o tamanho da amostra.

Avalie o ajuste usando pseudo-R² e gráficos de resíduos:

plot(glm_beta, which = 1, main = "Resíduos vs. Valores Ajustados (Beta)")

Resumo

A regressão Beta é indicada para proporções contínuas entre 0 e 1, oferecendo grande flexibilidade na modelagem de dados assimétricos.
Com o link logit, o modelo garante previsões válidas (\(0 < \mu < 1\)) e permite interpretar os efeitos em termos de odds ratios.

6.6 Comparando distribuições em GLMs

Os Modelos Lineares Generalizados (GLMs) permitem estender a regressão linear para diferentes tipos de variáveis resposta, escolhendo uma distribuição adequada e uma função de ligação (link) apropriada.

Distribuição Tipo de dado Link padrão Quando usar
Normal Contínuo (positivo e negativo) identity Quando a resposta é aproximadamente normal
Poisson Contagem (0,1,2,…) log Quando a resposta é uma contagem de eventos
Binomial Binária (0/1) ou proporção logit Quando a resposta é dicotômica
Gamma Contínua positiva log ou inverse Quando a resposta é positiva e assimétrica
Beta Proporção (0–1) logit ou log-log Quando a resposta é uma proporção contínua

6.7 Resumo

Os GLMs ampliam o poder da regressão linear para lidar com diferentes tipos de dados — como contagens, proporções, respostas binárias e tempos.
Escolher a distribuição e a função de ligação corretas é essencial para garantir que o modelo:

  • produza previsões coerentes com o tipo de variável resposta;
  • permita interpretações claras dos coeficientes;
  • e mantenha validade estatística das inferências.

Em resumo: a regressão linear é apenas um caso particular dos GLMs — com distribuição Normal e link identity.

7 Modelos Mistos (LMM e GLMM)

7.1 Efeitos fixos vs aleatórios

  • Efeito fixo: estimado para níveis específicos (ex: tratamento).
  • Efeito aleatório: assume-se que níveis são uma amostra de uma população (ex: blocos, locais).
# install.packages("lme4") # uncomment if needed
library(lme4)
d <- data.frame(
  y = rnorm(30),
  trat = factor(rep(1:3,10)),
  bloco = factor(rep(1:10, each=3))
)
mod_mixed <- lmer(y ~ trat + (1|bloco), data = d)
summary(mod_mixed)
Linear mixed model fit by REML ['lmerMod']
Formula: y ~ trat + (1 | bloco)
   Data: d

REML criterion at convergence: 95.3

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.1324 -0.4783 -0.1430  0.3311  2.2294 

Random effects:
 Groups   Name        Variance Std.Dev.
 bloco    (Intercept) 0.000913 0.03022 
 Residual             1.544922 1.24295 
Number of obs: 30, groups:  bloco, 10

Fixed effects:
            Estimate Std. Error t value
(Intercept)  -0.3204     0.3932  -0.815
trat2         0.1991     0.5559   0.358
trat3         0.2990     0.5559   0.538

Correlation of Fixed Effects:
      (Intr) trat2 
trat2 -0.707       
trat3 -0.707  0.500

8 Análises Multivariadas

8.1 PCA

pca <- prcomp(iris[,1:4], scale. = TRUE)
summary(pca)
Importance of components:
                          PC1    PC2     PC3     PC4
Standard deviation     1.7084 0.9560 0.38309 0.14393
Proportion of Variance 0.7296 0.2285 0.03669 0.00518
Cumulative Proportion  0.7296 0.9581 0.99482 1.00000
plot(pca, type="l")

biplot(pca, scale=0)

8.2 Cluster

d <- scale(iris[,1:4])
hc <- hclust(dist(d))
plot(hc)
rect.hclust(hc, k=3)


9 Escolha da Análise pela Natureza do Dado

A escolha da análise estatística depende da natureza da variável resposta, do tipo de fator ou preditor envolvido e dos pressupostos do modelo (normalidade, homogeneidade de variâncias, independência etc.).
A decisão correta garante interpretações válidas, modelos adequados e inferências confiáveis.


9.1 Resumo prático

Tipo de dado Objetivo da análise Métodos recomendados Comentários
Contínuos (normal) Comparar médias entre grupos t-test, ANOVA, ANCOVA Use quando os resíduos são normais e variâncias homogêneas
Contínuos (não normal) Comparar grupos sem normalidade Teste de Mann–Whitney, Kruskal–Wallis, Friedman Alternativas não paramétricas aos testes de médias
Contínuos com preditores Avaliar relações quantitativas Regressão Linear, Modelos Lineares Múltiplos Quando a resposta é contínua e normalmente distribuída
Binários (0/1) Modelar probabilidade de sucesso Regressão Logística, GLM Binomial Para respostas dicotômicas
Contagem (0,1,2,…) Modelar número de ocorrências GLM Poisson, Quasi-Poisson, Binomial Negativa Ideal quando a resposta é uma contagem de eventos
Proporção (0–1) Modelar taxas ou proporções GLM Binomial, Regressão Beta Para proporções contínuas dentro do intervalo (0,1)
Medidas repetidas / hierarquia Considerar dependência entre observações Modelos Mistos (LMM / GLMM) Incluem efeitos aleatórios e fixos
Multivariados (várias respostas) Analisar múltiplas variáveis simultaneamente PCA, MANOVA, Análise de Cluster, Discriminante Para explorar padrões e relações em dados multidimensionais

9.2 Guia de decisão passo a passo

  1. Identifique o tipo de variável resposta (Y):
    • Contínua → pode usar modelos lineares, ANOVA, regressão etc.
    • Categórica (binária ou multinomial) → modelos logísticos.
    • Contagem → GLM Poisson ou negativo binomial.
    • Proporção → GLM binomial ou Beta.
  2. Verifique os pressupostos:
    • Normalidade dos resíduos (Shapiro–Wilk, Q-Q plot).
    • Homocedasticidade (teste de Levene).
    • Independência das observações.
  3. Escolha o modelo conforme o desenho experimental:
    • 1 fator: t-test (2 grupos) ou ANOVA (>2 grupos).
    • 2 ou mais fatores: ANOVA fatorial ou ANCOVA.
    • Com medidas repetidas: ANOVA de medidas repetidas ou LMM.
    • Sem normalidade: versões não paramétricas (Mann–Whitney, Kruskal–Wallis).
  4. Inclua efeitos aleatórios quando necessário:
    • Em experimentos com blocos, parcelas ou indivíduos medidos repetidamente, utilize Modelos Mistos (LMM/GLMM).

9.3 Exemplos práticos em R

# Dados contínuos com 2 grupos → t-test
t.test(mpg ~ am, data = mtcars)

    Welch Two Sample t-test

data:  mpg by am
t = -3.7671, df = 18.332, p-value = 0.001374
alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
95 percent confidence interval:
 -11.280194  -3.209684
sample estimates:
mean in group 0 mean in group 1 
       17.14737        24.39231 
# Dados contínuos com vários grupos → ANOVA
anova_ex <- aov(mpg ~ cyl, data = mtcars)
summary(anova_ex)
            Df Sum Sq Mean Sq F value   Pr(>F)    
cyl          1  817.7   817.7   79.56 6.11e-10 ***
Residuals   30  308.3    10.3                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Dados não normais → Kruskal-Wallis
kruskal.test(mpg ~ cyl, data = mtcars)

    Kruskal-Wallis rank sum test

data:  mpg by cyl
Kruskal-Wallis chi-squared = 25.746, df = 2, p-value = 2.566e-06
# Dados binários → Regressão logística
glm_log <- glm(am ~ wt + hp, data = mtcars, family = binomial)
summary(glm_log)

Call:
glm(formula = am ~ wt + hp, family = binomial, data = mtcars)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)   
(Intercept) 18.86630    7.44356   2.535  0.01126 * 
wt          -8.08348    3.06868  -2.634  0.00843 **
hp           0.03626    0.01773   2.044  0.04091 * 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 43.230  on 31  degrees of freedom
Residual deviance: 10.059  on 29  degrees of freedom
AIC: 16.059

Number of Fisher Scoring iterations: 8
# Dados de contagem → Poisson
glm_pois <- glm(gear ~ wt, data = mtcars, family = poisson)
summary(glm_pois)

Call:
glm(formula = gear ~ wt, family = poisson, data = mtcars)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  1.69198    0.31842   5.314 1.07e-07 ***
wt          -0.12242    0.09812  -1.248    0.212    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 4.4634  on 31  degrees of freedom
Residual deviance: 2.8792  on 30  degrees of freedom
AIC: 108.35

Number of Fisher Scoring iterations: 4
# Dados hierárquicos → Modelo misto (exemplo simulado)
if(!require(lme4)) install.packages("lme4")
library(lme4)
set.seed(1)
df_lmm <- data.frame(
  y = rnorm(100),
  x = rnorm(100),
  grupo = rep(1:10, each = 10)
)
lmm_ex <- lmer(y ~ x + (1|grupo), data = df_lmm)
summary(lmm_ex)
Linear mixed model fit by REML ['lmerMod']
Formula: y ~ x + (1 | grupo)
   Data: df_lmm

REML criterion at convergence: 267.2

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.57448 -0.66862  0.00593  0.64584  2.54014 

Random effects:
 Groups   Name        Variance Std.Dev.
 grupo    (Intercept) 0.000    0.0000  
 Residual             0.815    0.9028  
Number of obs: 100, groups:  grupo, 10

Fixed effects:
              Estimate Std. Error t value
(Intercept)  0.1088521  0.0903480   1.205
x           -0.0009324  0.0947216  -0.010

Correlation of Fixed Effects:
  (Intr)
x 0.040 
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

9.4 Análises multivariadas

Quando há mais de uma variável resposta ou o interesse é explorar relações entre variáveis, aplicam-se métodos multivariados:

Técnica Tipo de dado Objetivo
PCA (Análise de Componentes Principais) Contínuos Reduzir dimensionalidade e explorar padrões
MANOVA Contínuos (múltiplas respostas) Comparar médias multivariadas entre grupos
Análise Discriminante Categóricos + contínuos Classificar observações em grupos
Cluster (agrupamento) Diversos tipos Encontrar grupos homogêneos em dados multivariados

9.4.1 Exemplo rápido

data(iris)
pca_ex <- prcomp(iris[, 1:4], scale. = TRUE)
summary(pca_ex)
Importance of components:
                          PC1    PC2     PC3     PC4
Standard deviation     1.7084 0.9560 0.38309 0.14393
Proportion of Variance 0.7296 0.2285 0.03669 0.00518
Cumulative Proportion  0.7296 0.9581 0.99482 1.00000
plot(
  pca_ex$x[, 1:2],
  col = iris$Species,
  pch = 19,
  main = "PCA - Dados de Iris"
)

Conclusão

A natureza do dado e o objetivo da análise determinam o tipo de teste ou modelo estatístico a ser utilizado.
De modo geral:

  • Paramétricos (t-test, ANOVA, regressão linear): assumem normalidade e homogeneidade.
  • Não paramétricos (Mann–Whitney, Kruskal–Wallis): usados quando esses pressupostos são violados.
  • GLMs e GLMMs: estendem os modelos lineares para dados não normais e estruturas hierárquicas.
  • Análises multivariadas: exploram padrões entre múltiplas variáveis.

💡 Dica prática:
Sempre comece pela visualização e diagnóstico dos dados.
Entender a estrutura do seu conjunto de dados é o primeiro passo para escolher a análise estatística correta.

10 Boas práticas em análise de dados

  • Verificar pressupostos (Shapiro, Levene)
  • Transformações (log, sqrt) quando necessário
  • Visualização antes de testar (ggplot2)
  • Relatar intervalos de confiança, p-values e tamanho do efeito

11 Recursos e Pacotes úteis

  • R: ggplot2, dplyr, lme4, agricolae, emmeans, multcomp, car
  • Python: scipy, statsmodels, scikit-learn, pingouin

12 Conclusão e próximos passos

Siga um fluxo simples: (1) Explorar dados → (2) Tratar e visualizar → (3) Escolher teste → (4) Ajustar modelo → (5) Validar pressupostos → (6) Interpretar.