You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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