NEWS
INLAvaan 0.2.4.9001
- Performance & Stability: Major optimizations to the gradient calculation for GCP models. The Jacobian computation now uses a sparse matrix approach, leading to significant speedups. The $\gamma_1$ correction calculation was corrected by reverting to the scalar path, ensuring numerical stability and accuracy.
- Internal: Added
joint_lp_grad and joint_lp_grad_vectorised to the output list for external inspection.
INLAvaan 0.2.4 (2026-04-03)
New features
bfit_indices() computes per-sample Bayesian fit index vectors (BRMSEA, BCFI, BTLI, BNFI), with summary() and print() methods. Summary statistics are also available via fitmeasures().
compare() compares two or more fitted models side by side, reporting marginal log-likelihood, Bayes factors, and DIC, with optional fit measures from fitmeasures().
diagnostics() computes global and per-parameter convergence and approximation-quality diagnostics for fitted models.
get_inlavaan_internal() is now exported and documented, providing access to the internal list stored in a fitted INLAvaan object.
predict() generates predictions for observed data and missing data imputation, respecting multilevel structure if present.
sampling() draws from the posterior (or prior) SEM generative model, returning parameter vectors, latent variables, or observed variables.
simulate() generates complete replicate datasets from a fitted model, useful for simulation-based calibration and posterior predictive checks.
timing() extracts wall-clock timings for individual computation stages of a fitted model.
Minor improvements and fixes
- Cholesky factorisation of the precision matrix replaces raw
solve() for covariance and log-determinant calculations.
- Copula sampling with NORTA (NORmal To Anything) correlation adjustment is now the default (
samp_copula = TRUE), ensuring posterior samples have correct skew-normal marginals and correct Pearson correlations.
- Pre-computed Owen-scrambled Sobol sequences are used by default, with fallback to
{qrng} for larger sequences. QMC sample size now scales with model dimension.
- Skew-normal fitting now runs in parallel automatically when the number of marginals exceeds 120, using all available cores.
- Small optimisations to the skew-normal volume correction.
acfa(), asem(), and agrowth() gain a vb_correction argument.
{ggplot2} is now optional; plots fall back to base R graphics when it is not installed.
inlavaan() gains an sn_fit_ngrid argument to control the number of grid points per dimension when fitting skew-normal marginals (default 21).
inlavaan() now supports sn_fit_sample = TRUE for defined parameters, fitting a skew-normal approximation to their posterior marginals based on drawn samples.
plot() method gains improved visualisation options.
priors_for() now supports the [prec] scale qualifier for variance parameters (theta, psi), placing the prior on the precision scale with automatic Jacobian adjustment.
sampling() and simulate() gain a silent argument to suppress informational messages.
summary() now includes 25th and 75th percentile columns.
vcov() now returns the covariance matrix of the lavaan-side parameters and supports a type argument for choosing between sample and Laplace covariance.
Bug fixes
marginal_correction = "shortcut" no longer produces incorrect volume corrections.
qsnorm_fast() no longer incorrectly handles sign symmetries.
INLAvaan 0.2.3 (2026-01-28)
- Improved axis scanning, skewness correction, and VB mean correction routine.
- Bug fixes for CRAN.
- Updated README example.
INLAvaan 0.2.2 (2026-01-27)
- Under the hood, use lavaan's MVN log-likelihood function to compute single- and multi-level log-likelihoods.
- Added support for multi-level SEM models.
- Added support for binary data using PML estimator from lavaan. NOTE: Ordinal is possible in theory, but the package still lacks proper prior support for the thresholds.
- Added support for
missing = "ML" to handle FIML for missing data.
INLAvaan 0.2.1
- Support for lavaan 0.6-21.
- Implemented variational Bayes mean correction for posterior marginals.
- Defined parameters are now available, e.g. mediation analysis.
- Prepare for CRAN release.
INLAvaan 0.2
- INLAvaan has been rewritten from the ground up specifically for SEM models. The new version does not call R-INLA directly, but instead uses the core approximation ideas to fit SEM models more efficiently.
- Features are restricted to normal likelihoods only and continuous observations for now.
- Support for most models that lavaan/blavaan can fit, including CFA, SEM, and growth curve models.
- Support for multigroup analysis.
- Added PPP and DIC model fit indices.
- Added prior specification for all model parameters.
- Added support for fixed values and parameter constraints.
- Initial CRAN submission.
INLAvaan 0.1
- Used
rgeneric functionality of R-INLA to implement a basic SEM framework.