• cvCovEst() no longer accepts center and scale arguments. Data centering is now handled within each estimator function. Users no longer have an option to scale their data. If they’d like to produce a correlation matrix, they must scale the cvCovEst() estimate using cov2cor().
• Using strings of variable names instead of prefixing them with .data\$ in dplyr::select() statements.
• This minor release sees the addition of three new estimators for Gaussian spiked covariance models. These estimators are spikedOperatorShrinkEst(), spikedFrobeniusShrinkEst() and spikedSteinShrinkEst(), and apply the asymptotically optimal amount of shrinkage on the sample covariance matrix’s eigenvalues with respect to their respective loss functions. For more information on these estimators, see Donoho et al.’s Annals of Statistics article “Optimal Shrinkage of Eigenvalues in the Spiked Covariance Model”.
• summary() now reports metrics about the candidate estimators’ estimates, like their condition numbers, signe, and sparsity levels.
• scadEst() and adaptiveLassoEst() are now vectorized, greatly improving their computational efficiency. Thanks, Brian!
• cvCovEst() no longer accepts the true_cov_mat argument.
• cvCovEst is now ready for publication through JOSS.
• Fixing formatting errors in inst/REFERENCES.bib
• Addressing typos and bibliography errors in JOSS paper draft
• Updating pkgdown documentation
• Creating a GitHub release. Subsequent versions of the package won’t accept “true” covariance matrices as an argument to cvCovEst(). This is the last version of cvCovEst that can be used to reproduce the simulation results of the accompanying manuscript, “Cross-Validated Loss-Based Covariance Matrix Estimator Selection in High Dimensions”.
• Calling summary.cvCovEst() when a single summary function is specified now immediately returns a table instead of a list of length 1 that contains said table.
• Tables returned by summary.cvCovEst() no longer have dplyr groups.
• Fixed typo in Toy Dataset Example section of paper.
• Renamed empirical_risk column in risk_df table output by cvCovEst() to cv_risk.
• Added additional citations of existing R packages for covariance matrix estimation in our JOSS submission.
• Added more comprehensive tests for the available loss functions.
• Setting ‘LazyLoad’ to ‘false’ in DESCRIPTION to address CRAN checks notes.
• Fixing plotting labels and table column names, along with associated documentation.
• Fixing links to pass CRAN checks
• Reducing size of toy datasets to increase testing speed
• Adding note to robustPoetEst() warning again its use for correlation matrix estimation.
• Fixing bug in robustPoetEst plots.
• Edited documentation to meet CRAN specifications.
• Added information and simulated data examples of plotting and summary functions.
• Made the cvCovEst R package a public repository GitHub.
• cvCovEst now possesses a slew of diagnostic and visualization tools. A detailed description of these functions will be added to the vignette in the near future.
• Minor clarifying updates to the documentation and the vignette.
• Updates to NEWS.md, adding consistency in bullet point indicator and enforcing the 80-column rule.
• Tweaks to dependencies, removing reliance on stringi since only invoked in a single pipe call in checkArgs.
• Added basic examples to all exported functions.
• Made cvMatrixFrobeniusLoss the default loss function.
• Added cvScaledMatrixFrobeniusLoss, a new matrix-based loss function that scales squared error calculations associated with each entry of a covariance matrix estimate by the sample variances of the entry’s row and column variables. This is particularly useful if the features of your dataset are of different magnitude. It’s approximately equivalent to estimating the correlation matrix, but without the need to re-scale the estimated correlation matrix to be an estimated covariance matrix.
• Fixed error with denseLinearShrinkEst: the shrinkage parameter was often selected such that the dense target was returned as the estimate.
• Completed vignette.
• robustPoetEst has been added to the library of candidate estimators.
• cvCovEst version 0.1.0 is used in the accompanying manuscript to generate all results.
• It is stored as a separate branch called ‘preprint’.
• cvCovEst now accepts cvMatrixFrobeniusLoss as a loss function. This loss function is a matrix-based alternative to the standard loss function. Through Proposition 1 of the method’s manuscript the resulting selections of each loss are identical for any fixed cross-validation scheme. However, the matrix-based loss is more computationally efficient. Other minor tweaks to testing procedures.
• cvCovEst can now be run in parallel using future.
• When provided with the true covariance matrix, cvCovEst now outputs the conditional cross-validated risk differences of the cross-validation selection and the oracle selections.
• Replacing stats::cov with coop::covar after resolving the issue on Linux machines, as per https://github.com/PhilBoileau/cvCovEst/issues/18.
• Removed calculation of spurious risk ratios from cvCovEst and from cvFrobeniusLoss when the true covariance matrix is passed in.
• Changing loss function computation so that it is more computationally efficient.
• Removing coop::covar due to strange parallelization issue on Linux machines. Hopefully we can use it again one day.
• Prevent users from including a lone estimator as input to cvCovEst if the estimator in questions doesn’t have any hyperparameters.
• Coerce sparse, true covariance matrices to regular matrix objects if and when input to cvCovEst.
• Adding additional risk difference ratio calculations when the true covariance matrix of Gaussian Multivariate data is provided.
• Users now have the option to include the true covariance matrix of their multivariate Gaussian data, allowing them to compare cvCovEst’s selection versus that of the cross-validated oracle.
• Estimators can now take multiple hyperparameter arguments.
• Adding smoothly clipped absolute deviation thresholding estimator.
• Updated the loss computation; it now patches the formula used in the draft. Note that it vastly overestimates the true risk of an estimator, but that it provides an equivalent decision rule compared to a matrix-based loss. Perhaps we’re missing a scaling factor in our calculations?
• Moved Frobenius loss calculations to cv fold loss function.
• Removed the penalized cross-validation loss. Doesn’t make sense to include.
• Included check for centered data matrix.
• Adding dense covariance matrix linear shrinkage estimator.
• Updating citations in estimators docs.
• Adding analytical nonlinear shrinkage estimator.
• Adding argument checker for cvCovEst function.
• Minor changes to core routines, including changes to use of origami.
• Updates to documentation, including Roxygen styling.
• Added a NEWS.md file to track changes to the package.