Class PcLingam

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

public class PcLingam extends Object

Implements the PC-LiNGAM algorithm which first finds a CPDAG for the variables and then uses a non-Gaussian orientation method to orient the undirected edges. The reference is as follows:

>Hoyer et al., "Causal discovery of linear acyclic models with arbitrary distributions," UAI 2008.

The test for normality used for residuals is Anderson-Darling, following 'ad.test' in the nortest package of R. The default alpha level is 0.05--that is, p values from AD below 0.05 are taken to indicate nongaussianity.

It is assumed that the CPDAG is the result of a CPDAG search such as PC or GES. In any case, it is important that the residuals be independent for ICA to work.

This may be replaced by a more general algorithm that allows alternatives for the CPDAG search and for the the non-Gaussian orientation method.

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

Author:
peterspirtes, patrickhoyer, josephramsey
  • Constructor Details

  • Method Details

    • search

      public Graph search()
      Runs the search and returns the result graph.
      Returns:
      This graph.
    • getPValues

      public double[] getPValues()
      Returns the p-values of the search.
      Returns:
      This list as a double[] array.
    • setAlpha

      public void setAlpha(double alpha)
      Sets the alpha level for the search.
      Parameters:
      alpha - This alpha level.