A function that does one step through all the nodes in a mixed graph and tries to identify new edge coefficients using the existence of half-trek systems as described in Foygel, Draisma, Drton (2012).
htcIdentifyStep(mixedGraph, unsolvedParents, solvedParents, identifier)
a list with four components:
identifiedEdges
a matrix rx2 matrix where r is the number
of edges that where identified by this function call and
identifiedEdges[i,1] -> identifiedEdges[i,2]
was the ith edge
identified
unsolvedParents
as the input argument but updated with any newly identified edges
solvedParents
as the input argument but updated with any newly identified edges
identifier
as the input argument but updated with any newly identified edges
a MixedGraph
object representing
the mixed graph.
a list whose ith index is a vector of all the parents j of i in G which for which the edge j->i is not yet known to be generically identifiable.
the complement of unsolvedParents
, a list whose
ith index is a vector of all parents j of i for which the edge i->j
is known to be generically identifiable (perhaps by other algorithms).
an identification function that must produce the
identifications corresponding to those in solved parents. That is
identifier
should be a function taking a single argument Sigma
(any generically generated covariance matrix corresponding
to the mixed graph) and returns a list with two named arguments
denote the number of nodes in mixedGraph
as n. Then
Lambda is an nxn matrix whose i,jth entry
equals 0 if i is not a parent of j,
equals NA if i is a parent of j but identifier
cannot
identify it generically,
equals the (generically) unique value corresponding to the weight along the edge i->j that was used to produce Sigma.
just as Lambda but for the bidirected edges in the mixed graph
such that if j is in solvedParents[[i]]
we must have that
Lambda[j,i] is not NA.
Foygel, R., Draisma, J., and Drton, M. (2012) Half-trek criterion for generic identifiability of linear structural equation models. Ann. Statist. 40(3): 1682-1713