ngme2 0.9.7 (2026-04-23)
- Prepare CRAN resubmission after policy-related fixes.
- Avoid modifying
.GlobalEnv in prior calibration
helpers.
ngme2 0.9.5 (2026-03-17)
New feature: VAR(1)
bivariate latent model
- 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 \((p_1, p_2, p_3, p_4)\) are mapped to a
\(2\times2\) VAR coefficient matrix
\(A\) with spectral radius \(\rho(A) < 1\) 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 \(A\) matrix, its spectral radius, and the
raw \((p_1, p_2, p_3, p_4)\)
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.
- Add calibration helpers
calibrate_inv_exp_lambda_driven_nig() and
calibrate_inv_exp_lambda() for choosing lambda
from a driven-noise tail-inflation target.
- 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).
ngme2 0.9.0 (2026-02-19)
- Refactor prior API (breaking change): use
prior_normal(), prior_pc_sd(),
prior_half_cauchy(), prior_none(), and
priors(...).
- Update
f() and ngme_noise() to accept
unified prior = ... inputs (remove
prior_theta_K and
prior_mu/prior_sigma/prior_nu arguments).
- Remove legacy
ngme_prior() interface and its
documentation entry.
- Add prior target support (
coef/field) for
noise parameter priors and per-parameter operator prior
compilation.
- Add fixed-effect prior support via
ngme(..., prior_beta = ...), using the same
prior_*()/priors(...) API.
- Add user-facing vignette:
Prior Templates for Stationary and Non-Stationary Models.
ngme2 0.8.5 (2026-02-11)
- Add grad.norm plateau-based step decay via
control_opt(stepsize_decay = "grad_norm_plateau")
(epoch-level, synchronized across chains)
- Add
stepsize_decay() helper for configuring decay
options
- 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
- Enhanced preconditioner with Gibbs samples
- Updates to AR1 vignette
- Various optimization workflow improvements
ngme2 0.6.0
- First version of the package
ngme2 0.3.0
- Add replicate feature
- Add OU process
- Add tensor-product model