distfreereg() is no longer a generic function. Selection of appropriate
methods is done by internal-only functions. This simplifies distfreereg()'s
use and simplifies the process of adding support for new model classes.
compare() and update.distfreereg() have been modified for use with the
updated distfreereg() function. Call elements have been simplified.
The covariance list is now filled in a way that generally prefers operations on the "square root" level. In particular, the path Σ→ Σ-1/2→Q is preferred to Σ→P→Q.
The covariance list must now be NULL when test_mean is a model object. In
the previous version, a covariance list value was simply ignored in this case.
plot.distfreereg() now has an "ecdf" option.
The buffer option for controlling the creation of simultaneous confidence
bands has been replaced by the q_probs option, which is based on quantiles.
Fixed two bugs affecting the calculation of the radii of simultaneous confidence bands, which are now narrower than previously calculated.
For clarity, all occurrences of the names mcsim_stats have been
replaced with theoretical_stats. Further, all occurrences of observed_stats
in compare objects have been replaced with empirical_stats to distinguish
them from statistics that are observed from data rather than simulated by
compare().
Minor changes: accounting for the Jacobian returned by nls() no longer
requires an inefficient multiplication by SqrtSigma and then by Q.
Information added to sample size mismatch error message in
update.distfreereg(). Default type value for plot.distfreereg()'s residual
plot changed to p.
Documentation updated.
Printed output of ks.test.compare() shortened.
Option added to print.distfreereg() to omit printing parameter estimates.
compare()'s true mean specification and subsetting in
true_mean model objects no longer (always) produce errors. See documentation
for details and limitations.Support for glm and lmerMod (from lme4) objects has been added.
Grouping is now available for all ordering options, and group now defaults
to TRUE. The res_order object can now contain repeated elements, which are
now used to determine the groups. The aggregator matrix has been renamed the
"grouping matrix".
The control argument of distfreereg() can now have an element named
return_on_error, which allows for partial output from distfreereg() when an
error occurs.
A covariance list element can now be a list of matrices, corresponding to the block diagonal matrix with blocks given by the list elements.
compare now uses simulate() to generate observed outcome variable values
when true_mean is neither a function nor an nls object. The theta
argument in compare() is therefore now only allowed when test_mean has class
function.
To promote reliability, specifying columns to order the residuals must now be done using column names, not column numbers.
The compare argument err_dist_fun must now be a character string naming
the desired function.
A simple compare method for print() has been added.
The method argument in distfreereg.formula() no longer has a default
value.
distfreereg.formula() no longer has a covariance argument.
Only distfreereg.function() retains a theta_init argument. Starting values
for estimation for using distfreereg.formula() can be specified, when
applicable, using an appropriately named element of method_args.
Computation of mu now uses a Cholesky decomposition instead of a matrix
square root based on an eigenvalue decomposition.
The handling of weights has been improved. Specifically, the covariance structure obtained from model objects is now determined from weights and the estimated sigma value.
Jacobians and Hessians are now calculated using calculus package. Because
of the speed improvement, confint.distfreereg() now always returns the matrix
or vector returned by the appropriate method of confint(). In particular, it
no longer returns a list that includes the output of vcov.distfreereg().
The symmetry argument has been replaced by a mandatory check for symmetry of
Sigma and P, with associated tolerance options.
Minor changes: rmvnorm() no longer drops dimensions, and therefore always
returns a matrix. Error message in get_n() now contains more detail. Progress
messages for distfreereg() modified. Updates and improvements made to the
documentation.
Modified tests for macos-arm64.
Added access to matsqrt_tol value to control threshold for what
eigenvalue(s) are "too negative" when calculating the eigendecomposition for
determining the square root of a matrix.