The function netEst.undir
performs constrained estimation of sparse inverse covariance (concentration) matrices using a lasso (L1) penalty, as described in Ma, Shojaie and Michailidis (2016). Two sets of constraints determine subsets of entries of the inverse covariance matrix that should be exactly zero (the option zero
argument), or should take non-zero values (option one
argument). The remaining entries will be estimated from data.
The arguments one
and/or zero
can come from external knowledge on the 0-1 structure of underlying concentration matrix, such as a list of edges and/or non-edges learned from available databases.
netEst.undir
estimates both the support (0-1 structure) of the concentration matrix, or equivalently, the adjacency matrix of the corresponding Gaussian graphical model, for a given tuning parameter, lambda
; and the concentration matrix with diagonal entries set to 0, or equivalently, the weighted adjacency matrix.
The weighted adjacency matrix is estimated using maximum likelihood based on the estimated support. The parameter rho
controls the amount of regularization used in the maximum likelihood step. A small rho
is recommended, as a large value of rho
may result in too much regularization in the maximum likelihood estimation, thus further penalizing the support of the weighted adjacency matrix.
Note this function is suitable only for estimating the adjacency matrix of a undirected graph. The weight
parameter allows one to specify whether to penalize the known edges. If known edges obtained from external information contain uncertainty such that some of them are spurious, then it is recommended to use a small positive weight
parameter to select the most probable edges from the collection of known ones.
This function is closely related to NetGSA
, which requires the weighted adjacency matrix as input. When the user does not have complete information on the weighted adjacency matrix, but has data (x
, not necessarily the same as the x
in NetGSA
) and external information (one
and/or zero
) on the adjacency matrix, then netEst.undir
can be used to estimate the remaining interactions in the adjacency matrix using the data.
Further, when it is anticipated that the adjacency matrices under different conditions are different, and data from different conditions are available, the user needs to run netEst.undir
separately to obtain estimates of the adjacency matrices under each condition.
The algorithm used in netEst.undir
is based on glmnet
and glasso
. Please refer to glmnet
and glasso
for computational details.