Some meta updates (biblio and maintenance change) and minor fixes, detailed below.
stats
with ::
.port()
fully moved to C, with improved headers, error codes and memory management. Style now following c99.This update of gmat
incorporates functions necessary to run the experiments in Córdoba et al. (2019), and some minor improvements and bug fixes.
chol_polar()
has been removed because a faster implementation has been recently provided by the randcorr package.anti_t()
has been replaced by a more useful function uchol()
, which by transposing with respect to the antidiagonal obtains the upper Cholesky factor of a positive definite diagonal matrix (see Córdoba et al. 2019, and the documentation of the function).port_chol()
which implements a combination of the algorithms in chol_mh()
and port()
, see Córdoba et al. (2019) for the details.ug_to_dag()
for obtaining an acyclic digraph with no v-structures from the chordal cover of an undirected graph.port()
and diagdom()
.port()
, now it is faster.rgraph()
allows now to generate acyclic digraphs with any topological sorting of their nodes, by setting to FALSE
its new ordered
argument. Examples have also been added to the documentation of this function.mh_u()
works for any topological sort of a dag, not just the standard 1, ..., p
.In this version the functionality of gmat
has been significantly extended. In addition to the functionality already available for sampling covariance matrices, possibly with a zero pattern specified by an undirected graph, now the package also allows sampling correlation matrices with zero entries on their Cholesky factor, represented by an acyclic digraph.
Arguments for port()
and diagdom()
have been refactored in order to unify the approaches for undirected graphs and the new functions for acyclic digraphs. This has had some consequences in terms of the behaviour of the two functions.
ug
is now the fourth argument, instead of the second one, for both functions.ug
is not provided, unless explicitly stating a parameter d < 1
.p
and d
have been changed. Now by default one 3 x 3
full matrix is returned.rentries
has been removed for both functions. In the future maybe this argument is reintroduced with a more complete checking of its validity depending on the properties of the function.k
has been removed from diagdom()
, and its functionality is now implemented by the utility function set_cond_number()
.The main addition in this version are functions for correlation matrix sampling, possibly with constraints on the upper Cholesky factorization, which correspond to an acyclic digraph representation. Some side utility functions are also provided.
chol_mh()
, chol_iid()
and chol_polar()
. These three functions return a sample of correlation matrices, possibly with an average percentage of zeros in their upper Cholesky factor, which can be also predefined by a given acyclic digraph. See more details at their documentation.mh_sphere()
and mh_u()
, used by chol_mh()
, allows to sample the upper Cholesky factor of a correlation matrix by sampling vectors on hemispheres of different dimensions. More information on their documentation.rgraph()
, which is a simple wrapper of some functionality in package igraph for random graph generation.anti_t()
computes the anti transpose of a matrix. This is mainly useful for testing, since it is involved in the acyclic digraph representation of the upper and lower Cholesky factors.vectorize()
for extracting the upper/lower triangle in a covariance/correlation matrix sample as returned by the functions in the package.port()
and diagdom()
.NAMESPACE
, but instead explicitly called throughout the package using ::
.