pc.cons.intern {pcalg} | R Documentation |
Utility for conservative and majority rule in PC and FCI
Description
The pc.cons.intern()
function is used in pc
and
fci
, notably when
conservative = TRUE
(conservative orientation of v-structures) or
maj.rule = TRUE
(majority rule orientation of v-structures).
Usage
pc.cons.intern(sk, suffStat, indepTest, alpha, version.unf = c(NA, NA),
maj.rule = FALSE, verbose = FALSE)
Arguments
sk |
A skeleton object as returned from |
suffStat |
Sufficient statistic: List containing all necessary
elements for the conditional independence decisions in the
function |
indepTest |
Pre-defined function for testing conditional independence. The
function is internally called as |
alpha |
Significance level for the individual conditional independence tests. |
version.unf |
Vector of length two. If |
maj.rule |
Logical indicatin if the triples are checked for ambiguity using the majority rule idea, which is less strict than the standard conservative method. |
verbose |
Logical asking for detailed output. |
Details
For any unshielded triple A-B-C, consider all subsets of the neighbors of A and of the neighbors of C, and record all such sets D for which A and C are conditionally independent given D. We call such sets “separating sets”.
If version.unf
[2]==1, the initial separating set found in the
PC/FCI algorithm is added to this set of separating sets.
If version.unf
[2]==2, the initial separating set is not added (as in Tetrad).
In the latter case, if the set of separating sets is empty, then the
triple is marked as ‘ambiguous’ if version.unf
[1]==2, for
example in pc
, or as ‘unambiguous’ if
version.unf
[1]==1, for example in fci
.
Otherwise, there is at least one separating set.
If maj.rule=FALSE
, the conservative PC algorithm is used
(Ramsey et al., 2006): If B is in some but not all separating sets,
the triple is marked as ambiguous. Otherwise it is treated as in the
standard PC algorithm. If maj.rule=TRUE
, the majority rule is
applied (Colombo and Maathuis, 2014): The triple is marked as
‘ambiguous’ if B is in exactly 50 percent of the separating sets. If
it is in less than 50 percent it is marked as a v-structure, and if it
is in more than 50 percent it is marked as a non v-structure.
Note: This function modifies the separating sets for unambiguous triples in the skeleton object (adding or removing B) to ensure that the usual orientations rules later on lead to the correct v-structures/non v-structures.
Value
unfTripl |
numeric vector of triples coded as numbers (via
|
vers |
Vector containing the version (1 or 2) of the corresponding triple saved in unfTripl (1=normal ambiguous triple, i.e., B is in some sepsets but not all or none; 2=triple coming from version.unf[1]==2, i.e., a and c are indep given the initial sepset but there does not exist a subset of the neighbours of a or of c that d-separates them.) |
sk |
The updated skeleton-object (separating sets might have been updated). |
Author(s)
Markus Kalisch (kalisch@stat.math.ethz.ch) and Diego Colombo.
References
D. Colombo and M.H. Maathuis (2014).Order-independent constraint-based causal structure learning. Journal of Machine Learning Research 15 3741-3782.
J. Ramsey, J. Zhang and P. Spirtes (2006). Adjacency-faithfulness and conservative causal inference. In Proceedings of the 22nd Annual Conference on Uncertainty in Artificial Intelligence, Arlington, VA. AUAI Press.