Contagens não são normais, proporções vivem em \([0,1]\), presenças são binárias. O modelo linear gaussiano trata todas como se fossem contínuas e ilimitadas, e falha de formas previsíveis: intervalos de confiança que incluem riquezas negativas, variância mal especificada, resíduos em leque.
O GLM resolve isso com duas escolhas: a distribuição da resposta e a função de ligação que conecta a média ao preditor linear.
Ajuste um GLM Poisson como o g1, incluindo hydro no fim da fórmula. Passe os coeficientes para checar("9.1", ...) e depois compare o AIC dele com o de g1.
DicaDica
Copie o g1 e acrescente + hydro. aic(g) dá o AIC; quanto menor, melhor.
O AIC cai cerca de 9, então hydro merece o lugar. A simulação somou 0,22 à média log das lagoas permanentes; o modelo estima −0,19 para as temporárias, o mesmo efeito visto do outro lado.
DicaInterpretando coeficientes na escala log
Um coeficiente \(\beta\) na ligação log significa que um aumento de uma unidade no preditor multiplica a média por \(e^\beta\). Para canopy:
exp(coef(g1)[3]), (exp(coef(g1)[3]) -1) *100
(0.9885114593513831, -1.148854064861693)
Ou seja, cada ponto percentual de dossel a mais reduz a riqueza esperada em cerca de 1%.
NotaSua vez 9.2 — Lagoas temporárias, em números simples
Usando o modelo do 9.1, por qual fator a riqueza esperada muda em uma lagoa temporária em comparação com uma permanente, mantido o resto igual? Passe esse fator para checar("9.2", ...).
DicaDica
O coeficiente de hydro: temporary é o quinto. Na ligação log, um coeficiente \(\beta\) multiplica a média por \(e^\beta\).
CuidadoSolução
fator_temp =exp(coef(g_hidro)[5])
0.8273060956543652
checar("9.2", fator_temp)
✓ Correto!
Cerca de 0,83: espera-se que lagoas temporárias tenham cerca de 17% menos espécies que as permanentes.
9.3 Sobredispersão
A Poisson assume \(\text{Var}(Y) = \text{E}(Y)\). Dados ecológicos raramente cooperam.
Se \(\hat\phi \gg 1\), as alternativas são a binomial negativa ou um modelo misto com efeito aleatório em nível de observação.
ImportanteSobredispersão é um sintoma, não um diagnóstico
ponds.csv foi gerado como um processo Poisson puro — não há variância extra-Poisson no código gerador. Ainda assim, \(\hat\phi \approx 1.95\). Por quê?
Porque o modelo gerador incluía um efeito de região que g1 omite. Heterogeneidade não modelada infla a estatística de dispersão exatamente como a sobredispersão genuína, e a estatística não distingue os dois casos.
Isso importa na prática: o reflexo de recorrer à binomial negativa sempre que \(\hat\phi > 1.5\) pode encobrir um preditor ausente. Verifique a estrutura do modelo antes de trocar a distribuição. O GLMM da Seção 9.6 trata da causa real aqui.
NotaSua vez 9.3 — Testando o aviso
O quadro acima afirma que a sobredispersão de g1 vem de um preditor ausente. Teste isso: ajuste um GLM Poisson com log_area, canopy, temp_c, hydro e region, calcule a estatística de dispersão como no bloco de dispersão e passe-a para checar("9.3", ...).
DicaDica
Copie o bloco de dispersão, trocando g1 pelo seu modelo. predict(g) dá as médias ajustadas.
Cerca de 0,94: com os preditores do modelo gerador no lugar, a “sobredispersão” desaparece. Incluir só hydro (9.1) quase não a mudou; region era a peça que faltava.
NotaSua vez 9.4 — Chances para uma mudança que faz sentido
A razão de chances para um ponto percentual de dossel fica perto de 1, o que é difícil de interpretar. Calcule, a partir de g4, a razão de chances para um aumento de 10 pontos percentuais e passe-a para checar("9.4", ...).
DicaDica
Dez pontos multiplicam as chances por \(e^{10\beta}\), não por \(10\,e^{\beta}\).
CuidadoSolução
rc_10 =exp(10*coef(g4)[2])
1.1881878414800107
checar("9.4", rc_10)
✓ Correto!
Cerca de 1,19: cada 10 pontos a mais de dossel multiplicam as chances de encontrar a espécie-foco por 1,19, um aumento de 19%.
Figura 9.1: Probabilidade prevista de ocorrência da espécie-foco ao longo do gradiente de dossel.
NotaSua vez 9.5 — Prevendo uma lagoa nova
Uma lagoa temporária tem 80% de dossel e água a 26 °C. Segundo o g4, qual a probabilidade de encontrar a espécie-foco nela? Passe-a para checar("9.5", ...).
DicaDica
Monte um DataFrame de uma linha com as colunas canopy, temp_c e hydro e passe-o para predict(g4, ...), como com grade acima.
A notação de fórmula é a mesma, (1 | grupo) incluído. Para o método de estimação usado e as opções disponíveis, consulte a documentação de MixedModels.jl(Bates et al. 2026): são detalhes que mudam entre versões, e não vale reproduzi-los aqui de memória.
NotaSua vez 9.6 — Um GLMM com hidroperíodo
Inclua hydro no gm1 e passe os efeitos fixos do novo modelo para checar("9.6", ...). Compare a estimativa de hydro com a do 9.1.
DicaDica
Acrescente + hydro antes do termo de efeito aleatório. fixef(gm) retorna os efeitos fixos.
Este é o ponto em que ser honesto vale mais que ser entusiasta. A tabela abaixo é uma avaliação de agosto de 2026, feita consultando os registros públicos de pacotes; verifique antes de concluir que algo não existe.
Precisa de
Em R
Em Julia hoje
Zero-inflação, hurdle
glmmTMB, pscl
sem equivalente maduro
Regressão beta
betareg, glmmTMB
sem equivalente maduro
Modelos aditivos (GAM)
mgcv
sem equivalente maduro
Resíduos quantílicos simulados
DHARMa
sem equivalente; implementável à mão
Médias marginais, contrastes
emmeans
Effects.jl, cobertura parcial
Regressão ordinal
ordinal, MASS::polr
cobertura parcial
9.7.1 A saída pragmática: RCall.jl
Não há vergonha em chamar R de dentro de Julia quando o pacote certo só existe lá. O fluxo continua reprodutível, e os dados atravessam a fronteira automaticamente.
usingRCall@rput ponds # envia o DataFrame para o RR"""library(mgcv)m <- gam(richness ~ s(canopy) + s(log_area) + region, family = poisson, data = ponds)summary(m)"""
NotaOnde isso deixa você
Para o repertório coberto por este capítulo — Poisson, binomial negativa, binomial, gama, offsets, GLMMs — Julia cobre o necessário, e este capítulo o demonstrou com código executado. Fora dele, RCall.jl é a ponte. Reconhecer a fronteira com clareza é mais útil ao leitor do que escondê-la.
Desafios
Calcule a estatística de dispersão para g2. A binomial negativa resolveu a sobredispersão? Depois do 9.3, você ainda a escolheria?
Construa a curva de probabilidade prevista da Figura 9.1 para cada hidroperíodo em três temperaturas (22, 24,5 e 27 °C). Quanto a temperatura desloca a curva?
Implemente resíduos quantílicos ao estilo DHARMa para o g1: simule 250 conjuntos de dados a partir do modelo ajustado e, para cada lagoa, calcule a proporção de valores simulados abaixo do observado. Se o modelo estiver certo, essas proporções são uniformes. Elas são? Repita para o modelo do 9.3.
Bates, Douglas, Phillip Alday, Dave Kleinschmidt, et al. 2026. MixedModels.jl: A Julia package for fitting (statistical) mixed-effects models. Versão 5.8.2. Released. https://github.com/JuliaStats/MixedModels.jl.