Class AlmostCycleRemover

java.lang.Object
edu.cmu.tetrad.search.utils.AlmostCycleRemover
All Implemented Interfaces:
TetradSerializable, Serializable

public class AlmostCycleRemover extends Object implements TetradSerializable
A class for heuristically removing almost cycles from a PAG to avoid unfaithfulness in an estimated PAG. An almost cycle is a path x ~~> y where x <-> y. Bidirected edge semantics for PAGs require that there be no almost directed cycles, though LV algorithms may produce them.

This class is meant to be incorporated into a latent variable algorithm and used to remove almost cycles from the graph in the final step.

The method works by identifying almost cyclic paths for x <-> y where there is a semidirected path from x to y in the estimated PAG and then removing all unshielded collider orientations into x for these. This removes the need to orient a collider at x for these edges, and so removes the need to orient a path out of x to y. Almost directed paths are symptomatic of unfaithfulness in the data (implying dependencies that should not exist if the output is a faithful PAG), so this is a reasonable heuristic.

Author:
jdramsey
See Also: