Solves main optimization problem over a grid of lambda values

Description

See hierband for the problem this is solving. If lamlist not provided, then grid will be constructed starting at lambda_max, the smallest value of lam for which the solution (with delta=NULL) is diagonal.

Usage

1
2
hierband.path(Sighat, nlam = 20, flmin = 0.01, lamlist = NULL, w = NULL,
  delta = NULL, maxiter = 100, tol = 1e-07)

Arguments

Sighat

The sample covariance matrix

nlam

Number of lambda values to include in grid.

flmin

Ratio between the smallest lambda and largest lambda in grid. (Default: 0.01) Decreasing this gives less sparse solutions.

lamlist

A grid of lambda values to use. If this is non-NULL, then nlam and flmin are ignored.

w

(p-1)-by-(p-1) lower-triangular matrix (above diagonal ignored). w[l,] gives the l weights for g_l. Defaults to w[l,m]=sqrt(2 * l)/(l - m + 1) for m <= l

delta

Lower bound on eigenvalues. If this is NULL (which is default), then no eigenvalue constraint is included.

maxiter

Number of iterations of blockwise coordinate descent to perform.

tol

Only used when delta is non-NULL. When no eigenvalue changes by more than tol in BCD, convergence is assumed.

Value

Returns a sequence of convex banded estimates of the covariance matrix.

P:

A nrow(Sighat)-by-nrow(Sighat)-by-nlam array where P[, , i] gives the ith estimate of the covariance matrix.

lamlist:

Grid of lambda values used.

w:

Value of w used.

delta:

Value of delta used.

See Also

hierband hierband.cv

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
set.seed(123)
p <- 100
n <- 50
K <- 10
true <- ma(p, K)
x <- matrix(rnorm(n*p), n, p) %*% true$A
Sighat <- cov(x)
path <- hierband.path(Sighat)
cv <- hierband.cv(path, x)
fit <- hierband(Sighat, lam=cv$lam.best)