The function netEst.dir
performs constrained estimation of a directed network using a lasso (L1) penalty, as described in Shojaie and Michailidis (2010a). Two sets of constraints determine subsets of entries of the weighted adjacency 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 network, such as a list of edges and/or non-edges learned frm available databases. Then the function edgelist2adj
can be used to first construct one
and/or zero
.
In this function, it is assumed that the columns of \(X\) are ordered accoring to a correct (Wald) causal order, such that no \(X_j\) is a parent of \(X_k\) (\(k \le j\)). Given the causal ordering of nodes, the resulting adjacency matrix is lower triangular (see Shojaie & Michailidis, 2010b). Thus, only lower triangular parts of zero
and one
are used in this function. For this reason, it is important that both of these matrices are also ordered according to the causal order of the nodes in \(X\). To estimate the network, first each node is regressed on the known edges (one
). The reisdual obtained from this regression is then used to find the additional edges, among the nodes that could potentially interact with the given node (those not in zero
).
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.dir
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.dir
separately to obtain estimates of the adjacency matrices under each condition.
The algorithm used in netEst.undir
is based on glmnet
. Please refer to glmnet
for computational details.