bdsvd.ht | R Documentation |
Finds the number of non-zero elements of the sparse loading according to the high-dimensional Bayesian information criterion (HBIC).
bdsvd.ht(X, dof.lim, standardize = TRUE, anp = "2", max.iter)
X |
Data matrix of dimension |
dof.lim |
Interval limits for the number of non-zero components in the sparse loading (degrees of freedom).
If |
standardize |
Standardize the data to have unit variance. Default is |
anp |
Which regularization function should be used for the HBIC. |
max.iter |
How many iterations should be performed for computing the sparse loading.
Default is |
The sparse loadings are computed using the method by Shen & Huang (2008), implemented in
the irlba
package. The computation of the HBIC is outlined in Bauer (2024).
dof |
The optimal number of nonzero components (degrees of freedom) according to the HBIC. |
BIC |
The HBIC for the different numbers of nonzero components. |
Bauer, J.O. (2024). High-dimensional block diagonal covariance structure detection using singular vectors, J. Comput. Graph. Stat.
Shen, H. and Huang, J.Z. (2008). Sparse principal component analysis via regularized low rank matrix approximation, J. Multivar. Anal. 99, 1015–1034.
Wang, H., B. Li, and C. Leng (2009). Shrinkage tuning parameter selection with a diverging number of parameters, J. R. Stat. Soc. B 71 (3), 671–683.
Wang, L., Y. Kim, and R. Li (2013). Calibrating nonconvex penalized regression in ultra-high dimension, Ann. Stat. 41 (5), 2505–2536.
bdsvd
, single.bdsvd
#Replicate the illustrative example from Bauer (2024).
p <- 300 #Number of variables. In Bauer (2024), p = 3000
n <- 500 #Number of observations
b <- 3 #Number of blocks
design <- "c"
#Simulate data matrix X
set.seed(1)
Sigma <- bdsvd.cov.sim(p = p, b = b, design = design)
X <- mvtnorm::rmvnorm(n, mean = rep(0, p), sigma = Sigma)
colnames(X) <- seq_len(p)
ht <- bdsvd.ht(X)
plot(0:(p-1), ht$BIC[,1], xlab = "|S|", ylab = "HBIC", main = "", type = "l")
single.bdsvd(X, dof = ht$dof, standardize = FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.