Repository navigation
Releases: ropensci/coevolve
Releases · ropensci/coevolve
Release list
coevolve 1.2.1
coevolve 1.2.1
New Features
- Added further documentation about repeated observations models (#120)
- Added vignette "Algorithmic scaling" (#121)
- Models with Gaussian variables and no repeated observations now use a
conditionally non-centred parameterisation for latent terminal drift, i.e.
the terminal drift of non-Gaussian variables and of missing Gaussian values.
Latent drift is written as a standard normal innovation conditional on the
observed Gaussian residuals of the same taxon. This is a change of variables
that leaves the model, the posterior, and the pointwise log-likelihood
unchanged, but removes a funnel between the drift parameters and the latent
terminal drift that caused poor mixing in mixed Gaussian and non-Gaussian
models. Thanks to @yuhangxoox for the diagnosis (#124)
Bug Fixes
- Fixed the continuous time intercept term in the expected change along a
branch,A^-1 (exp(A t) - I) b. Since version 1.0.0 this matrix was
symmetrised before being multiplied byb, which is only correct when the
selection matrixAis symmetric (e.g., no cross-selection effects). Both
the Stan and JAX backends now use the exact expression. In our comparisons
the selection (A) and drift (Q) parameters were essentially unchanged,
becausebis weakly identified and absorbs most of the difference.
Posterior estimates ofbitself can shift; in one simulated example they
moved by up to about 0.6 posterior standard deviations - Fixed
coev_plot_predictive_check()whennuts_sampler = "nutpie". The
JAX backend now returnsyrepposterior predictions alongside the other
model parameters, matching the Stan backend (#118) log_lik = TRUEis now supported withnuts_sampler = "nutpie". The JAX
backend previously ignored the argument and returned nolog_lik, so
looandwaiccould not be computed from nutpie fits (#118)- Fixed
prior_only = TRUEfor models with Gaussian variables and no
repeated observations.terminal_driftonly received a prior inside the
likelihood block, leaving it improper when the likelihood was skipped.
Sampling failed to initialise withnuts_sampler = "nutpie"and was
unreliable withnuts_sampler = "stan"(#118) - Fixed the pointwise
log_likandyrepfor Gaussian variables with
missing data. The generated quantities block used the-9999missing
value placeholder when constructing residuals, which corrupted the
conditional densities of the other variables of the same observation
coevolve 1.2.0
New Features
- Added
coev_ancestral_states()for extracting posterior estimates of
ancestral trait values at internal phylogenetic nodes, on either the
latent or response scale (#86) - Added vignette "Ancestral state reconstruction"
Bug Fixes
- Fixed issue with plotting functions when
nuts_sampler = "nutpie"(#114)
Other Changes
coevolve 1.1.0
coevolve 1.0.0
Bug Fixes
- Fixed issue with
summary()whenestimate_residual = FALSE(#95)
New Features
- Added
nutpieas an alternative sampler for the Stan models (#92) - Cached matrix computations when branch lengths are identical (#93)
- Implemented Hilbert-space approximate Gaussian processes for spatial control,
adding thelon_latargument and deprecating thedist_matargument in
coev_fit()(#103)
Other Changes
- Updated license
- Submitted to rOpenSci for package review
- Linted package using lintr
- Implemented srr compliance checks
- Added continuous integration checks using GitHub Actions
- Reduced cyclomatic complexity for some functions
- Re-factored Stan code generation to use
whisker templates (#99) - Implemented automatic test fixture re-generation in GitHub Actions (#100)