the best rules with the given measure or at least all non-specious rules. This is not guaranteed, if one has used any suboptimal pruning heuristics like minimum frequency thresholds, restrictions on the rule complexity, or exclusion of negative dependency rules ($X\rightarrow \neg C$). In the latter case, some specious rules may not be detected, even if the confounding factors were represented in the data.

Algorithm
---------

The simplest approach for speciousness detection is to search for the top-$K$ (positive and negative) dependency rules with an order-homomorphic measure and then evaluate speciousness of each rule $r_i$ with respect to better rules $r_j$ in the post-processing phase. However, this approach typically results in a large number of specious rules, which are redundant specializations of more generic rules (Section \[specase1\]). Therefore, it is desirable to prune out redundant rules during the actual search phase, which also accelerates the search remarkably (see e.g., [@kingfkais]).

When the set of best non-redundant dependency rules has been discovered, the rest of the specious rules can be detected in the post-processing phase using Algorithm \[specdetect\]. In the algorithm, all three special cases of speciousness from Section \[specialcases\] as well as the normal case are handled separately. One reason 