v0.6.1
Major update
Encompasses unreleased v0.5.3 and v0.5.4. v0.5.3 Was a revert to C++17 from C++20 as C++20 cannot be used on CRAN with Eigen because RcppEigen is <3.4.0 where checks for deprecated functions in C++20 were included. The main changes this entailed was removing using enum class
statements and a couple other small changes (although incorporation of ranges was planned). As a further note, a build using rstan is available on branch stan
however it is significantly slower to run, and longer to compile so it hasn't been incorporated into this version. Other changes:
- Improved storage and copying of sparse matrices to work with SparseChol 0.3.1 and to reduce data copying. The
Covariance
class now only contains an object of classSparseChol
and notsparse
and all data are copied directly into that object. - Includes (optional) permute of covariance matrix prior to factorisation using the approximate minimum degree algorithm. Does not affect block diagonal matrices, but for matrices using a compactly supported covariance function may improve fitting time, although further testing is required.
- Changed the compactly supported covariance functions. Removed existing options as they were not parameterised in a useful way, they were complex, and they also did not correctly create a sparse matrix. These functions have been replaced with truncated power and Cauchy functions with 1 or 2 parameters. The specification of the sparse matrix has also been fixed.
- Removed dependency on package
rminqa
and natively incorporated the BOBYQA algorithm - a much improved function binding scheme is used, which cuts the overhead when optimising and improves speed of model fitting. - Added the DIRECT algorithm as an option for model fitting. However, it is not used by default and not yet exposed to the user directly as the settings do not necessarily reduce function evaluations, but may be useful in some scenarios. May be exposed after further testing.
- Fixed an error in the non-linear optimisation module for Laplace approximation where the bounds were not completely initialised properly, which caused an error in model fitting.
- Added the Kenward-Roger improved approximation for covariance non-linear in parameters.
- Added the Satterthwaite degrees of freedom correction
- Renamed Model class function
kenward_roger
tosmall_sample_correction
to include both types of Kenward-Roger and Satterthwaite in R. - Renamed
ModelMatrix<modeltype>
class functionkenward_roger
tosmall_sample_correction
in C++. - Added the Box correction for Gaussian mixed models: accessible as
Box matrix.box()
andmodel$box()
for C++ and R, respectively. - Added member function for R
Model
classupdate_y
so that the outcome data can be updated independently of model fitting. - Added additional error catching and checking in R builds (use
#define ENABLE_DEBUG
) - Fixed error that when specifying a non-linear function of fixed effect parameters that included a reciprocal of a parameter, that parameter would be initialised to zero and cause a crash. For non-linear models, parameters are default initialised to 1 now.
- Fixed calculator interpreter error for
vcalc
when adding random effects that would lead the iterator to go out of bounds and cause a crash. - Fixed error in calculation of p-values for SE DoF corrections
- Modified the robust sandwich error to use model residuals (but it still produces unsatisfactory results for some models).
- Changed the small sample corrections to all use the
CorrectionData
class return type. - Removed
subset_cols()
functions from Model and Covariance classes as this causes errors with the formulae and requires regenerating the models. - Removed the dependency on
digest
in R and the hash functions as models are now updated using the update functions and do not require checking against hashes. - Removed the
check
functions from the Model, Covariance, and LinearPredictor classes as updates are now handled through update functions. - Fixed error in formula parse where
factor(x)
functions would register as non-linear. - Allowed for a parameter to be used more than once in a formula.
- Extended the calculator number array to 20 items.
Full Changelog: v0.5.4...v0.6.1