Add var1() — a Vector Autoregressive order-1 latent field for bivariate time series modelling.
Stationarity is guaranteed by construction via the Cayley reparameterization: four unconstrained parameters are mapped to a VAR coefficient matrix with spectral radius at every iteration.
The C++ backend implements the Cayley transform natively (class RCallback in src/latents/rcallback.cpp).
Supports all ngme2 noise distributions (NIG, GAL, normal) as a single shared innovation noise.
print() method displays the recovered matrix, its spectral radius, and the raw values.
Add vignette “VAR(1) Bivariate Model in ngme2” (vignettes/var1-model.Rmd) covering: model specification, Cayley reparameterization, simulation study with parameter recovery, convergence trace plots, and NIG vs Gaussian model comparison.
ngme2 0.9.4 (2026-03-12)
Add posterior distribution plotting for SGLD samples via posterior_plot().
Add plot() support for ngme_sgld_ci objects, reusing stored SGLD samples to visualize marginal posterior distributions.
ngme2 0.9.3 (2026-02-26)
Refine fixed-effect standardization: SVD now applies only to non-intercept columns; intercept columns remain on their original parameterization.
Preserve no-intercept model semantics (~ 0 + ...): skip fixed-effect centering when no intercept is present.
Improve fe() centering with structural zeros: grouped fe() columns are centered using in-group rows only, so out-of-group structural zeros remain zero.
Fix fixed-effect scale restoration for multi-replicate models: when needed, reconstruction now uses replicate row indices (data_idx) instead of always taking the first n rows.
Improve warm-start robustness (start = previous_fit) across standardization settings by remapping fixed effects through the current model parameterization.
Update default fixed-effect priors: intercept-like columns ("(Intercept)"*) now default to prior_none(), while non-intercept columns keep the default N(0,10) prior.
For standardize_fixed = TRUE, add prior compatibility handling: isotropic normal priors on standardized columns are transformed to the SVD basis; incompatible custom prior_beta specifications now automatically disable fixed-effect standardization with a warning.
ngme2 0.9.2 (2026-02-24)
Add prior_inv_exponential(lambda, lower) for nu, implementing kappa = 1 / nu ~ Exp(lambda) as a first-class prior option.
Add shorthand alias prior_inv_exp(...) for the same prior.
Improve calibration robustness for non-monotone R_c(nu) curves: the helper now scans for crossings and reports observed R_c range when the requested target is unattainable.
Update default nu prior in f() for NIG-driven noise: when nu prior is not explicitly set and nu is stationary, use prior_inv_exp(lambda = log(2)/median(h), lower = nu_lower_bound). For non-stationary nu, keep the legacy N(0,10) default prior.
ngme2 0.9.1 (2026-02-19)
Harden error handling in ngme() estimation/sampling path: C++ exceptions are now propagated as R errors (including OpenMP parallel regions) instead of potentially terminating the R session.
Fix nu initialization in noise helper constructors to respect nu_lower_bound, using theta_nu = log(nu - nu_lower_bound) and validating nu > nu_lower_bound.
Align normal_nig conversion, printing, and plotting with effective parameterization nu = nu_lower_bound + exp(theta_nu).
Update verbose output to include stepsize decay scale and effective stepsize
Improve cross_validation(data = ...) model rebuild for refit-on-new-data workflows: it now resolves external formula symbols (for example mesh, B, n_basis) from the fitted object when needed, and falls back to rebuild-without-start plus hyperparameter transplant if start state dimensions differ.
Add chain-aware prediction/CV aggregation via chain_combine = "predictive_average" in predict() and cross_validation(), which averages predictions across optimization chains instead of averaging parameters first.
ngme2 0.8.4 (2026-02-01)
Fix iid model using argument mesh instead of map
ngme2 0.8.3 (2025-12-10)
Update nu parameterization to be relative to nu_lower_bound (nu = nu_lower_bound + exp(B_nu * theta_nu))
Allow NULL specification for noise parameter in non-stationary case
Update fixed effects initialization
Update start=fit logic
ngme2 0.8.2 (2025-12-02)
Add support for different type of ldlt solvers
Use solver_type and solver_backend in control_opt to specify the solver
Give print when hit nu lower bound
ngme2 0.8.1 (2025-12-01)
Add ldlt solver (solver_type = “ldlt”)
Minor fix on matern model on handling integer alpha case
ngme2 0.8.0 (2025-11-30)
Simplify solver structure
Update to use model() instead of string for model definition
Big update on the R interface, use model() instead of string for model definition
Refactor on the codebase
Add more vignettes
ngme2 0.7.1
Documentation updates
Add print log likelihood for Gaussian models
Improvements to prediction with condition on specific data points