Description Usage Arguments Details Value See Also Examples
Solves the main optimization problem in Yu & Bien (2017):
min_L -2 sum_{r=1}^p L_{rr} + tr(SLL^T) + lam * sum_{r=2}^p P_r(L_{r.})
where
P_r(L_r.) = sum_{l=2}^{r-1} (sum_m=1^l w^2_lm L^2_rm)^{1/2}
or
P_r(L_{r.}) = ∑_{\ell = 1}^{r-1} |L_{r\ell}|
1 |
S |
The sample covariance matrix |
lambda |
Non-negative tuning parameter. Controls sparsity level. |
init |
Initial estimate of L. Default is a closed-form diagonal estimate of L. |
K |
Integer between 0 and p - 1 (default), indicating the maximum bandwidth in the resulting estimate. A small value of K will result in a sparse estimate and small computing time. |
w |
Logical. Should we use weighted version of the penalty or not? If |
lasso |
Logical. Should we use l1 penalty instead of hierarchical group lasso penalty? Note that by using l1 penalty, we lose the banded structure in the resulting estimate. Default is |
The function decomposes into p independent row problems, each of which is solved by an ADMM algorithm. see paper for more explanation.
Returns the variable banding estimate of L, at most K banded, where L^TL = Omega.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | set.seed(123)
n <- 50
true <- varband_gen(p = 50, block = 5)
x <- sample_gen(L = true, n = n)
S <- crossprod(scale(x, center = TRUE, scale = FALSE)) / n
init <- diag(1/sqrt(diag(S)))
# unweighted estimate
L_unweighted <- varband(S, lambda = 0.1, init, w = FALSE)
# at most 10-banded unweighted estimate
L_unweighted_K10 <- varband(S, lambda = 0.1, init, w = FALSE, K = 10)
# weighted estimate
L_weighted <- varband(S, lambda = 0.1, init, w = TRUE)
# lasso estimate
L_lasso <- varband(S, lambda = 0.1, init, w = TRUE, lasso = TRUE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.