Internal Documentation
Documentation for CovarianceEstimation.jl's internal methods.
See Public Documentation for public package docs.
Contents
Index
CovarianceEstimation.analytical_nonlinear_shrinkageCovarianceEstimation.epanechnikovCovarianceEstimation.epanechnikov_HT1CovarianceEstimation.epanechnikov_HT2CovarianceEstimation.linear_shrinkageCovarianceEstimation.rescaleCovarianceEstimation.rescale!CovarianceEstimation.sum_fijCovarianceEstimation.sumijCovarianceEstimation.sumij2CovarianceEstimation.uccov
Internals
CovarianceEstimation.epanechnikov — Functionepanechnikov(x)Return the Epanechnikov kernel evaluated at x.
CovarianceEstimation.epanechnikov_HT1 — Functionepnanechnikov_HT(x)Return the Hilbert Transform of the Epanechnikov kernel evaluated at x if |x|≂̸√5.
CovarianceEstimation.epanechnikov_HT2 — Functionepnanechnikov_HT2(x)Return the Hilbert Transform of the Epanechnikov kernel evaluated at x if |x|=√5.
CovarianceEstimation.rescale — Functionrescale(M, d)Internal function to scale the rows and the columns of a square matrix M according to the elements in d. This is useful when dealing with the standardised data matrix which can be written Xs=Xc*D where Xc is the centered data matrix and D=Diagonal(d) so that its simple covariance is D*S*D where S is the simple covariance of Xc. Such D*M*D terms appear often in the computations of optimal shrinkage λ.
- Space complexity: $O(p^2)$
- Time complexity: $O(p^2)$
CovarianceEstimation.rescale! — Functionrescale!(M, d)Same as rescale but in place (no allocation).
CovarianceEstimation.uccov — Functionuccov(X)Internal function to compute X*X'/n where n is the number of rows of X. This corresponds to the uncorrected covariance of X if X is centered. This operation appears often in the computations of optimal shrinkage λ.
- Space complexity: $O(p^2)$
- Time complexity: $O(2np^2)$
CovarianceEstimation.sumij — Functionsumij(S)Internal function to compute the sum of elements of a square matrix S. A keyword with_diag can be passed to indicate whether to include or not the diagonal of S in the sum. Both cases happen often in the computations of optimal shrinkage λ.
- Space complexity: $O(1)$
- Time complexity: $O(p^2)$
CovarianceEstimation.sumij2 — Functionsumij2(S)Internal function identical to sumij except that it passes the function abs2 to the sum so that it is the sum of the elements of S squared which is computed. This is significantly more efficient than using sumij(S.^2) for large matrices as it allocates very little.
- Space complexity: $O(1)$
- Time complexity: $O(2p^2)$
CovarianceEstimation.sum_fij — Functionsum_fij(Xc, S, n, κ)Internal function corresponding to $∑_{i≂̸j}f_{ij}$ that appears in https://strimmerlab.github.io/publications/journals/shrinkcov2005.pdf p.11.
- Space complexity: $O(np + 2p^2)$
- Time complexity: $O(2np^2)$
CovarianceEstimation.linear_shrinkage — Functionlinear_shrinkage(target, Xc, S, λ, n, p, pvar, corrected, [weights])Performs linear shrinkage with target of type target for data matrix Xc of size n by p with covariance matrix S and shrinkage parameter λ. Calculates corrected covariance if corrected is true.
pvar == p or pvar = p - sum(iszero, diag(S)), the number of non-zero diagonal variances in S. The choice is controlled by LinearShrinkage(...; drop_var0=true/false).
CovarianceEstimation.analytical_nonlinear_shrinkage — Functionanalytical_nonlinear_shrinkage(S, n, p; decomp;
alpha::Real=0.0,
warn_if_small_eigenvalue::Bool=false,
)Internal implementation of the analytical nonlinear shrinkage. The implementation is inspired from the Matlab code given in section C of Olivier Ledoit and Michael Wolf's paper "Analytical Nonlinear Shrinkage of Large-Dimensional Covariance Matrices". (Nov 2018) http://www.econ.uzh.ch/static/wp/econwp264.pdf , later published as
O. Ledoit and M. Wolf, “Analytical nonlinear shrinkage of large-dimensional covariance
matrices,” The Annals of Statistics, vol. 48, no. 5, pp. 3043–3065, Oct. 2020,
doi: 10.1214/19-AOS1921.Shrinked eigenvalues smaller than alpha are replaced with alpha. If warn_if_small_eigenvalue is true, additionally a warning is emitted if any eigenvalue is replaced with alpha.