Class Bpc

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

public final class Bpc extends Object

Implements the Build Pure Clusters (BPC) algorithm, which allows one to identify clusters of measured variables in a dataset that are explained by a single latent. The algorithm outputs these clusters, which can then be used for further analysis, such as inferring structure over the latents. For the latter, see for instance the MimBuild algorithm.

The reference for BPC is this:

Silva, R., Scheines, R., Glymour, C., Spirtes, P., & Chickering, D. M. (2006). Learning the Structure of Linear Latent Variable Models. Journal of Machine Learning Research, 7(2).

For a more detailed description of the algorithm, see the paper above. The algorithm is based on the idea of finding cliques in the graph of the covariance matrix. The algorithm is initialized by finding all maximal cliques in the graph of the covariance matrix. Then, the algorithm iterates over the cliques, and for each clique, it tests whether the clique is explained by a single latent. If so, the clique is added to the set of clusters. If not, the clique is partitioned into smaller cliques, and the process is repeated for each of the smaller cliques. The algorithm stops when all cliques have been tested.

Some more References:

Silva, R.; Scheines, R.; Spirtes, P.; Glymour, C. (2003). "Learning measurement models". Technical report CMU-CALD-03-100, Center for Automated Learning and Discovery, Carnegie Mellon University.

Bollen, K. (1990). "Outlier screening and distribution-free test for vanishing tetrads." Sociological Methods and Research 19, 80-92.

Wishart, J. (1928). "Sampling errors in the theory of two factors". British Journal of Psychology 19, 180-187.

Bron, C. and Kerbosch, J. (1973) "Algorithm 457: Finding all cliques of an undirected graph". Communications of ACM 16, 575-577.

This class is not configured to respect knowledge of forbidden and required edges.

Author:
Ricardo Silva
See Also:
  • Constructor Details

    • Bpc

      public Bpc(ICovarianceMatrix covarianceMatrix, double alpha, BpcTestType sigTestType)
      Constructor.
      Parameters:
      covarianceMatrix - The covariance matrix to analyze.
      alpha - The significance cutoff to use.
      sigTestType - The type of the significance test to use.
      See Also:
    • Bpc

      public Bpc(DataSet dataSet, double alpha, BpcTestType sigTestType)
      Constructor.
      Parameters:
      dataSet - The dataset to analyze.
      alpha - The significance cutoff to use.
      sigTestType - The type of the significance test to use.
      See Also:
  • Method Details

    • search

      public Graph search()
      Runs the search and returns the graph, or null if there is no model. This will be a graph with clusters having their latents as parents.
      Returns:
      This graph.
    • getCovarianceMatrix

      public ICovarianceMatrix getCovarianceMatrix()
      Returns the wrapped covariance matrix.
      Returns:
      This.
    • setCheckType

      public void setCheckType(ClusterSignificance.CheckType checkType)
      Sets the cluster significance type.
      Parameters:
      checkType - This type
      See Also: