use of edu.cmu.tetrad.algcomparison.Comparison in project tetrad by cmu-phil.
the class ExampleCompareSimulation method main.
public static void main(String... args) {
if (args.length > 0) {
int numMeasures = Integer.parseInt(args[0]);
int avgDegree = Integer.parseInt(args[1]);
Parameters parameters = new Parameters();
// parameters.set("minCategories", 3);
// parameters.set("maxCategories", 3);
parameters.set("numRuns", 2);
parameters.set("differentGraphs", true);
parameters.set("sampleSize", 1000);
parameters.set("numMeasures", numMeasures);
parameters.set("numLatents", 0);
parameters.set("avgDegree", avgDegree);
parameters.set("maxDegree", 100);
parameters.set("maxIndegree", 100);
parameters.set("maxOutdegree", 100);
parameters.set("connected", false);
parameters.set("coefLow", 0.2);
parameters.set("coefHigh", 0.9);
parameters.set("varLow", 1);
parameters.set("varHigh", 3);
parameters.set("verbose", false);
parameters.set("coefSymmetric", true);
parameters.set("numRuns", 1);
parameters.set("percentDiscrete", 0);
parameters.set("numCategories", 3);
parameters.set("differentGraphs", true);
parameters.set("sampleSize", 1000);
parameters.set("intervalBetweenShocks", 10);
parameters.set("intervalBetweenRecordings", 10);
parameters.set("fisherEpsilon", 0.001);
parameters.set("randomizeColumns", true);
parameters.set("alpha", 1e-8);
parameters.set("depth", -1);
parameters.set("penaltyDiscount", 4);
parameters.set("useMaxPOrientationHeuristic", false);
parameters.set("maxPOrientationMaxPathLength", 3);
parameters.set("verbose", false);
parameters.set("scaleFreeAlpha", 0.00001);
parameters.set("scaleFreeBeta", 0.4);
parameters.set("scaleFreeDeltaIn", .1);
parameters.set("scaleFreeDeltaOut", 3);
parameters.set("symmetricFirstStep", false);
parameters.set("faithfulnessAssumed", true);
parameters.set("maxDegree", 100);
Statistics statistics = new Statistics();
statistics.add(new ParameterColumn("numMeasures"));
statistics.add(new ParameterColumn("avgDegree"));
statistics.add(new AdjacencyPrecision());
statistics.add(new AdjacencyRecall());
statistics.add(new ArrowheadPrecision());
statistics.add(new ArrowheadRecall());
// statistics.add(new NumBidirectedEdges());
// statistics.add(new MathewsCorrAdj());
// statistics.add(new MathewsCorrArrow());
// statistics.add(new F1Adj());
// statistics.add(new F1Arrow());
// statistics.add(new SHD());
statistics.add(new ElapsedTime());
statistics.setWeight("AP", 0.25);
statistics.setWeight("AR", 0.25);
statistics.setWeight("AHP", 0.25);
statistics.setWeight("AHR", 0.25);
Algorithms algorithms = new Algorithms();
// algorithms.add(new Pc(new FisherZ()));
// algorithms.add(new Pc(new SemBicTest()));
// algorithms.add(new Cpc(new FisherZ()));
// algorithms.add(new PcStable(new FisherZ()));
// algorithms.add(new CpcStable(new FisherZ()));
// algorithms.add(new PcStableMax(new FisherZ(), false));
// algorithms.add(new PcStableMax(new SemBicTest(), false));
algorithms.add(new Fges(new FisherZScore(), false));
// algorithms.add(new Fges(new SemBicScore(), false));
Simulations simulations = new Simulations();
simulations.add(new LinearFisherModel(new RandomForward()));
Comparison comparison = new Comparison();
comparison.setShowAlgorithmIndices(true);
comparison.setShowSimulationIndices(true);
comparison.setSortByUtility(false);
comparison.setShowUtilities(true);
comparison.compareFromSimulations("comparisonJoe", simulations, algorithms, statistics, parameters);
}
}
use of edu.cmu.tetrad.algcomparison.Comparison in project tetrad by cmu-phil.
the class TestImagesSimulation method test1.
public void test1() {
Parameters parameters = new Parameters();
parameters.set("numRuns", 1);
parameters.set("numMeasures", 100);
parameters.set("avgDegree", 8);
// parameters.set("maxDegree", 8);
// parameters.set("maxIndegree", 3);
// parameters.set("maxOutdegree", 3);
parameters.set("sampleSize", 500);
parameters.set("penaltyDiscount", 4);
// parameters.set("alpha", 0.001);
// parameters.set("maxDegree", 5);
// parameters.set("numCategoriesToDiscretize", 3);
parameters.set("intervalBetweenRecordings", 20);
parameters.set("varLow", 1.);
parameters.set("varHigh", 3.);
parameters.set("coefLow", .1);
parameters.set("coefHigh", 1);
parameters.set("coefSymmetric", true);
parameters.set("meanLow", -1);
parameters.set("meanHigh", 1);
// parameters.set("scaleFreeAlpha", .9);
// parameters.set("scaleFreeBeta", .05);
// parameters.set("scaleFreeDeltaIn", 3);
// parameters.set("scaleFreeDeltaOut", .1);
parameters.set("numRuns", 1);
parameters.set("randomSelectionSize", 3);
Statistics statistics = new Statistics();
// statistics.add(new ParameterColumn("numCategories"));
statistics.add(new AdjacencyPrecision());
statistics.add(new AdjacencyRecall());
statistics.add(new ArrowheadPrecision());
statistics.add(new ArrowheadRecall());
statistics.add(new ElapsedTime());
statistics.setWeight("AP", 1.0);
statistics.setWeight("AR", 0.5);
Algorithms algorithms = new Algorithms();
algorithms.add(new ImagesSemBic());
algorithms.add(new ImagesPcStableMax());
Simulations simulations = new Simulations();
simulations.add(new LinearFisherModel(new RandomForward()));
Comparison comparison = new Comparison();
comparison.setShowAlgorithmIndices(true);
comparison.setShowSimulationIndices(false);
comparison.setSortByUtility(false);
comparison.setShowUtilities(false);
comparison.setParallelized(true);
// comparison.setSaveGraphs(true);
comparison.setTabDelimitedTables(false);
comparison.compareFromSimulations("comparison", simulations, algorithms, statistics, parameters);
}
use of edu.cmu.tetrad.algcomparison.Comparison in project tetrad by cmu-phil.
the class TestSimulatedFmri2 method TestCycles_Data_fMRI_FASK.
public void TestCycles_Data_fMRI_FASK() {
Parameters parameters = new Parameters();
parameters.set("penaltyDiscount", 8);
parameters.set("depth", -1);
parameters.set("faskDelta", -0.2);
parameters.set("twoCycleAlpha", 1e-15);
parameters.set("numRuns", 60);
// parameters.set("randomSelectionSize", 1);
parameters.set("Structure", "Placeholder");
Statistics statistics = new Statistics();
statistics.add(new ParameterColumn("Structure"));
statistics.add(new AdjacencyPrecision());
statistics.add(new AdjacencyRecall());
// statistics.add(new MathewsCorrAdj());
statistics.add(new ArrowheadPrecision());
statistics.add(new ArrowheadRecall());
statistics.add(new TwoCyclePrecision());
statistics.add(new TwoCycleRecall());
statistics.add(new TwoCycleFalsePositive());
statistics.add(new TwoCycleFalseNegative());
statistics.add(new TwoCycleTruePositive());
statistics.add(new ElapsedTime());
statistics.setWeight("AHR", 1.0);
statistics.setWeight("2CP", 1.0);
statistics.setWeight("2CR", 1.0);
statistics.setWeight("2CFP", 1.0);
Simulations simulations = new Simulations();
String dir = "/Users/user/Downloads/CyclesTestingData/";
String subdir = "data_fslfilter_concat";
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network1_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network2_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network3_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network4_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_cont_p3n7", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_cont_p7n3", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network6_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network6_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network7_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network7_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network8_amp_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network8_amp_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network8_cont_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network9_amp_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network9_amp_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network9_cont_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Diamond", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Markov_Complex_1", subdir));
Algorithms algorithms = new Algorithms();
algorithms.add(new edu.cmu.tetrad.algcomparison.algorithm.multi.Fask(new SemBicScore()));
//
Comparison comparison = new Comparison();
comparison.setShowAlgorithmIndices(true);
comparison.setShowSimulationIndices(true);
comparison.setSortByUtility(false);
comparison.setShowUtilities(false);
comparison.setParallelized(false);
comparison.setSaveGraphs(false);
comparison.setTabDelimitedTables(false);
comparison.setSaveGraphs(true);
String directory = "comparison_testing_nonconcat";
comparison.compareFromSimulations(directory, simulations, algorithms, statistics, parameters);
}
use of edu.cmu.tetrad.algcomparison.Comparison in project tetrad by cmu-phil.
the class TestSimulatedFmri method task.
private void task(boolean testing) {
Parameters parameters = new Parameters();
parameters.set("penaltyDiscount", 4);
parameters.set("depth", -1);
parameters.set("twoCycleAlpha", 1e-10);
parameters.set("faskDelta", -.2);
parameters.set("reverseOrientationsBySignOfCorrelation", false);
parameters.set("reverseOrientationsBySkewnessOfVariables", false);
parameters.set("numRuns", 10);
parameters.set("randomSelectionSize", 10);
parameters.set("Structure", "Placeholder");
Statistics statistics = new Statistics();
statistics.add(new ParameterColumn("Structure"));
statistics.add(new AdjacencyPrecision());
statistics.add(new AdjacencyRecall());
// statistics.add(new MathewsCorrAdj());
statistics.add(new ArrowheadPrecision());
statistics.add(new ArrowheadRecall());
statistics.add(new TwoCyclePrecision());
statistics.add(new TwoCycleRecall());
statistics.add(new TwoCycleFalsePositive());
statistics.add(new TwoCycleFalseNegative());
statistics.add(new TwoCycleTruePositive());
statistics.add(new ElapsedTime());
statistics.setWeight("AHR", 1.0);
statistics.setWeight("2CP", 1.0);
statistics.setWeight("2CR", 1.0);
statistics.setWeight("2CFP", 1.0);
Simulations simulations = new Simulations();
if (!testing) {
String dir = "/Users/user/Downloads/Cycles_Data_fMRI/";
String subdir = "data_fslfilter";
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network1_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network2_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network3_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network4_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_contr", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_contr_p2n6", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_contr_p6n2", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network6_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network6_contr", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network7_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network7_contr", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network8_amp_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network8_amp_contr", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network8_contr_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network9_amp_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network9_amp_contr", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network9_contr_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Diamond", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Markov_Complex_1", subdir));
} else {
String dir = "/Users/user/Downloads/CyclesTestingData/";
String subdir = "data_fslfilter";
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network1_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network2_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network3_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network4_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_cont_p3n7", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network5_cont_p7n3", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network6_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network6_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network7_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network7_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network8_amp_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network8_amp_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network8_cont_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network9_amp_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network9_amp_cont", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Network9_cont_amp", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Diamond", subdir));
simulations.add(new LoadContinuousDataAndSingleGraph(dir + "Markov_Complex_1", subdir));
}
Algorithms algorithms = new Algorithms();
algorithms.add(new FaskConcatenated(new SemBicScore()));
// algorithms.add(new FaskGfciConcatenated(new SemBicTest()));
// algorithms.add(new FasLofsConcatenated(Lofs2.Rule.RSkew));
Comparison comparison = new Comparison();
comparison.setShowAlgorithmIndices(true);
comparison.setShowSimulationIndices(true);
comparison.setSortByUtility(false);
comparison.setShowUtilities(false);
comparison.setParallelized(false);
comparison.setSaveGraphs(false);
comparison.setTabDelimitedTables(false);
comparison.setSaveGraphs(true);
String directory;
if (!testing) {
directory = "comparison_training";
} else {
directory = "comparison_testing";
}
comparison.compareFromSimulations(directory, simulations, algorithms, statistics, parameters);
}
use of edu.cmu.tetrad.algcomparison.Comparison in project tetrad by cmu-phil.
the class TestCopy method main.
/**
* An example script to simulate data and run a comparison analysis on it.
*
* @author jdramsey
*/
public static void main(String... args) {
Parameters parameters = new Parameters();
parameters.set("numRuns", 10);
parameters.set("numMeasures", 100);
parameters.set("avgDegree", 2, 4, 6);
parameters.set("sampleSize", 200);
parameters.set("alpha", 1e-4, 1e-3, 1e-2);
parameters.set("penaltyDiscount", 1);
Statistics statistics = new Statistics();
statistics.add(new ParameterColumn("sampleSize"));
statistics.add(new ParameterColumn("avgDegree"));
statistics.add(new ParameterColumn("alpha"));
statistics.add(new AdjacencyPrecision());
statistics.add(new AdjacencyRecall());
statistics.add(new ArrowheadPrecision());
statistics.add(new ArrowheadRecall());
statistics.add(new MathewsCorrAdj());
statistics.add(new MathewsCorrArrow());
statistics.add(new F1Adj());
statistics.add(new F1Arrow());
statistics.add(new SHD());
statistics.add(new ElapsedTime());
statistics.setWeight("AP", 1.0);
statistics.setWeight("AHP", 1.0);
Algorithms algorithms = new Algorithms();
algorithms.add(new Pc(new FisherZ()));
algorithms.add(new PcStableMax(new FisherZ(), false));
Simulations simulations = new Simulations();
simulations.add(new SemSimulation(new RandomForward()));
Comparison comparison = new Comparison();
comparison.setShowAlgorithmIndices(true);
comparison.setShowSimulationIndices(true);
comparison.setSortByUtility(true);
comparison.setShowUtilities(true);
comparison.setParallelized(true);
comparison.compareFromSimulations("comparison", simulations, algorithms, statistics, parameters);
}
Aggregations