Class ResolveSepsets
Provides some utilities for resolving inconsistencies that arise between sepsets learned for overlapping datasets. This occurs frequently when using the DCI and ION algorithm. A reference is here:
Tillman, R. E., & Eberhardt, F. (2014). Learning causal structure from multiple datasets with similar variable sets. Behaviormetrika, 41(1), 41-64.
- Version:
- $Id: $Id
- Author:
- roberttillman
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumGives the method to be used to resolve sepsets when they conflict. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doublegetPValuePooled(ResolveSepsets.Method method, List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Tests for independence using one of the pooled methods and returns the combined p-value, on the scale where "independent iff p > alpha" is the correct decision for every method.static doublegetPValuePooledFisher(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Returns the pooled p-value using Fisher's method.static doublegetPValuePooledFisher2(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Returns the pooled p-value using Fisher's method 2.static doublegetPValuePooledTippett(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Returns the pooled p-value using Tippett's method.static booleanisIndependentPooled(ResolveSepsets.Method method, List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Tests for independence using one of the pooled methodsstatic booleanisIndependentPooledAverage(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Checks independence from pooled samples by taking the average p valuestatic booleanisIndependentPooledAverageTest(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Checks independence from pooled samples by taking the average test statistic CURRENTLY ONLY WORKS FOR CHISQUARE TESTstatic booleanisIndependentPooledFisher(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Checks independence from pooled samples using Fisher's method.static booleanisIndependentPooledFisher2(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Eliminates from considerations independence tests that cannot be evaluated (due to missing variables mainly).static booleanisIndependentPooledMudholkerGeorge(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Checks independence from pooled samples using Mudholker and George's methodstatic booleanisIndependentPooledMudholkerGeorge2(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) The same as isIndepenentPooledMudholkerGeoerge, except that only available independence tests are used.static booleanisIndependentPooledRandom(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Checks independence from pooled samples by randomly selecting a p valuestatic booleanisIndependentPooledStouffer(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Checks independence from pooled samples using Stouffer et al.'s methodstatic booleanisIndependentPooledTippett(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Checks independence from pooled samples using Tippett's methodstatic booleanisIndependentPooledWilkinson(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet, int r) Checks independence from pooled samples using Wilkinson's methodstatic booleanisIndependentPooledWorsleyFriston(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) Checks independence from pooled samples using Worsley and Friston's method
-
Constructor Details
-
ResolveSepsets
public ResolveSepsets()The method to use for resolving sepsets
-
-
Method Details
-
isIndependentPooled
public static boolean isIndependentPooled(ResolveSepsets.Method method, List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Tests for independence using one of the pooled methods- Parameters:
method- aResolveSepsets.MethodobjectindependenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-
getPValuePooled
public static double getPValuePooled(ResolveSepsets.Method method, List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Tests for independence using one of the pooled methods and returns the combined p-value, on the scale where "independent iff p > alpha" is the correct decision for every method. Each is a valid one-sided combination of the per-data-set p-values under the null that the independence holds in every data set (small p-values are evidence of dependence):- fisher, fisher2: Fisher's chi-square on -2 sum log p (fisher2 skips NaN p-values).
- tippett: min p, Sidak-adjusted: 1 - (1 - min p)^k.
- stouffer: Phi(sum Phi^{-1}(p_i) / sqrt k), one-sided.
- mudholkergeorge, mudholkergeorge2: the logit combination, one-sided t.
- worsleyfriston: (max p)^k - a test of dependence in EVERY data set (conjunction), not in the shared structure; included for comparison.
- average: the mean p-value, referred to its exact null (Irwin-Hall) distribution.
- Parameters:
method- aResolveSepsets.MethodobjectindependenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- the pooled p-value.
- Throws:
InterruptedException- if any.
-
isIndependentPooledFisher
public static boolean isIndependentPooledFisher(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Checks independence from pooled samples using Fisher's method.See R. A. Fisher. Statistical Methods for Research Workers. Oliver and Boyd, 11th edition, 1950.
- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-
getPValuePooledFisher
public static double getPValuePooledFisher(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Returns the pooled p-value using Fisher's method.- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- the pooled p-value.
- Throws:
InterruptedException- if any.
-
isIndependentPooledFisher2
-
getPValuePooledFisher2
-
isIndependentPooledTippett
public static boolean isIndependentPooledTippett(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Checks independence from pooled samples using Tippett's methodSee L. H. C. Tippett. The Method of Statistics. Williams and Norgate, 1st edition, 1950.
- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-
getPValuePooledTippett
public static double getPValuePooledTippett(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Returns the pooled p-value using Tippett's method.- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- the pooled p-value.
- Throws:
InterruptedException- if any.
-
isIndependentPooledWilkinson
public static boolean isIndependentPooledWilkinson(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet, int r) throws InterruptedException Checks independence from pooled samples using Wilkinson's methodI don't have a reference for this but its basically in between Tippett and Worsley and Friston.
- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobjectr- a int- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-
isIndependentPooledWorsleyFriston
public static boolean isIndependentPooledWorsleyFriston(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Checks independence from pooled samples using Worsley and Friston's methodSee K. J. Worsely and K. J. Friston. A test for conjunction. Statistics and Probability Letters 2000.
- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-
isIndependentPooledStouffer
public static boolean isIndependentPooledStouffer(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Checks independence from pooled samples using Stouffer et al.'s methodSee S. A. Stouffer, E. A. Suchman, L. C. Devinney, S. A. Star, and R. M. Williams. The American Soldier: Vol. 1. Adjustment During Army Life. Princeton University Press, 1949.
- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-
isIndependentPooledMudholkerGeorge
public static boolean isIndependentPooledMudholkerGeorge(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Checks independence from pooled samples using Mudholker and George's methodSee G. S. Mudholkar and E. O. George. The logit method for combining probabilities. In J. Rustagi, editor, Symposium on Optimizing Method in Statistics, pages 345-366. Academic Press, 1979.
- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-
isIndependentPooledMudholkerGeorge2
-
isIndependentPooledAverage
public static boolean isIndependentPooledAverage(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Checks independence from pooled samples by taking the average p value- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-
isIndependentPooledAverageTest
public static boolean isIndependentPooledAverageTest(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Checks independence from pooled samples by taking the average test statistic CURRENTLY ONLY WORKS FOR CHISQUARE TEST- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-
isIndependentPooledRandom
public static boolean isIndependentPooledRandom(List<IndependenceTest> independenceTests, Node x, Node y, Set<Node> condSet) throws InterruptedException Checks independence from pooled samples by randomly selecting a p value- Parameters:
independenceTests- aListobjectx- aNodeobjecty- aNodeobjectcondSet- aSetobject- Returns:
- a boolean
- Throws:
InterruptedException- if any.
-