Aula 05 — Regressão filogenética (PGLS)
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
As figuras dos slides foram geradas em R; o código está em R/aula05_pgls.R.
Em 3 minutos
Conteúdo
- Do OLS ao GLS: pressupostos e a matriz C
- PGLS na prática:
nlme::glscomcorBrownianecorPagel, R² comrr2 - Diagnóstico: resíduos e o erro comum
- ANOVA e ANCOVA filogenéticas
- Além do PGLS: GLM filogenético (logística e Poisson)
- Quando a correlação muda na árvore (
evol.vcv) - 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² comrr2, diagnóstico e sinal nos resíduos, ANOVA e ANCOVA filogenéticas, GLM filogenético,evol.vcve incerteza filogenética. O código roda na página. - Na edição de 2020: seções
#---PGLSe#---ANOVA filogenéticado roteiro da Aula 2 e#---evol.vcvdo 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 dogls(). - 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
- Revell & Harmon (2022), Phylogenetic Comparative Methods in R: cap. 3
- Symonds & Blomberg (2014): um guia do PGLS
- Revell (2010): sinal nos resíduos
- Ives (2019): R² para dados correlacionados
- Adams & Collyer (2018): ANOVA filogenética e grupos agregados na árvore
- Fuentes-G. et al. (2016): ANCOVA filogenética com mudanças de taxa