Class FasLofs
- All Implemented Interfaces:
- IGraphSearch
Runs Fast Adjacency Search (FAS) and then orients each edge using the robust skew orientation algorithm. Checks are done for adding two-cycles. The two-cycle checks do not require non-Gaussianity. The robust skew orientation of edges left or right does.
Moving this to the work_in_progress package because the functionality can be generalized. Instead of hard-coding FAS, an arbitrary algorithm can be used to obtain adjacencies. Instead of hard-coding robust skew, and arbitrary algorithm can be used to to pairwise orientation. Instead of orienting all edges, an option can be given to just orient the edges that are unoriented in the input graph (see, e.g., PC LiNGAM). This was an early attempt at this. For BOSS-LiNGAM, see this paper:
Hoyer, P. O., Hyvarinen, A., Scheines, R., Spirtes, P. L., Ramsey, J., Lacerda, G., & Shimizu, S. (2012). Causal discovery of linear acyclic models with arbitrary distributions. arXiv preprint arXiv:1206.3260.
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionintgetDepth()Getter for the fielddepth.longgetElapsedTime.Getter for the fieldknowledge.doubleGetter for the fieldpenaltyDiscount.search()Runs the search on the concatenated data, returning a graph, possibly cyclic, possibly with two-cycles.voidsetDepth(int depth) Setter for the fielddepth.voidsetKnowledge(Knowledge knowledge) Setter for the fieldknowledge.voidsetPenaltyDiscount(double penaltyDiscount) Setter for the fieldpenaltyDiscount.
- 
Constructor Details- 
FasLofsConstructor for FasLofs. - Parameters:
- dataSet- These datasets to analyze.
- rule- a- Lofs.Ruleobject
 
 
- 
- 
Method Details- 
searchRuns the search on the concatenated data, returning a graph, possibly cyclic, possibly with two-cycles. Runs the fast adjacency search (FAS, Spirtes et al., 2000) follows by a modification of the robust skew rule (Pairwise Likelihood Ratios for Estimation of Non-Gaussian Structural Equation Models, Smith and Hyvarinen), together with some heuristics for orienting two-cycles.- Specified by:
- searchin interface- IGraphSearch
- Returns:
- the graph. Some of the edges may be undirected (though it shouldn't be many in most cases) and some of the adjacencies may be two-cycles.
 
- 
getDepthpublic int getDepth()Getter for the field depth.- Returns:
- The depth of search for the Fast Adjacency Search (FAS).
 
- 
setDepthpublic void setDepth(int depth) Setter for the field depth.- Parameters:
- depth- The depth of search for the Fast Adjacency Search (S). The default is -1. unlimited. Making this too high may results in statistical errors.
 
- 
getElapsedTimepublic long getElapsedTime()getElapsedTime. - Returns:
- The elapsed time in milliseconds.
 
- 
getPenaltyDiscountpublic double getPenaltyDiscount()Getter for the field penaltyDiscount.- Returns:
- Returns the penalty discount used for the adjacency search. The default is 1, though a higher value is recommended, say, 2, 3, or 4.
 
- 
setPenaltyDiscountpublic void setPenaltyDiscount(double penaltyDiscount) Setter for the field penaltyDiscount.- Parameters:
- penaltyDiscount- Sets the penalty discount used for the adjacency search. The default is 1, though a higher value is recommended, say, 2, 3, or 4.
 
- 
getKnowledgeGetter for the field knowledge.- Returns:
- the current knowledge.
 
- 
setKnowledgeSetter for the field knowledge.- Parameters:
- knowledge- Knowledge of forbidden and required edges.
 
 
-