Class Fofc

java.lang.Object
edu.cmu.tetrad.search.Fofc

public class Fofc extends Object

Implements the Find One Factor Clusters (FOFC) algorithm by Erich Kummerfeld, which uses reasoning about vanishing tetrads of algorithms to infer clusters of the measured variables in a dataset that each be explained by a single latent variable. A reference is the following

Kummerfeld, E., & Ramsey, J. (2016, August). Causal clustering for 1-factor measurement models. In Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining (pp. 1655-1664).

The algorithm employs tests of vanishing tetrads (list of 4 variables that follow a certain pattern in the exchangeability of latent paths with respect to the data). The notion of vanishing tetrads is old one but is explained in this book:

Spirtes, P., Glymour, C. N., Scheines, R., & Heckerman, D. (2000). Causation, prediction, and search. MIT press.

Author:
peterspirtes, erichkummerfeld, josephramsey
See Also:
  • Constructor Details

    • Fofc

      public Fofc(ICovarianceMatrix cov, BpcTestType testType, Fofc.Algorithm algorithm, double alpha)
      Constructor.
      Parameters:
      cov - The covariance matrix searched over.
      testType - The type of test used.
      algorithm - The type of FOFC algorithm used.
      alpha - The alpha significance cutoff.
      See Also:
    • Fofc

      public Fofc(DataSet dataSet, BpcTestType testType, Fofc.Algorithm algorithm, double alpha)
      Conctructor.
      Parameters:
      dataSet - The continuous dataset searched over.
      testType - The type of test used.
      algorithm - The type of FOFC algorithm used.
      alpha - The alpha significance cutoff.
      See Also:
  • Method Details

    • search

      public Graph search()
      Runs the search and returns a graph of clusters with the ir respective latent parents.
      Returns:
      This graph.
    • setSignificanceChecked

      public void setSignificanceChecked(boolean significanceChecked)
      Sets whether the significance of the cluster should be checked for each cluster.
      Parameters:
      significanceChecked - True, if so.
    • setCheckType

      public void setCheckType(ClusterSignificance.CheckType checkType)
      Sets which type of cluster check should be performed.
      Parameters:
      checkType - The type to be performed.
      See Also:
    • getClusters

      public List<List<Node>> getClusters()
      The clusters that are output by the algorithm from the last call to search().
    • setVerbose

      public void setVerbose(boolean verbose)