Aula 08 — Atributos multivariados

Morfometria geométrica e superposição de Procrustes; K, taxa e PGLS multivariados (geomorph); modelos multivariados com verossimilhança penalizada e matrizes de taxas por regime (mvMORPH); modularidade e integração; PCA filogenética.

Aula 8 · Há sinal? Como evolui? Estão associados? · Métodos Filogenéticos Comparativos (PPGBA/UFMS)

No mapa dos métodos, esta aula cobre a linha dos atributos multivariados nas quatro colunas. Os exemplos usam as salamandras Plethodon (geomorph) e os Anolis.

Slides

Abrir slides

As figuras dos slides foram geradas em R; o código está em R/aula08_multivariados.R.

Em 3 minutos

  1. A superposição de Procrustes remove posição, escala e rotação; o que sobra é forma, e o tamanho do centroide guarda o tamanho.
  2. K, σ² e PGLS têm versões multivariadas baseadas em distâncias e permutação, que funcionam com mais variáveis do que espécies.
  3. Com muitas variáveis, ajuste modelos com verossimilhança penalizada; matrizes de taxas por regime mostram taxas e correlações evolutivas diferentes.

Erro comum: ajustar modelos multivariados por verossimilhança comum quando há mais variáveis do que espécies.

Conteúdo

  1. Morfometria geométrica: a definição de forma, Procrustes passo a passo, GPA, morfoespaço
  2. Sinal, taxa e PGLS multivariados; filomorfoespaço da forma
  3. Modelos multivariados: mvgls, matrizes de taxas por regime, restrições, PhylogeneticEM
  4. Modularidade e integração
  5. Ordenação filogenética: PCA filogenética

Código R (aula prática)

  • Roteiro prático (executado)
    Procrustes à mão e com o gpagen(), morfoespaço, K e PGLS multivariados, PCA filogenética, mvgls com verossimilhança penalizada, mvBM com uma matriz de taxas por ecomorfo, modularidade e integração. O código roda na página.
  • A PCA filogenética da edição de 2020 está no roteiro da Aula 7 (seção #---phylo PCA e PVR).

Pacotes: geomorph, mvMORPH, phytools.

Dados utilizados

Os dados vêm dos pacotes: data(plethodon, plethspecies, package = "geomorph") e data(anoletree, anole.data, package = "phytools"). Não é preciso baixar nenhum arquivo.

Desafio

Entregue um script .R que rode do zero numa sessão limpa, as figuras pedidas e até uma página de interpretação. Critério: o script roda (30 %); as escolhas estão justificadas (30 %); a interpretação está correta (40 %).

Uma matriz de taxas ou várias? Com os Anolis (anoletree traz os ecomorfos mapeados): (1) faça a PCA comum e a filogenética (phytools::phyl.pca()) dos seis atributos (já em log natural no anole.data) e compare as cargas dos dois primeiros eixos; (2) com os membros anterior (FLL) e posterior (HLL), ajuste BM com uma matriz de taxas e com uma por ecomorfo (mvMORPH::mvBM(model = "BM1") e "BMM"), compare por AICc e desenhe as elipses das matrizes. Avaliação: interpreta as diferenças entre as matrizes em termos de taxas e de correlação evolutiva, e comenta os ecomorfos com poucas espécies.

  • As seções 3 e 5 do roteiro fazem a PCA filogenética e o mvBM() com outros atributos.
  • Ordene os dados pela árvore: anole.data[anoletree$tip.label, ].
  • Compare objetos equivalentes: os autovetores estão em $Evec no phyl.pca() e em $rotation no prcomp(); o $L do phyl.pca() traz as correlações entre atributos e eixos. Um eixo com os sinais invertidos é o mesmo eixo.
  • Os ecomorfos têm de 6 (Tr) a 25 (TG) espécies: matrizes de taxas de grupos pequenos são estimadas com pouca precisão.
  • mvBM() guarda as matrizes em $sigma (uma por regime, $sigma[, , "TG"]). Uma elipse de uma matriz 2 × 2 S: os pontos de um círculo multiplicados por chol(S).
library(phytools); library(mvMORPH)
data(anoletree, anole.data)
X <- anole.data[anoletree$tip.label, ]
# 1. prcomp(X)$rotation[, 1:2]; phyl.pca(as.phylo(anoletree), X)$Evec[, 1:2]
# 2. Y <- as.matrix(X[, c("FLL", "HLL")])
#    mvBM(anoletree, Y, model = "BM1"); mvBM(anoletree, Y, model = "BMM")
#    elipse: circ <- cbind(cos(t), sin(t)); circ %*% chol(S)

As respostas comentadas serão publicadas aqui depois do prazo de entrega.

Leituras recomendadas