ancestralIdentifyStep: Perform one iteration of ancestral identification.

View source: R/ancestralID.R

ancestralIdentifyStepR Documentation

Perform one iteration of ancestral identification.

Description

A function that does one step through all the nodes in a mixed graph and tries to determine if directed edge coefficients are generically identifiable by leveraging decomposition by ancestral subsets. See Algorithm 1 of Drton and Weihs (2015); this version of the algorithm is somewhat different from Drton and Weihs (2015) in that it also works on cyclic graphs.

Usage

ancestralIdentifyStep(mixedGraph, unsolvedParents, solvedParents, identifier)

Arguments

mixedGraph

a MixedGraph object representing the mixed graph.

unsolvedParents

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.

solvedParents

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).

identifier

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

Lambda

denote the number of nodes in mixedGraph as n. Then Lambda is an nxn matrix whose i,jth entry

  1. equals 0 if i is not a parent of j,

  2. equals NA if i is a parent of j but identifier cannot identify it generically,

  3. equals the (generically) unique value corresponding to the weight along the edge i->j that was used to produce Sigma.

Omega

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.

Value

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

References

Drton, M. and Weihs, L. (2015) Generic Identifiability of Linear Structural Equation Models by Ancestor Decomposition. arXiv 1504.02992


Lucaweihs/SEMID documentation built on July 22, 2023, 7:49 a.m.