- Fix un-escaped brackets in
bandingEst()
andtaperingEst()
documentation. - Argument documentation now matches argument names in
cvRiskPlot()
andmatrixMetrics()
.
- Removing superfluous test that messes with CRAN's MKL checks (tests with alternative BLAS/LAPACK implementations)
- Add doi of Journal of Computational and Graphical Statistics article to description.
cvCovEst()
no longer acceptscenter
andscale
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 thecvCovEst()
estimate usingcov2cor()
.
- Using strings of variable names instead of prefixing them with
.data$
indplyr::select()
statements.
- This minor release sees the addition of three new estimators for Gaussian
spiked covariance models. These estimators are
spikedOperatorShrinkEst()
,spikedFrobeniusShrinkEst()
andspikedSteinShrinkEst()
, 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()
andadaptiveLassoEst()
are now vectorized, greatly improving their computational efficiency. Thanks, Brian!
cvCovEst()
no longer accepts thetrue_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 ofcvCovEst
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 havedplyr
groups. - Fixed typo in Toy Dataset Example section of paper.
- Renamed
empirical_risk
column inrisk_df
table output bycvCovEst()
tocv_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.
- Adding preprint citation information.
- 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 incheckArgs
.
- 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.
- Fixing a minor dimension error in
nlShrinkLWEst
by changing a conditional, as per #23. - Enforcing the
tidyverse
code style via the first call tostyler
in this codebase (viamake style
). - Enforcing 80-columns in
NEWS.md
.
- Replacing
stats::cov
withcoop::covar
after resolving the issue on Linux machines, as per #18. - Removed calculation of spurious risk ratios from
cvCovEst
and fromcvFrobeniusLoss
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.
- Added adaptive LASSO estimator.
- 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.
- Adding POET estimator
- 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 tapering estimator.
- Adding argument checker for
cvCovEst
function.
- Adding banding estimator.
- Added unpenalized frobenius matrix loss.
- cvCovEst() now requires a vector of candidate estimator functions be passed to he estimators argument, instead of a vector of characters corresponding to these candidates' names.
- Minor changes to core routines, including changes to use of
origami
. - Updates to documentation, including
Roxygen
styling. - Addition of templates for vignette and JOSS paper.
- Added a
NEWS.md
file to track changes to the package.