A análise de comunidades biológicas (como a estrutura de espécies de peixes, macroinvertebrados ou flora) em estudos ambientais exige ferramentas estatísticas que lidem com a alta dimensionalidade e a natureza frequentemente não-normal desses dados. O nMDS, a PERMANOVA e o SIMPER são técnicas poderosas para este fim.
O nMDS (non-metric Multidimensional Scaling) é uma técnica de ordenação multivariada. Diferentemente do PCA, ele não assume linearidade nem distribuição normal dos dados.
Objetivo: Visualizar similaridades/dissimilaridades entre amostras (locais, campanhas) no espaço biológico. Ele tenta representar a distância de dissimilaridade entre amostras (e.g., calculada por Jaccard, Bray-Curtis) em um número reduzido de dimensões (geralmente 2), preservando ao máximo a ordem relativa das distâncias.
Métrica Principal: Stress (\(\sigma\)). É uma medida de “má representação” ou a diferença entre as distâncias originais e as distâncias no espaço reduzido (o gráfico).
\(\sigma < 0.2\): Geralmente aceitável, significa que o gráfico é uma representação razoável dos dados.
\(\sigma < 0.1\): Bom.
\(\sigma < 0.05\): Excelente.
Interpretação: Amostras próximas no gráfico de nMDS são biologicamente mais similares em termos de composição de espécies do que amostras distantes.
Imagine 10 áreas de amostragem de peixes em um rio: 5 a montante (Referência) e 5 a jusante (Impacto) de um empreendimento. A matriz de dados é a abundância das espécies.
# Grupos
grupo <- rep(c("Referência", "Impacto"), each = 5)
# Dados simulados de abundância de 8 espécies de peixes
# Referência: mais diversidade e abundância de espécies 'sensíveis' (A, B)
# Impacto: mais abundância de espécies 'tolerantes' (G, H) e menos diversidade
dados_comunidade <- matrix(
c(rpois(5, 5), rpois(5, 1), rpois(5, 3), rpois(5, 1), # Espécies A, B (Sensíveis)
rpois(5, 1), rpois(5, 4), rpois(5, 1), rpois(5, 4), # Espécies C, D
rpois(5, 0), rpois(5, 0), rpois(5, 1), rpois(5, 5), # Espécies E, F
rpois(5, 1), rpois(5, 8), rpois(5, 2), rpois(5, 10)), # Espécies G, H (Tolerantes)
ncol = 8, byrow = FALSE)
colnames(dados_comunidade) <- paste0("Esp_", LETTERS[1:8])
rownames(dados_comunidade) <- paste0(grupo, "_", 1:5)
# nMDS
set.seed(42) # Reprodutibilidade do nMDS
nmds_res <- metaMDS(dados_comunidade, distance = "bray", k = 2, trymax = 100)
## Wisconsin double standardization
## Run 0 stress 0.02150762
## Run 1 stress 0.02979739
## Run 2 stress 0.02979738
## Run 3 stress 0.0342005
## Run 4 stress 0.03420051
## Run 5 stress 0.03655497
## Run 6 stress 0.02150759
## ... New best solution
## ... Procrustes: rmse 4.408272e-05 max resid 8.520295e-05
## ... Similar to previous best
## Run 7 stress 0.03655496
## Run 8 stress 0.0215077
## ... Procrustes: rmse 0.0001063557 max resid 0.0002066402
## ... Similar to previous best
## Run 9 stress 0.03420054
## Run 10 stress 0.02150761
## ... Procrustes: rmse 3.466624e-05 max resid 6.7669e-05
## ... Similar to previous best
## Run 11 stress 0.03655665
## Run 12 stress 0.02150763
## ... Procrustes: rmse 5.279721e-05 max resid 0.0001021272
## ... Similar to previous best
## Run 13 stress 0.02150758
## ... New best solution
## ... Procrustes: rmse 5.873879e-05 max resid 0.0001148869
## ... Similar to previous best
## Run 14 stress 0.3153592
## Run 15 stress 0.02150765
## ... Procrustes: rmse 0.000135017 max resid 0.0002636286
## ... Similar to previous best
## Run 16 stress 0.02979737
## Run 17 stress 0.02150759
## ... Procrustes: rmse 6.083466e-05 max resid 0.0001195566
## ... Similar to previous best
## Run 18 stress 0.03420051
## Run 19 stress 0.02150765
## ... Procrustes: rmse 0.0001032496 max resid 0.000201052
## ... Similar to previous best
## Run 20 stress 0.03420054
## *** Best solution repeated 4 times
# Gráfico de nMDS
dados_nmds <- as.data.frame(scores(nmds_res, display = "sites"))
dados_nmds$Grupo <- grupo
ggplot(dados_nmds, aes(x = NMDS1, y = NMDS2, color = Grupo)) +
geom_point(size = 3) +
stat_ellipse(level = 0.95) +
labs(title = paste0("nMDS da Ictiofauna (Stress: ", round(nmds_res$stress, 3), ")"),
caption = "Bray-Curtis Distance") +
theme_minimal() +
scale_color_manual(values = c("Referência" = "blue", "Impacto" = "red"))
Interpretação Esperada: As amostras de Impacto devem se separar no biplot nMDS das amostras de Referência, indicando que a composição de espécies é significativamente diferente (devido à perda de sensíveis e/ou aumento de tolerantes).
A PERMANOVA (Permutational Multivariate Analysis of Variance) é usada para testar se há diferenças significativas na estrutura de comunidades (composição e abundância/presença) entre dois ou mais grupos definidos (fatores).
Objetivo: Testar a hipótese nula de que a localização média dos grupos em um espaço multivariado é a mesma. É o análogo multivariado da ANOVA tradicional, mas usa matrizes de dissimilaridade (e.g., Bray-Curtis) e permutação para calcular a significância, sem a premissa de normalidade.
Resultados Chave:
\(F\)-ratio: Semelhante à ANOVA, mede a variação entre grupos em relação à variação dentro dos grupos.
\(p\)-value (baseado em permutações): Indica a significância da diferença entre grupos. Se \(p < 0.05\), os grupos são significativamente diferentes.
\(R^2\): A proporção da variação total na comunidade explicada pela variável de agrupamento (e.g., ‘Grupo’).
Usando os dados de ictiofauna do exemplo (a). Queremos confirmar estatisticamente se o grupo ‘Referência’ é diferente do grupo ‘Impacto’.
# Matriz de Distância (Dissimilaridade de Bray-Curtis)
matriz_distancia <- vegdist(dados_comunidade, method = "bray")
# PERMANOVA
permanova_res <- adonis2(matriz_distancia ~ grupo, data = data.frame(grupo = grupo), permutations = 999)
# Exibe os resultados
permanova_res
## Permutation test for adonis under reduced model
## Permutation: free
## Number of permutations: 999
##
## adonis2(formula = matriz_distancia ~ grupo, data = data.frame(grupo = grupo), permutations = 999)
## Df SumOfSqs R2 F Pr(>F)
## Model 1 0.93610 0.74706 23.628 0.009 **
## Residual 8 0.31694 0.25294
## Total 9 1.25304 1.00000
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Interpretação Esperada: Se o \(p\)-value for baixo (ex: \(p < 0.05\)), confirma-se que a estrutura de ictiofauna é significativamente diferente entre as áreas de Referência e Impacto. O \(R^2\) indicará a força dessa diferença.
O SIMPER (Similarity Percentages) não é um teste de hipótese, mas uma análise descritiva que complementa a PERMANOVA.
Objetivo: Identificar quais espécies/variáveis são as principais responsáveis pela dissimilaridade observada entre dois grupos (e.g., entre Referência e Impacto).
Resultado Chave: Lista as espécies em ordem decrescente de contribuição para a dissimilaridade média entre os grupos. Ajuda o gestor ambiental a focar nas espécies ou variáveis-chave afetadas.
Usando os mesmos dados e grupos.
# SIMPER
simper_res <- simper(dados_comunidade, group = grupo)
# Exibe a contribuição de dissimilaridade entre Referência e Impacto
summary(simper_res, ordered = TRUE, max.species = 5)
##
## Contrast: Referência_Impacto
##
## average sd ratio ava avb cumsum p
## Esp_H 0.18023 0.07931 2.27300 3.00000 13.60000 0.275 0.001 ***
## Esp_G 0.12191 0.04074 2.99200 0.60000 7.60000 0.460 0.001 ***
## Esp_F 0.11279 0.03001 3.75800 1.20000 7.80000 0.632 0.001 ***
## Esp_A 0.09933 0.03069 3.23600 6.80000 1.00000 0.783 0.001 ***
## Esp_C 0.05390 0.03803 1.41700 1.80000 4.80000 0.866 0.098 .
## Esp_D 0.05159 0.03461 1.49000 1.20000 3.80000 0.944 0.023 *
## Esp_B 0.03659 0.02792 1.31100 3.60000 1.60000 1.000 0.270
## Esp_E 0.00000 0.00000 NaN 0.00000 0.00000 1.000 NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Permutation: free
## Number of permutations: 999
Interpretação Esperada: O resultado mostrará quais espécies (e.g., Esp_H e Esp_G) contribuíram mais para a dissimilaridade entre os grupos. No cenário de impacto, espera-se que as espécies tolerantes ou invasoras tenham maior contribuição.
nMDS: Fornece a visualização inicial dos padrões, confirmando visualmente a separação (ou não) dos grupos de interesse (e.g., antes vs. depois, controle vs. impacto).
PERMANOVA: Oferece a prova estatística robusta de que a estrutura da comunidade foi alterada ou é diferente entre os ambientes.
SIMPER: Direciona a ação de manejo/monitoramento, identificando quais espécies/taxa são os verdadeiros drivers da diferença, permitindo que a gestão ambiental foque recursos em espécies-chave.