Skip to content

Releases: ropensci/coevolve

coevolve 1.2.1

Choose a tag to compare

@ScottClaessens ScottClaessens released this 07 Oct 09:59

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 by b, which is only correct when the
    selection matrix A is 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,
    because b is weakly identified and absorbs most of the difference.
    Posterior estimates of b itself can shift; in one simulated example they
    moved by up to about 0.6 posterior standard deviations
  • Fixed coev_plot_predictive_check() when nuts_sampler = "nutpie". The
    JAX backend now returns yrep posterior predictions alongside the other
    model parameters, matching the Stan backend (#118)
  • log_lik = TRUE is now supported with nuts_sampler = "nutpie". The JAX
    backend previously ignored the argument and returned no log_lik, so
    loo and waic could not be computed from nutpie fits (#118)
  • Fixed prior_only = TRUE for models with Gaussian variables and no
    repeated observations. terminal_drift only received a prior inside the
    likelihood block, leaving it improper when the likelihood was skipped.
    Sampling failed to initialise with nuts_sampler = "nutpie" and was
    unreliable with nuts_sampler = "stan" (#118)
  • Fixed the pointwise log_lik and yrep for Gaussian variables with
    missing data. The generated quantities block used the -9999 missing
    value placeholder when constructing residuals, which corrupted the
    conditional densities of the other variables of the same observation

coevolve 1.2.0

Choose a tag to compare

@ScottClaessens ScottClaessens released this 25 Aug 13:52

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

  • Updated documentation (#111)
  • Fixed cmdstanr location in documentation (#112)
  • Responded to rOpenSci package review (#113)
  • Added package citation (#116)

coevolve 1.1.0

Choose a tag to compare

@ScottClaessens ScottClaessens released this 15 May 15:57
4d02f34

New Features

  • Allow for single traits (#107)
  • Added pure JAX/NumPyro backend via nuts_sampler = "nutpie".
    Uses nutpie's Rust NUTS sampler with JAX gradients for ~5x
    faster sampling than Stan on typical models. Requires
    pip install jax numpyro nutpie (#109)

coevolve 1.0.0

Choose a tag to compare

@ScottClaessens ScottClaessens released this 26 Mar 16:32
d403a19

Bug Fixes

  • Fixed issue with summary() when estimate_residual = FALSE (#95)

New Features

  • Added nutpie as 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 the lon_lat argument and deprecating the dist_mat argument 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)

coevolve 0.1.0

Choose a tag to compare

@ScottClaessens ScottClaessens released this 06 Jan 11:45

Initial release version.