phylo() marks user-facing syntax for phylogenetic dependence. The current
fitted paths support Gaussian location and residual-scale effects,
response-specific direct-SD formulas for location effects, labelled
bivariate Gaussian location-scale blocks, and the first ordinary Poisson q=1
and NB2 q=1 location effects. Use phylo(1 | species, tree = tree) in
univariate Gaussian mu, univariate Gaussian sigma, ordinary Poisson mu,
or ordinary NB2 mu, phylo(1 + x | species, tree = tree) for the
unlabelled ordinary Poisson/NB2 count one-slope gate, one numeric univariate
Gaussian mu slope with independent intercept/slope SDs, matching
univariate Gaussian mu and
sigma intercept terms for a mean-scale phylogenetic correlation, matching
terms in bivariate Gaussian mu1 and mu2, matching labelled all-four
intercept terms across Gaussian mu1, mu2, sigma1, and sigma2, or the
first shared-label all-four one-slope point-fit/extractor cell. A single
shared intercept label estimates the full q4 block; a mu1/mu2 intercept
label plus a separate sigma1/sigma2 intercept label estimates the
block-diagonal fallback. The all-four phylo(1 + x | p | species, tree = tree) cell is native point-fit/extractor evidence only; bridge parity,
intervals, coverage, REML, AI-REML, block-diagonal all-four slope layouts,
Gaussian multiple phylogenetic slopes, pure, labelled, or multiple
non-Gaussian phylogenetic slopes,
zero-inflated phylogenetic effects, and phylogenetic slope correlations
remain planned. The public phylo() API
requires an
ultrametric tree with branch lengths and uses the Hadfield and Nakagawa
A-inverse sparse-precision path internally.
Examples
bf(y ~ x + phylo(1 | species, tree = tree), sigma ~ z)
#> <drm_formula>
#> y ~ x + phylo(1 | species, tree = tree)
#> sigma ~ z
bf(count ~ x + phylo(1 | species, tree = tree))
#> <drm_formula>
#> count ~ x + phylo(1 | species, tree = tree)
bf(count ~ x + phylo(1 + x | species, tree = tree))
#> <drm_formula>
#> count ~ x + phylo(1 + x | species, tree = tree)