# lfhtcIdentifyStep: Perform one iteration of latent factor HTC identification. In Lucaweihs/SEMID: Identifiability of Linear Structural Equation Models

## Description

A function that does one step through all the nodes in a latent factor graph and tries to identify new edge coefficients using the existence of half-trek systems as described in TO BE WRITTEN.

## Usage

 ```1 2``` ```lfhtcIdentifyStep(graph, unsolvedParents, solvedParents, identifier, subsetSizeControl = Inf) ```

## Arguments

 `graph` a `LatentDigraph` object representing the latent factor graph. All latent nodes in this graph should be source nodes (i.e. have no parents). `unsolvedParents` a list whose ith index is a vector of all the parents j of i in the graph 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 latent factor graph) and returns a list with two named arguments Lambdadenote the number of nodes in `graph` 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. Omegajust as Lambda but for the error covariance matrix for the latent factor graph. such that if j is in `solvedParents[[i]]` we must have that Lambda[j,i] is not NA. `subsetSizeControl` the largest subset of latent nodes to consider.

## 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

TO BE WRITTEN

Lucaweihs/SEMID documentation built on June 3, 2019, 2:13 a.m.