varband: Compute the varband estimate for a fixed tuning parameter...

Description Usage Arguments Details Value See Also Examples

View source: R/RcppExports.R

Description

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}|

Usage

1
varband(S, lambda, init, K = -1L, w = FALSE, lasso = FALSE)

Arguments

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 TRUE, we use general weight. If FALSE, use unweighted penalty. Default is FALSE.

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 FALSE.

Details

The function decomposes into p independent row problems, each of which is solved by an ADMM algorithm. see paper for more explanation.

Value

Returns the variable banding estimate of L, at most K banded, where L^TL = Omega.

See Also

varband_path varband_cv

Examples

 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)

hugogogo/varband documentation built on May 17, 2019, 9:12 p.m.