Class PcLingam
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
-
PcLingam
Constructor.- Parameters:
cpdag
- The CPDAG whose unoriented edges are to be oriented.dataSet
- Teh dataset to use.- Throws:
IllegalArgumentException
-
-
Method Details
-
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.
-