Releases: timweiland/GaussianMarkovRandomFields.jl
v0.9.1
GaussianMarkovRandomFields v0.9.1
v0.9.0
GaussianMarkovRandomFields v0.9.0
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 stepsizemax_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
GaussianMarkovRandomFields v0.8.3
v0.8.2
GaussianMarkovRandomFields v0.8.2
Maintenance
- Added ForwardDiff v1+ to compat bound
v0.8.1
GaussianMarkovRandomFields v0.8.1
New features
Extract sparsity pattern construction from KL Cholesky into its own method
v0.8.0
GaussianMarkovRandomFields v0.8.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:
- Add methods for KL-minimizing sparse Cholesky (#59) (@timweiland)
v0.7.0
GaussianMarkovRandomFields v0.7.0
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:
- Poisson offset rework (#58) (@timweiland)
v0.6.1
GaussianMarkovRandomFields v0.6.1
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:
- BYM2 Model (#56) (@timweiland)
- Add Separable model (#57) (@timweiland)
v0.6.0
GaussianMarkovRandomFields v0.6.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
constraintparameter (:sumtozeroor custom) - RandomWalk supports
additional_constraintsparameter - All terms validate custom constraint dimensions at formula build time
Closed issues:
- Allow specifying constraints in formula interface (#53)
v0.5.0
GaussianMarkovRandomFields v0.5.0
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-likelihoodspointwise_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_funcparameter forAutoDiffObservationModel
Improvements
- Updated installation instructions in README