Aula 05 — Regressão filogenética (PGLS)

Do OLS ao GLS com a matriz C. PGLS na prática, diagnóstico e sinal nos resíduos, R² com rr2, ANOVA e ANCOVA filogenéticas, GLM filogenético (phylolm), matrizes de taxas que mudam na árvore e incerteza filogenética.

Aula 5 · Estão associados? · Métodos Filogenéticos Comparativos (PPGBA/UFMS)

No mapa dos métodos, esta aula cobre a coluna Estão associados? para atributos contínuos: a regressão que a maioria vai usar na dissertação. Os exemplos usam os Anolis (phytools).

Slides

Abrir slides

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

Em 3 minutos

  1. O PGLS é um GLS em que a covariância dos resíduos é σ²C; sob BM, dá a mesma inclinação que os contrastes independentes.
  2. O pressuposto é sobre os resíduos: estime o λ junto com a regressão e confira o sinal nos resíduos.
  3. Para respostas binárias ou contagens, use o GLM filogenético (phylolm::phyloglm); o R² do OLS não serve, use o rr2.

Erro comum: testar o sinal na resposta ou na preditora para decidir se usa o PGLS.

Conteúdo

  1. Do OLS ao GLS: pressupostos e a matriz C
  2. PGLS na prática: nlme::gls com corBrownian e corPagel, R² com rr2
  3. Diagnóstico: resíduos e o erro comum
  4. ANOVA e ANCOVA filogenéticas
  5. Além do PGLS: GLM filogenético (logística e Poisson)
  6. Quando a correlação muda na árvore (evol.vcv)
  7. Incerteza filogenética

Código R (aula prática)

  • Roteiro prático (executado)
    O GLS à mão na árvore-guia, PGLS com BM e λ, R² com rr2, diagnóstico e sinal nos resíduos, ANOVA e ANCOVA filogenéticas, GLM filogenético, evol.vcv e incerteza filogenética. O código roda na página.
  • Na edição de 2020: seções #---PGLS e #---ANOVA filogenética do roteiro da Aula 2 e #---evol.vcv do roteiro da Aula 4.

Pacotes: ape, nlme, phytools, phylolm, rr2.

Dados utilizados

Os Anolis do pacote phytools (data(anoletree, anole.data)), os mesmos dos slides; os dados dos roteiros estão nas páginas das Aulas 2 e 5.

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 %).

OLS, PIC e PGLS. Com data(anoletree, anole.data, package = "phytools"), modele o comprimento da cabeça (HL) contra o SVL (os dois já em log natural no anole.data): (1) por OLS; (2) por PGLS com corBrownian e com corPagel (nlme::gls, form = ~sp); (3) pela regressão dos contrastes pela origem. (4) Compare as inclinações e os erros-padrão numa tabela, calcule o R² do PGLS com rr2::R2() e estime o sinal nos resíduos do OLS. Avaliação: mostra que PIC e PGLS-BM dão a mesma inclinação e justifica a escolha do modelo pelos resíduos, não pelos atributos.

  • As seções 2 a 4 do roteiro fazem o mesmo com o membro posterior; a equivalência com os contrastes está na seção 6 do roteiro da Aula 2.
  • Use as.phylo(anoletree) para tirar o mapa dos ecomorfos antes do gls().
  • Para os contrastes, use vetores com nomes: pic(setNames(dados$hl, dados$sp), arv).
  • O sinal nos resíduos: phylosig(arv, setNames(resid(m_ols), dados$sp), method = "lambda", test = TRUE).
library(ape); library(phytools); library(nlme); library(rr2)
data(anoletree, anole.data, package = "phytools")
arv <- as.phylo(anoletree)
dados <- data.frame(sp = rownames(anole.data), hl = anole.data$HL, svl = anole.data$SVL)
# m_ols <- gls(hl ~ svl, data = dados, method = "ML")
# m_bm  <- gls(..., correlation = corBrownian(1, arv, form = ~sp))
# m_lam <- gls(..., correlation = corPagel(1, arv, form = ~sp))
# contrastes: lm(pic_hl ~ pic_svl - 1)

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

Leituras recomendadas