Code
# Instalação dos pacotes (caso não tenha)
# install.packages("FD")
# install.packages("ade4")
# install.packages("vegan")
# Carregar pacotes
library(FD)
library(ade4)
library(vegan)
library(geometry)Disciplina: Descrição e Análise de Vegetação - PPGEF/UDESC
A Ecologia Funcional representa uma mudança de paradigma na ecologia de comunidades, movendo o foco da identidade taxonômica (composição de espécies) para a identidade funcional (composição de traços).
Enquanto a abordagem taxonômica tradicional trata as espécies como unidades discretas, a abordagem funcional quantifica o que os organismos fazem e como interagem com o ambiente. Isso permite uma compreensão mais mecanicista sobre:
Definição: A Ecologia Funcional busca compreender os ecossistemas através das funções que os organismos desempenham, baseando-se em suas características biológicas (traços), independentemente de sua filogenia.
Um Traço Funcional (Functional Trait) é qualquer característica de um organismo (morfológica, fisiológica ou comportamental) que afeta sua performance (crescimento, reprodução, sobrevivência).
Exemplos em plantas: * Altura: Afeta a capacidade de competir por luz. * Tamanho da Semente: Afeta a capacidade de dispersão e colonização. * Densidade da Madeira: Afeta a resistência a danos físicos e taxa de crescimento.
Esta é uma distinção crucial para entender a relação entre biodiversidade e funcionamento do ecossistema.
A diversidade funcional é considerada o principal motor dos Serviços Ecossistêmicos (benefícios que a natureza provê para a humanidade).
A redundância funcional refere-se à presença de múltiplas espécies desempenhando papéis funcionais similares dentro de um ecossistema. Este conceito é central para a Hipótese do Seguro (Insurance Hypothesis):
A ecologia funcional oferece ferramentas quantitativas que transformam decisões de manejo de subjetivas para baseadas em processos ecológicos.
Abordagem Tradicional (Taxonômica): - Foco em listas de espécies
Abordagem Funcional: - Foco em processos e serviços
A abordagem funcional permite responder perguntas práticas:
Objetivos da Prática:
Para realizar as análises, precisaremos de alguns pacotes específicos do R.
# Instalação dos pacotes (caso não tenha)
# install.packages("FD")
# install.packages("ade4")
# install.packages("vegan")
# Carregar pacotes
library(FD)
library(ade4)
library(vegan)
library(geometry)Vamos trabalhar com dois conjuntos de dados principais: 1. Matriz de Comunidade (com): Abundância das espécies nos locais. 2. Matriz de Atributos (traits): Características funcionais de cada espécie.
# Importar arquivos
# Ajuste o caminho se necessário
com <- read.table("dados/com.csv", header=T, sep=";")
traits <- read.table("dados/traits.csv", header=T,
sep=";", dec=",", row.names = 1)Vamos explorar a estrutura desses dados.
# Visualizar as primeiras linhas
head(com) Araucaria.angustifolia Cinnamomum.amoenum Drimys.angustifolia Ilex.microdonta
1 0 0 0 14
2 0 0 2 19
3 0 0 1 30
4 1 0 2 12
5 0 10 4 1
6 0 5 22 7
Ilex.paraguariensis Maytenus.boaria Myrceugenia.euosma
1 0 0 0
2 0 0 1
3 0 1 0
4 0 1 1
5 1 4 2
6 3 3 2
Myrceugenia.glaucescens Myrceugenia.miersiania Myrceugenia.myrcioides
1 45 0 0
2 29 0 0
3 26 2 0
4 21 0 2
5 16 0 1
6 21 0 0
Myrceugenia.ovata Myrceugenia.oxysepala Myrrhinium.atropurpureum
1 3 0 0
2 0 0 0
3 0 1 0
4 0 5 0
5 0 11 3
6 0 0 1
Myrsine.coriacea Ocotea.pulchella Prunus.myrtifolia Schinus.polygamus
1 0 4 3 1
2 0 7 2 0
3 0 4 2 3
4 1 6 3 0
5 2 2 4 2
6 8 0 4 3
Symplocos.tetrandra Weinmannia.paulliniifolia
1 0 0
2 0 0
3 0 0
4 0 0
5 3 0
6 2 5
head(traits) AF AFE DM Hmax Dec SD
Araucaria.angustifolia 1.879200 78.76768 0.5350186 17 P Zoo
Cinnamomum.amoenum 6.594295 83.47579 0.4020927 15 P Zoo
Drimys.angustifolia 8.049450 113.91161 0.4221022 8 P Zoo
Ilex.microdonta 8.865480 86.00457 0.6726260 17 P Zoo
Ilex.paraguariensis 19.591355 106.47591 0.4603714 15 P Zoo
Maytenus.boaria 5.068370 98.17190 0.6037453 15 P Zoo
# Dimensões das matrizes
dim(com)[1] 25 19
dim(traits)[1] 19 6
# Resumo estatístico
summary(com) Araucaria.angustifolia Cinnamomum.amoenum Drimys.angustifolia Ilex.microdonta
Min. :0.00 Min. : 0.00 Min. : 0.00 Min. : 1.00
1st Qu.:0.00 1st Qu.: 0.00 1st Qu.: 1.00 1st Qu.: 4.00
Median :0.00 Median : 0.00 Median : 2.00 Median : 8.00
Mean :0.32 Mean : 1.52 Mean : 3.56 Mean :11.08
3rd Qu.:0.00 3rd Qu.: 2.00 3rd Qu.: 4.00 3rd Qu.:16.00
Max. :3.00 Max. :10.00 Max. :22.00 Max. :32.00
Ilex.paraguariensis Maytenus.boaria Myrceugenia.euosma Myrceugenia.glaucescens
Min. :0.00 Min. :0.00 Min. :0.00 Min. : 2.00
1st Qu.:0.00 1st Qu.:0.00 1st Qu.:0.00 1st Qu.:14.00
Median :0.00 Median :1.00 Median :1.00 Median :21.00
Mean :0.52 Mean :1.72 Mean :1.08 Mean :20.48
3rd Qu.:1.00 3rd Qu.:3.00 3rd Qu.:2.00 3rd Qu.:27.00
Max. :3.00 Max. :7.00 Max. :5.00 Max. :45.00
Myrceugenia.miersiania Myrceugenia.myrcioides Myrceugenia.ovata
Min. :0.00 Min. :0.00 Min. : 0.00
1st Qu.:0.00 1st Qu.:0.00 1st Qu.: 0.00
Median :0.00 Median :0.00 Median : 1.00
Mean :0.72 Mean :0.64 Mean : 2.28
3rd Qu.:1.00 3rd Qu.:1.00 3rd Qu.: 3.00
Max. :5.00 Max. :5.00 Max. :11.00
Myrceugenia.oxysepala Myrrhinium.atropurpureum Myrsine.coriacea
Min. : 0.00 Min. :0.00 Min. :0.00
1st Qu.: 0.00 1st Qu.:0.00 1st Qu.:0.00
Median : 1.00 Median :0.00 Median :0.00
Mean : 2.48 Mean :0.76 Mean :0.76
3rd Qu.: 5.00 3rd Qu.:1.00 3rd Qu.:1.00
Max. :11.00 Max. :5.00 Max. :8.00
Ocotea.pulchella Prunus.myrtifolia Schinus.polygamus Symplocos.tetrandra
Min. :0.00 Min. :0.00 Min. :0.0 Min. : 0.00
1st Qu.:1.00 1st Qu.:2.00 1st Qu.:0.0 1st Qu.: 0.00
Median :3.00 Median :3.00 Median :0.0 Median : 0.00
Mean :2.76 Mean :3.28 Mean :0.8 Mean : 1.16
3rd Qu.:4.00 3rd Qu.:4.00 3rd Qu.:1.0 3rd Qu.: 1.00
Max. :7.00 Max. :9.00 Max. :4.0 Max. :11.00
Weinmannia.paulliniifolia
Min. :0.0
1st Qu.:0.0
Median :0.0
Mean :1.6
3rd Qu.:3.0
Max. :7.0
summary(traits) AF AFE DM Hmax
Min. : 1.476 Min. : 78.77 Min. :0.4021 Min. : 7.00
1st Qu.: 4.520 1st Qu.: 90.29 1st Qu.:0.4985 1st Qu.:11.00
Median : 6.972 Median :106.08 Median :0.5478 Median :15.00
Mean : 7.746 Mean :103.21 Mean :0.5495 Mean :13.53
3rd Qu.: 9.219 3rd Qu.:112.84 3rd Qu.:0.6038 3rd Qu.:15.50
Max. :19.591 Max. :132.69 Max. :0.6726 Max. :20.00
Dec SD
Length:19 Length:19
Class :character Class :character
Mode :character Mode :character
Importante: Para as análises funcionais, é crucial que os nomes das espécies na matriz de comunidade correspondam exatamente aos nomes das linhas na matriz de atributos.
# Checagem das espécies
# Verifica se os nomes das colunas de 'com' são iguais aos nomes das linhas de 'traits'
all(colnames(com) == rownames(traits))[1] TRUE
O primeiro passo para muitas análises funcionais é calcular o quão “distantes” ou diferentes as espécies são umas das outras com base em seus traços.
A distância de Gower é muito utilizada pois lida bem com tipos mistos de variáveis (numéricas, categóricas, binárias).
# 1 passo: criar uma matriz de dissimilaridade funcional
# ?gowdis
traits.dist <- gowdis(traits)
print(traits.dist, digits = 3) Araucaria.angustifolia Cinnamomum.amoenum
Cinnamomum.amoenum 0.1655
Drimys.angustifolia 0.3503 0.2095
Ilex.microdonta 0.1714 0.2210
Ilex.paraguariensis 0.3202 0.2266
Maytenus.boaria 0.1573 0.1837
Myrceugenia.euosma 0.2346 0.2727
Myrceugenia.glaucescens 0.1941 0.2406
Myrceugenia.miersiania 0.5225 0.5208
Myrceugenia.myrcioides 0.4682 0.4665
Myrceugenia.ovata 0.2229 0.3080
Myrceugenia.oxysepala 0.2950 0.3136
Myrrhinium.atropurpureum 0.3837 0.3926
Myrsine.coriacea 0.1578 0.2074
Ocotea.pulchella 0.1418 0.2002
Prunus.myrtifolia 0.2452 0.2436
Schinus.polygamus 0.3412 0.3932
Symplocos.tetrandra 0.2385 0.1857
Weinmannia.paulliniifolia 0.3667 0.3476
Drimys.angustifolia Ilex.microdonta
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta 0.3635
Ilex.paraguariensis 0.2425 0.3184
Maytenus.boaria 0.2777 0.1406
Myrceugenia.euosma 0.1488 0.3612
Myrceugenia.glaucescens 0.1832 0.2553
Myrceugenia.miersiania 0.3311 0.4707
Myrceugenia.myrcioides 0.3729 0.4526
Myrceugenia.ovata 0.2022 0.3071
Myrceugenia.oxysepala 0.2078 0.3189
Myrrhinium.atropurpureum 0.4738 0.2492
Myrsine.coriacea 0.2969 0.1435
Ocotea.pulchella 0.2342 0.2069
Prunus.myrtifolia 0.3933 0.1111
Schinus.polygamus 0.4526 0.3247
Symplocos.tetrandra 0.1556 0.2366
Weinmannia.paulliniifolia 0.3533 0.3649
Ilex.paraguariensis Maytenus.boaria
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria 0.2476
Myrceugenia.euosma 0.2982 0.2206
Myrceugenia.glaucescens 0.2557 0.1147
Myrceugenia.miersiania 0.5264 0.3652
Myrceugenia.myrcioides 0.3087 0.3819
Myrceugenia.ovata 0.3206 0.1664
Myrceugenia.oxysepala 0.3262 0.1860
Myrrhinium.atropurpureum 0.5130 0.3278
Myrsine.coriacea 0.2551 0.1430
Ocotea.pulchella 0.2128 0.1204
Prunus.myrtifolia 0.2146 0.1705
Schinus.polygamus 0.4481 0.2095
Symplocos.tetrandra 0.1435 0.1659
Weinmannia.paulliniifolia 0.2971 0.3198
Myrceugenia.euosma Myrceugenia.glaucescens
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens 0.1164
Myrceugenia.miersiania 0.3679 0.3284
Myrceugenia.myrcioides 0.4162 0.3130
Myrceugenia.ovata 0.1399 0.0674
Myrceugenia.oxysepala 0.2173 0.1009
Myrrhinium.atropurpureum 0.4715 0.3656
Myrsine.coriacea 0.2946 0.1999
Ocotea.pulchella 0.2016 0.1285
Prunus.myrtifolia 0.3911 0.2851
Schinus.polygamus 0.3698 0.2694
Symplocos.tetrandra 0.2165 0.1739
Weinmannia.paulliniifolia 0.3742 0.3278
Myrceugenia.miersiania Myrceugenia.myrcioides
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides 0.2178
Myrceugenia.ovata 0.3049 0.3453
Myrceugenia.oxysepala 0.2584 0.3509
Myrrhinium.atropurpureum 0.2476 0.2370
Myrsine.coriacea 0.4731 0.3894
Ocotea.pulchella 0.4227 0.3684
Prunus.myrtifolia 0.5005 0.3538
Schinus.polygamus 0.2066 0.2234
Symplocos.tetrandra 0.3830 0.3099
Weinmannia.paulliniifolia 0.5883 0.4779
Myrceugenia.ovata Myrceugenia.oxysepala
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides
Myrceugenia.ovata
Myrceugenia.oxysepala 0.0836
Myrrhinium.atropurpureum 0.4173 0.4291
Myrsine.coriacea 0.2673 0.2729
Ocotea.pulchella 0.1847 0.1952
Prunus.myrtifolia 0.3369 0.3487
Schinus.polygamus 0.3157 0.3609
Symplocos.tetrandra 0.1771 0.1828
Weinmannia.paulliniifolia 0.3825 0.3881
Myrrhinium.atropurpureum Myrsine.coriacea
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides
Myrceugenia.ovata
Myrceugenia.oxysepala
Myrrhinium.atropurpureum
Myrsine.coriacea 0.3861
Ocotea.pulchella 0.4454 0.1147
Prunus.myrtifolia 0.2984 0.2246
Schinus.polygamus 0.1530 0.3525
Symplocos.tetrandra 0.4313 0.1734
Weinmannia.paulliniifolia 0.5852 0.3017
Ocotea.pulchella Prunus.myrtifolia Schinus.polygamus
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides
Myrceugenia.ovata
Myrceugenia.oxysepala
Myrrhinium.atropurpureum
Myrsine.coriacea
Ocotea.pulchella
Prunus.myrtifolia 0.2880
Schinus.polygamus 0.3210 0.3546
Symplocos.tetrandra 0.1224 0.2535 0.3664
Weinmannia.paulliniifolia 0.2506 0.3990 0.5203
Symplocos.tetrandra
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides
Myrceugenia.ovata
Myrceugenia.oxysepala
Myrrhinium.atropurpureum
Myrsine.coriacea
Ocotea.pulchella
Prunus.myrtifolia
Schinus.polygamus
Symplocos.tetrandra
Weinmannia.paulliniifolia 0.2134
Para algumas análises de ordenação (como PCoA), é preferível que a distância tenha propriedades Euclidianas. A transformação de Cailliez pode ser usada para isso.
# 2 passo: transformar a matriz de distancia de gower
# para uma matriz de distancia euclideana
# ?cailliez
traits.dist.eucl <- cailliez(traits.dist)
print(traits.dist.eucl, digits = 3) Araucaria.angustifolia Cinnamomum.amoenum
Cinnamomum.amoenum 0.459
Drimys.angustifolia 0.644 0.503
Ilex.microdonta 0.465 0.515
Ilex.paraguariensis 0.614 0.520
Maytenus.boaria 0.451 0.478
Myrceugenia.euosma 0.528 0.567
Myrceugenia.glaucescens 0.488 0.534
Myrceugenia.miersiania 0.816 0.815
Myrceugenia.myrcioides 0.762 0.760
Myrceugenia.ovata 0.517 0.602
Myrceugenia.oxysepala 0.589 0.607
Myrrhinium.atropurpureum 0.678 0.686
Myrsine.coriacea 0.452 0.501
Ocotea.pulchella 0.436 0.494
Prunus.myrtifolia 0.539 0.537
Schinus.polygamus 0.635 0.687
Symplocos.tetrandra 0.532 0.480
Weinmannia.paulliniifolia 0.661 0.641
Drimys.angustifolia Ilex.microdonta
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta 0.657
Ilex.paraguariensis 0.536 0.612
Maytenus.boaria 0.572 0.434
Myrceugenia.euosma 0.443 0.655
Myrceugenia.glaucescens 0.477 0.549
Myrceugenia.miersiania 0.625 0.765
Myrceugenia.myrcioides 0.667 0.746
Myrceugenia.ovata 0.496 0.601
Myrceugenia.oxysepala 0.502 0.613
Myrrhinium.atropurpureum 0.768 0.543
Myrsine.coriacea 0.591 0.437
Ocotea.pulchella 0.528 0.501
Prunus.myrtifolia 0.687 0.405
Schinus.polygamus 0.746 0.619
Symplocos.tetrandra 0.449 0.530
Weinmannia.paulliniifolia 0.647 0.659
Ilex.paraguariensis Maytenus.boaria
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria 0.541
Myrceugenia.euosma 0.592 0.514
Myrceugenia.glaucescens 0.550 0.409
Myrceugenia.miersiania 0.820 0.659
Myrceugenia.myrcioides 0.603 0.676
Myrceugenia.ovata 0.614 0.460
Myrceugenia.oxysepala 0.620 0.480
Myrrhinium.atropurpureum 0.807 0.622
Myrsine.coriacea 0.549 0.437
Ocotea.pulchella 0.507 0.414
Prunus.myrtifolia 0.508 0.464
Schinus.polygamus 0.742 0.503
Symplocos.tetrandra 0.437 0.460
Weinmannia.paulliniifolia 0.591 0.614
Myrceugenia.euosma Myrceugenia.glaucescens
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens 0.410
Myrceugenia.miersiania 0.662 0.622
Myrceugenia.myrcioides 0.710 0.607
Myrceugenia.ovata 0.434 0.361
Myrceugenia.oxysepala 0.511 0.395
Myrrhinium.atropurpureum 0.765 0.659
Myrsine.coriacea 0.589 0.494
Ocotea.pulchella 0.495 0.422
Prunus.myrtifolia 0.685 0.579
Schinus.polygamus 0.664 0.563
Symplocos.tetrandra 0.510 0.468
Weinmannia.paulliniifolia 0.668 0.622
Myrceugenia.miersiania Myrceugenia.myrcioides
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides 0.512
Myrceugenia.ovata 0.599 0.639
Myrceugenia.oxysepala 0.552 0.645
Myrrhinium.atropurpureum 0.541 0.531
Myrsine.coriacea 0.767 0.683
Ocotea.pulchella 0.717 0.662
Prunus.myrtifolia 0.794 0.648
Schinus.polygamus 0.501 0.517
Symplocos.tetrandra 0.677 0.604
Weinmannia.paulliniifolia 0.882 0.772
Myrceugenia.ovata Myrceugenia.oxysepala
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides
Myrceugenia.ovata
Myrceugenia.oxysepala 0.377
Myrrhinium.atropurpureum 0.711 0.723
Myrsine.coriacea 0.561 0.567
Ocotea.pulchella 0.479 0.489
Prunus.myrtifolia 0.631 0.643
Schinus.polygamus 0.610 0.655
Symplocos.tetrandra 0.471 0.477
Weinmannia.paulliniifolia 0.676 0.682
Myrrhinium.atropurpureum Myrsine.coriacea
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides
Myrceugenia.ovata
Myrceugenia.oxysepala
Myrrhinium.atropurpureum
Myrsine.coriacea 0.680
Ocotea.pulchella 0.739 0.409
Prunus.myrtifolia 0.592 0.519
Schinus.polygamus 0.447 0.646
Symplocos.tetrandra 0.725 0.467
Weinmannia.paulliniifolia 0.879 0.596
Ocotea.pulchella Prunus.myrtifolia Schinus.polygamus
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides
Myrceugenia.ovata
Myrceugenia.oxysepala
Myrrhinium.atropurpureum
Myrsine.coriacea
Ocotea.pulchella
Prunus.myrtifolia 0.582
Schinus.polygamus 0.615 0.648
Symplocos.tetrandra 0.416 0.547 0.660
Weinmannia.paulliniifolia 0.544 0.693 0.814
Symplocos.tetrandra
Cinnamomum.amoenum
Drimys.angustifolia
Ilex.microdonta
Ilex.paraguariensis
Maytenus.boaria
Myrceugenia.euosma
Myrceugenia.glaucescens
Myrceugenia.miersiania
Myrceugenia.myrcioides
Myrceugenia.ovata
Myrceugenia.oxysepala
Myrrhinium.atropurpureum
Myrsine.coriacea
Ocotea.pulchella
Prunus.myrtifolia
Schinus.polygamus
Symplocos.tetrandra
Weinmannia.paulliniifolia 0.507
A PCoA (Principal Coordinates Analysis) nos permite visualizar a dissimilaridade funcional em um espaço de poucas dimensões (geralmente 2 eixos). Espécies próximas no gráfico são funcionalmente similares.
# 3 passo: realizar a PCoA
trait.pcoa <- dudi.pco(traits.dist.eucl, scannf = FALSE, nf = 2)
summary(trait.pcoa)Class: pco dudi
Call: dudi.pco(d = traits.dist.eucl, scannf = FALSE, nf = 2)
Total inertia: 0.168
Eigenvalues:
Ax1 Ax2 Ax3 Ax4 Ax5
0.04553 0.03087 0.01996 0.01263 0.01020
Projected inertia (%):
Ax1 Ax2 Ax3 Ax4 Ax5
27.106 18.377 11.885 7.521 6.072
Cumulative projected inertia (%):
Ax1 Ax1:2 Ax1:3 Ax1:4 Ax1:5
27.11 45.48 57.37 64.89 70.96
(Only 5 dimensions (out of 17) are shown)
# Visualização básica
scatter(trait.pcoa)Interpretação: Observe como as espécies se distribuem. Tente relacionar a posição delas com os traços originais.
Podemos também agrupar as espécies em dendrogramas baseados na similaridade funcional.
# 1 passo: já temos a matriz de dissimilaridade (traits.dist)
# 2 passo: utilizar um método de ligação (ex: UPGMA - average)
traits.clust <- hclust(traits.dist, method = "average")
# 3 passo: plotar o dendrograma
plot(traits.clust, hang=-1, main = "Dendrograma Funcional",
xlab = "Espécies", sub = "")Quando temos variáveis mistas (quantitativas e qualitativas), a PCA padrão não é adequada. A análise de Hill-Smith é uma alternativa robusta.
Antes de rodar, precisamos garantir que as variáveis categóricas estejam formatadas corretamente como fatores.
# Verificar classes
str(traits)'data.frame': 19 obs. of 6 variables:
$ AF : num 1.88 6.59 8.05 8.87 19.59 ...
$ AFE : num 78.8 83.5 113.9 86 106.5 ...
$ DM : num 0.535 0.402 0.422 0.673 0.46 ...
$ Hmax: int 17 15 8 17 15 15 7 11 8 12 ...
$ Dec : chr "P" "P" "P" "P" ...
$ SD : chr "Zoo" "Zoo" "Zoo" "Zoo" ...
# Transformar variáveis categóricas em fatores
# É essencial para a análise de Hill-Smith que as variáveis qualitativas sejam fatores
traits$Dec <- as.factor(traits$Dec)
traits$SD <- as.factor(traits$SD)
# Garantir que as variáveis quantitativas sejam numéricas
# (Caso tenham sido lidas como texto por algum motivo)
traits$AF <- as.numeric(traits$AF)
traits$AFE <- as.numeric(traits$AFE)
traits$DM <- as.numeric(traits$DM)
traits$Hmax <- as.numeric(traits$Hmax)
# Verifique novamente
summary(traits) AF AFE DM Hmax Dec
Min. : 1.476 Min. : 78.77 Min. :0.4021 Min. : 7.00 P :15
1st Qu.: 4.520 1st Qu.: 90.29 1st Qu.:0.4985 1st Qu.:11.00 SD: 4
Median : 6.972 Median :106.08 Median :0.5478 Median :15.00
Mean : 7.746 Mean :103.21 Mean :0.5495 Mean :13.53
3rd Qu.: 9.219 3rd Qu.:112.84 3rd Qu.:0.6038 3rd Qu.:15.50
Max. :19.591 Max. :132.69 Max. :0.6726 Max. :20.00
SD
Ane: 1
Zoo:18
Executando a análise:
# ?dudi.hillsmith
# scannf = FALSE evita que o R peça input interativo durante a renderização
traits.hs <- dudi.hillsmith(traits, scannf = FALSE, nf = 2)
summary(traits.hs)Class: mix dudi
Call: dudi.hillsmith(df = traits, scannf = FALSE, nf = 2)
Total inertia: 6
Eigenvalues:
Ax1 Ax2 Ax3 Ax4 Ax5
1.6854 1.5239 1.1095 0.8446 0.5005
Projected inertia (%):
Ax1 Ax2 Ax3 Ax4 Ax5
28.089 25.398 18.491 14.076 8.341
Cumulative projected inertia (%):
Ax1 Ax1:2 Ax1:3 Ax1:4 Ax1:5
28.09 53.49 71.98 86.06 94.40
(Only 5 dimensions (out of 6) are shown)
# Gráfico da ordenação
scatter(traits.hs)Agora vamos calcular métricas que descrevem a diversidade funcional da comunidade, ponderada pela abundância das espécies.
A função dbFD do pacote FD calcula vários índices de uma vez. Vamos entender o que cada um significa:
# ?dbFD
div.func <- dbFD(x = traits, a = com,
corr = "cailliez",
w.abun = TRUE,
calc.FRic = TRUE,
calc.FDiv = TRUE,
calc.CWM = TRUE)Species x species distance matrix was not Euclidean. Cailliez correction was applied.
FRic: Dimensionality reduction was required. The last 12 PCoA axes (out of 17 in total) were removed.
FRic: Quality of the reduced-space representation (based on corrected distance matrix) = 0.7096153
# Visualizar resultados
head(div.func)$nbsp
[1] 6 6 9 11 15 13 8 7 6 11 15 16 15 15 10 8 8 8 8 11 13 9 16 11 12
$sing.sp
[1] 6 6 9 11 15 13 8 7 6 11 15 16 15 15 10 8 8 8 8 11 13 9 16 11 12
$FRic
[1] 1.701374e-06 4.469394e-06 5.696701e-05 7.617572e-05 4.638981e-04
[6] 6.232094e-04 8.225095e-05 1.647947e-05 1.043393e-06 1.367686e-04
[11] 1.060210e-03 1.064993e-03 9.216791e-04 7.149760e-04 1.088182e-04
[16] 2.704459e-05 1.809452e-05 9.931395e-06 2.739250e-06 2.282601e-04
[21] 3.871523e-04 1.670447e-05 6.020594e-04 1.455325e-04 1.672048e-04
$qual.FRic
[1] 0.7096153
$FEve
[1] 0.6934175 0.3779311 0.5068645 0.6648568 0.7808703 0.7085845 0.3915754
[8] 0.4255295 0.4890798 0.6895451 0.7326684 0.7747733 0.7241348 0.6194890
[15] 0.5640070 0.6350105 0.6890385 0.6776917 0.5675089 0.5544553 0.6363097
[22] 0.7274673 0.8415437 0.6884759 0.6671649
$FDiv
[1] 0.6554344 0.6619238 0.6895003 0.6592815 0.7296117 0.7537305 0.6510742
[8] 0.7984487 0.7273462 0.6833119 0.7806063 0.7383027 0.7457102 0.7474127
[15] 0.7379384 0.7246758 0.7800939 0.7453293 0.8072460 0.6059265 0.6678749
[22] 0.6387584 0.8126102 0.6886366 0.4911008
O CWM nos diz qual é o valor médio de um traço na comunidade.
# Valores de CWM
div.func$CWM AF AFE DM Hmax Dec SD
1 5.436928 101.68757 0.5834526 12.81429 P Zoo
2 6.167338 99.45863 0.5869952 13.68333 P Zoo
3 6.656722 97.69237 0.6101795 14.14286 P Zoo
4 6.580093 102.76838 0.5778983 13.49091 P Zoo
5 6.718199 104.41190 0.5361976 12.75758 P Zoo
6 7.618422 102.62757 0.5219977 12.66279 P Zoo
7 6.960145 99.74801 0.5902900 13.23729 P Zoo
8 6.596034 97.91516 0.5991982 14.10294 P Zoo
9 6.661597 96.96368 0.6062242 14.35821 P Zoo
10 6.216049 106.24836 0.5598673 12.38000 P Zoo
11 8.426278 101.72864 0.5632224 13.19149 P Zoo
12 8.050706 102.83395 0.5578318 13.29412 P Zoo
13 7.444659 103.08833 0.5332741 13.57692 P Zoo
14 8.085461 105.79385 0.5343582 13.40000 P Zoo
15 5.770036 103.80049 0.5906381 12.93220 P Zoo
16 7.081918 99.60127 0.5777860 13.32432 P Zoo
17 6.004974 97.86701 0.5924458 13.97872 P Zoo
18 6.763918 105.76747 0.5447421 11.93182 P Zoo
19 4.769351 103.76283 0.5790798 12.55814 P Zoo
20 4.701606 104.23365 0.5742980 12.33824 P Zoo
21 7.479661 101.89468 0.5876119 13.55319 P Zoo
22 5.840690 102.88049 0.5629431 13.45714 P Zoo
23 8.501410 99.15315 0.5744437 12.86486 P Zoo
24 6.563005 107.59737 0.5496543 11.77273 P Zoo
25 5.435446 108.12279 0.5640417 12.05263 P Zoo
O índice de Rao mede a dissimilaridade média entre dois indivíduos escolhidos ao acaso na comunidade.
div.func$RaoQ [1] 0.01443958 0.01754580 0.02328394 0.02249951 0.02907238 0.03162781
[7] 0.02200716 0.01838782 0.02076295 0.02641487 0.04561279 0.04228302
[13] 0.03976211 0.03346936 0.02985990 0.02848246 0.02299939 0.02279779
[19] 0.01392420 0.01603954 0.02643244 0.01365353 0.04373526 0.02314626
[25] 0.01391159
# Histograma do RaoQ
hist(div.func$RaoQ, main = "Histograma de Rao's Q", xlab = "Rao's Q")Nesta etapa final, vamos aplicar o conhecimento adquirido com exercícios práticos (“Mão na Massa”), agora com as soluções passo-a-passo.
Utilizando os dados traits e com que carregamos:
Desafio: Selecione apenas os traços relacionados à morfologia (Hmax e DM) e recalcule a diversidade funcional (Rao’s Q). Compare com o resultado original.
Por que fazer isso? Na prática, nem todos os traços importam para todas as funções. 1. Teste de Hipótese: Se você quer estudar estoque de carbono, talvez faça sentido focar apenas em traços de madeira e tamanho (
Hmax,DM), ignorando traços de semente. 2. Custo-Benefício: Se a diversidade calculada com apenas 2 traços “fáceis” for igual à calculada com 10 traços “caros”, você pode economizar tempo e dinheiro em campo medindo apenas o essencial.
Solução:
# 1. Selecionar subconjunto de traços
traits_sub <- traits[, c("Hmax", "DM")]
# 2. Calcular diversidade funcional para esse subconjunto
# Nota: dbFD recalcula a distância automaticamente se passarmos a matriz de traços
div_sub <- dbFD(x = traits_sub, a = com,
w.abun = TRUE,
messages = FALSE,
calc.FRic = FALSE, calc.FDiv = FALSE, calc.CWM = FALSE)
# 3. Comparar Rao's Q original vs novo
# Vamos criar um dataframe para facilitar a visualização
comparacao <- data.frame(
Rao_Original = div.func$RaoQ,
Rao_Subconjunto = div_sub$RaoQ
)
head(comparacao) Rao_Original Rao_Subconjunto
1 0.01443958 1.003625
2 0.01754580 1.604589
3 0.02328394 1.398549
4 0.02249951 1.503311
5 0.02907238 1.700897
6 0.03162781 2.438772
# Plotar para ver a correlação
plot(comparacao$Rao_Original, comparacao$Rao_Subconjunto,
xlab = "Rao Original (Todos os traços)",
ylab = "Rao (Hmax + DM)",
main = "Comparação de Índices", pch = 19)
abline(0, 1, col = "red", lty = 2)Discussão: Se os pontos caírem longe da linha 1:1, significa que esses dois traços contam uma história diferente do conjunto completo de traços.
Desafio: Remova as 3 espécies mais abundantes da matriz com. Recalcule o CWM para Hmax (Altura Máxima). A altura média da comunidade aumentou ou diminuiu?
Solução:
# 1. Identificar as 3 espécies mais abundantes
abundancia_total <- colSums(com)
top3_spp <- names(sort(abundancia_total, decreasing = TRUE))[1:3]
print(paste("Espécies removidas:", paste(top3_spp, collapse = ", ")))[1] "Espécies removidas: Myrceugenia.glaucescens, Ilex.microdonta, Drimys.angustifolia"
# 2. Remover essas espécies da matriz de comunidade
com_sim <- com[, !colnames(com) %in% top3_spp]
# 3. Alinhar a matriz de traços (remover as mesmas espécies)
traits_sim <- traits[colnames(com_sim), ]
# 4. Recalcular CWM
# Agora passamos 'traits_sim' que tem o mesmo número de espécies de 'com_sim'
div_sim <- dbFD(x = traits_sim, a = com_sim,
w.abun = TRUE,
messages = FALSE,
calc.FRic = FALSE, calc.FDiv = FALSE, calc.CWM = TRUE)
# 5. Comparar CWM de Hmax (Antes vs Depois)
cwm_antes <- div.func$CWM$Hmax
cwm_depois <- div_sim$CWM$Hmax
# Visualizar a diferença (Ex: média das comunidades)
mean(cwm_antes)[1] 13.11427
mean(cwm_depois)[1] 14.15482
boxplot(cwm_antes, cwm_depois, names = c("Antes", "Depois"),
main = "Variação do CWM (Hmax) após extinção",
ylab = "Altura Média Ponderada (m)")Nesta seção, vamos aplicar as ferramentas de ecologia funcional em cenários reais que engenheiros florestais enfrentam no dia a dia. Trabalharemos com situações práticas de manejo, exploração madeireira, restauração e planejamento de plantios.
Você precisa planejar um plantio de restauração. O objetivo é escolher um conjunto de espécies que preencham bem o espaço funcional (complementaridade), garantindo que diferentes recursos sejam utilizados.
Desafio: Selecionar 3 espécies que sejam funcionalmente complementares (distantes no gráfico da PCoA).
# 1. Visualizar o espaço funcional das espécies (PCoA)
# Já calculamos isso na Parte 2 (trait.pcoa)
scatter(trait.pcoa)# 2. Estratégia: Escolher espécies nos extremos do gráfico
# Isso garante que elas tenham estratégias de vida diferentes (alta complementaridade)
# Vamos identificar as espécies com valores extremos nos Eixos 1 e 2
coords <- trait.pcoa$li
# Espécie com menor valor no Eixo 1
sp1 <- rownames(coords)[which.min(coords$A1)]
# Espécie com maior valor no Eixo 1
sp2 <- rownames(coords)[which.max(coords$A1)]
# Espécie com maior valor no Eixo 2
sp3 <- rownames(coords)[which.max(coords$A2)]
consorcio <- c(sp1, sp2, sp3)
print(paste("Espécies selecionadas:", paste(consorcio, collapse = ", ")))[1] "Espécies selecionadas: Weinmannia.paulliniifolia, Myrceugenia.miersiania, Drimys.angustifolia"
# 3. Verificar os traços dessas espécies para entender a escolha
print(traits[consorcio, c("Hmax", "DM", "AFE")]) Hmax DM AFE
Weinmannia.paulliniifolia 16 0.5000273 108.1331
Myrceugenia.miersiania 8 0.6037998 127.6828
Drimys.angustifolia 8 0.4221022 113.9116
Interpretação: * Ao escolher espécies distantes no gráfico, selecionamos plantas com estratégias opostas (ex: crescimento rápido vs. madeira densa). * Isso reduz a competição entre elas e aumenta a produtividade total do plantio (Efeito de Complementaridade).
Você precisa quantificar quais serviços sua floresta está provendo. Vamos usar a Média Ponderada da Comunidade (CWM) para inferir dois serviços principais: Estoque de Carbono e Suporte à Fauna.
# ===== SERVIÇO 1: ESTOQUE DE CARBONO =====
# O estoque de carbono está ligado à Densidade da Madeira (DM) e ao Porte (Hmax).
# Vamos olhar para o CWM da Densidade da Madeira.
cwm_dm <- div.func$CWM$DM
# Visualizar a distribuição do "Serviço de Carbono" nas parcelas
hist(cwm_dm, main = "Serviço: Estoque de Carbono (Proxy: Densidade)",
xlab = "Densidade Média da Madeira (g/cm³)", col = "brown")cat("Média do serviço de Carbono:", round(mean(cwm_dm), 3), "g/cm³\n")Média do serviço de Carbono: 0.57 g/cm³
# ===== SERVIÇO 2: SUPORTE À FAUNA (ZOOCORIA) =====
# Espécies zoocóricas (dispersas por animais) fornecem frutos e são cruciais para a fauna.
# Vamos calcular a proporção de espécies zoocóricas em cada parcela.
# 1. Criar um traço binário: 1 = Zoocórica, 0 = Não Zoocórica
traits$Zoocoria <- ifelse(traits$SD == "Zoo", 1, 0)
# 2. Calcular o CWM para esse novo traço
# Como é binário (0 ou 1), o CWM será a PROPORÇÃO de biomassa zoocórica
# 2. Calcular o CWM para esse novo traço
# Como é binário (0 ou 1), o CWM será a PROPORÇÃO de biomassa zoocórica
# Usamos a função functcomp do pacote FD que é específica para calcular CWM
cwm_zoo <- as.numeric(functcomp(traits[, "Zoocoria", drop=FALSE], as.matrix(com))$Zoocoria)
# Visualizar
hist(cwm_zoo, main = "Serviço: Suporte à Fauna",
xlab = "Proporção de Zoocoria", col = "darkgreen")cat("Média do suporte à fauna:", round(mean(cwm_zoo)*100, 1), "% da comunidade é zoocórica\n")Média do suporte à fauna: 100 % da comunidade é zoocórica
Conclusão: * Parcelas com alto CWM de Densidade são prioritárias para Créditos de Carbono. * Parcelas com alto CWM de Zoocoria são prioritárias para Conservação da Biodiversidade.
Recapitulação dos principais pontos:
Dúvidas finais e discussão