golazo: Performs GOLAZO algorithm by optimizing the dual problem.

Description Usage Arguments Value Examples

View source: R/golazo.R

Description

This function implements a simple block-coordinate descent algorithm to find the maximum of the regularized Gaussiann log-likelihood with a an assymetric penalty of lasso type.

Usage

1
golazo(S, L, U, tol = 1e-07, verbose = TRUE)

Arguments

S

Positive semidefinite matrix. This will be typically the sample covariance matrix but it can be somethink different in the dual likelihood computation or when the data follow the non-paranormal distribution.

L

Matrix of lower penalties. It should have all entries non-positive (-Inf is a valid entry). The entries of L say how much negative entries of the inverse of Sigma are penalized. For GLASSO all entries should of L should be -rho and all entries of U should be rho (in both cases with zero diagonal). For positive GOLAZO L should be zero and U should be like for GLASSO.

U

Matrix of upper penalties. It should have all entries non-negative (Inf is a valid entry). The entries of U say how much positive entries of the inverse of Sigma are penalized.

tol

The convergence tolerance (default tol=1e-7). The algorithm termininnates when teh dual gap (guaranteed to be nonnegative) is less than tol.

verbose

if TRUE (default) the output will be printed.

Value

K the optimal value of the concentration matrix

Sig the optimal value of the covariance matrix

it the number of iterations

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
data(ability.cov)
S <- ability.cov$cov
R <- stats::cov2cor(S)
d <- nrow(R)
L <- matrix(0,d,d)
U <- matrix(0.2,d,d)
diag(U) <- 0
res <- golazo(R,L=L,U=U)
Khat <- res$K
print(Khat)

pzwiernik/golazo documentation built on Aug. 13, 2020, 4:15 p.m.