A major release on two fronts: semTests now has a self-contained numerical core
with a minimal dependency footprint (Imports is just lavaan and the base
methods package), and the eigenvalue-based p-values have been broadened well
beyond normal-theory ML (see ?semTests-support).
lavaan::lavTest() returns a
named list of test results rather than a single flat object (the reweighted
least squares chi-square statistic was previously read as NULL). The
statistic is now extracted in a way that works with both old and new lavaan
return structures.sum lambda_j chi^2_1 is computed internally by
imhof_pvalue(), which is more accurate in the tail, where CompQuadForm
degrades (its imhof returns quadrature noise, including negative
probabilities, once the p-value drops below roughly 1e-6, and davies
underflows to zero). Positive spectra use Ruben's series (exact to machine
precision, including the tail); mixed-sign spectra use the Imhof integral in
the body with a Lugannani-Rice saddlepoint fallback in the tail.m x m
restriction-space matrix instead of the full q x q UGamma, where m is the
number of restrictions. The result is identical to machine precision but
faster on large models, and it removes the need for RSpectra.MASS::ginv with a self-contained
generalized_inverse().CompQuadForm, Matrix, MASS, RSpectra, progressr, and
future.apply dependencies, plus the psych suggestion (examples now use the
built-in HolzingerSwineford1939 data). Imports is now lavaan and
methods.pvalues()
now supports GLS, ULS, and categorical WLSMV/DWLS in addition to ML/MLM/MLR,
plus FIML missing-data fits (single-group, continuous); pvalues_nested()
supports the continuous estimators and nested FIML comparison
(method = "2000"). See ?semTests-support. This broadened support is
experimental; the classical normal-theory ML path remains stable.?semTests-support: non-lavaan objects, unsupported estimators, unsupported
missing-data modes, multi-group / fixed-exogenous FIML, the normal-theory-only
RLS statistic and the Du-Bentler UG gamma off the classical case, and
categorical nested tests are now refused up front.semTests_pvalues object that records the options
actually used (estimator, statistic, information type, gamma type, data type,
degrees of freedom) and prints a one-line provenance footer.semTests vignette and an inst/CITATION.