Skip to content

Releases: timweiland/GaussianMarkovRandomFields.jl

v0.9.1

27 Dec 16:34

Choose a tag to compare

GaussianMarkovRandomFields v0.9.1

Diff since v0.9.0

v0.9.0

09 Dec 22:26

Choose a tag to compare

GaussianMarkovRandomFields v0.9.0

Diff since v0.8.3

New Features

  • Fisher scoring now uses backtracking line search by default, improving convergence for challenging problems where undamped Newton steps would diverge (e.g., Poisson likelihoods with extreme counts and weak priors).

New Parameters for gaussian_approximation

  • adaptive_stepsize::Bool=true: Enable/disable adaptive stepsize
  • max_linesearch_iter::Int=10: Maximum backtracking iterations per Newton step

Notes

For well-conditioned problems where full Newton steps always succeed, you can
disable adaptive stepsize for slightly faster convergence:

gaussian_approximation(prior, lik; adaptive_stepsize=false)

Breaking Changes

None.

v0.8.3

08 Dec 16:55

Choose a tag to compare

GaussianMarkovRandomFields v0.8.3

Diff since v0.8.1

v0.8.2

02 Dec 18:10

Choose a tag to compare

GaussianMarkovRandomFields v0.8.2

Diff since v0.8.1

Maintenance

  • Added ForwardDiff v1+ to compat bound

v0.8.1

26 Nov 12:31

Choose a tag to compare

GaussianMarkovRandomFields v0.8.1

Diff since v0.8.0

New features

Extract sparsity pattern construction from KL Cholesky into its own method

v0.8.0

24 Nov 21:55

Choose a tag to compare

GaussianMarkovRandomFields v0.8.0

Diff since v0.7.0

Breaking changes

None.

New features

Add methods for KL-minimizing sparse Cholesky, from:

F. Schäfer, M. Katzfuss and H. Owhadi. Sparse Cholesky Factorization by Kullback–Leibler Minimization. SIAM Journal on Scientific Computing 43, A2019-A2046 (2021).

Merged pull requests:

v0.7.0

10 Nov 15:37

Choose a tag to compare

GaussianMarkovRandomFields v0.7.0

Diff since v0.6.1

Breaking changes

Poisson offset / exposure is now handled via new PoissonObservations type.

Previously, it was handled by passing a kwarg.
However the expected use case for observation models / likelihoods is
that the observations always stay the same and only the hyperparameters (which are passed via kwargs) change between iterations.
So it's more intuitive to absorb the offset into the observations, since the offset will also stay fixed in all applications I imagine.
This design is analogous to that of BinomialObservations.

Merged pull requests:

v0.6.1

08 Nov 22:47

Choose a tag to compare

GaussianMarkovRandomFields v0.6.1

Diff since v0.6.0

New features

  • BYM2 model, which is a nicely parameterised combination of IID + Besag
  • Separable model, which combines latent models via Kronecker products. Useful e.g. for spatiotemporal models

Merged pull requests:

v0.6.0

07 Nov 14:40

Choose a tag to compare

GaussianMarkovRandomFields v0.6.0

Diff since v0.5.0

Breaking changes

Formula terms (IID, AR1, RandomWalk) are now
functors that must be instantiated before use in formulas:

# Old (no longer works)
@formula(y ~ IID(group))

# New
iid = IID()
@formula(y ~ iid(group))

New features

Constraint support to formula interface

Allow constraints to be specified on random effect terms in the formula interface.
This enables identifiable models like BYM with sum-to-zero constraints directly in formulas.

  • IID and AR1 support constraint parameter (:sumtozero or custom)
  • RandomWalk supports additional_constraints parameter
  • All terms validate custom constraint dimensions at formula build time

Closed issues:

  • Allow specifying constraints in formula interface (#53)

v0.5.0

05 Nov 15:07

Choose a tag to compare

GaussianMarkovRandomFields v0.5.0

Diff since v0.4.3

Breaking changes

None, really.

New Features

Pointwise Log-Likelihood API

Added per-observation log-likelihood computation for model comparison metrics (WAIC,
LOO-CV, CPO):

  • pointwise_loglik(x, obs_lik) - compute vector of per-observation log-likelihoods
  • pointwise_loglik!(result, x, obs_lik) - in-place version for performance-critical
    code
  • Property: sum(pointwise_loglik(x, lik)) ≈ loglik(x, lik)
  • Trait system (ObservationIndependence) to distinguish conditionally independent vs.
    dependent observations
  • Implemented for all observation models (ExponentialFamily, Composite,
    LinearlyTransformed, AutoDiff, NonlinearLeastSquares)
  • Optional pointwise_loglik_func parameter for AutoDiffObservationModel

Improvements

  • Updated installation instructions in README