Search in sources :

Example 6 with SemPm

use of edu.cmu.tetrad.sem.SemPm in project tetrad by cmu-phil.

the class TestDM method test10.

// 
@Test
public void test10() {
    // setting seed for debug.
    RandomUtil.getInstance().setSeed(29483818483L);
    Graph graph = emptyGraph(5);
    graph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("X2"));
    graph.addDirectedEdge(new ContinuousVariable("X0"), new ContinuousVariable("X3"));
    graph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("X3"));
    graph.addDirectedEdge(new ContinuousVariable("X1"), new ContinuousVariable("X4"));
    SemPm pm = new SemPm(graph);
    SemIm im = new SemIm(pm);
    DataSet data = im.simulateData(100000, false);
    DMSearch search = new DMSearch();
    search.setUseFges(false);
    search.setInputs(new int[] { 0, 1 });
    search.setOutputs(new int[] { 2, 3, 4 });
    search.setData(data);
    search.setTrueInputs(search.getInputs());
    search.search();
    print("Test Case 10");
    // Trying to quiet the output for unit tests.
    if (false) {
        System.out.println(search.getDmStructure());
    }
    assertTrue(true);
}
Also used : ContinuousVariable(edu.cmu.tetrad.data.ContinuousVariable) EdgeListGraph(edu.cmu.tetrad.graph.EdgeListGraph) Graph(edu.cmu.tetrad.graph.Graph) DataSet(edu.cmu.tetrad.data.DataSet) SemPm(edu.cmu.tetrad.sem.SemPm) SemIm(edu.cmu.tetrad.sem.SemIm) DMSearch(edu.cmu.tetrad.search.DMSearch) Test(org.junit.Test)

Example 7 with SemPm

use of edu.cmu.tetrad.sem.SemPm in project tetrad by cmu-phil.

the class TestCpc method test7.

@Test
public void test7() {
    int numVars = 6;
    int numEdges = 6;
    List<Node> nodes = new ArrayList<>();
    for (int i = 0; i < numVars; i++) {
        nodes.add(new ContinuousVariable("X" + (i + 1)));
    }
    Dag trueGraph = new Dag(GraphUtils.randomGraph(nodes, 0, numEdges, 7, 5, 5, false));
    SemPm semPm = new SemPm(trueGraph);
    SemIm semIm = new SemIm(semPm);
    DataSet _dataSet = semIm.simulateData(1000, false);
    IndependenceTest test = new IndTestFisherZ(_dataSet, 0.05);
    Cpc search = new Cpc(test);
    Graph resultGraph = search.search();
}
Also used : DataSet(edu.cmu.tetrad.data.DataSet) ArrayList(java.util.ArrayList) ContinuousVariable(edu.cmu.tetrad.data.ContinuousVariable) SemPm(edu.cmu.tetrad.sem.SemPm) SemIm(edu.cmu.tetrad.sem.SemIm) Test(org.junit.Test)

Example 8 with SemPm

use of edu.cmu.tetrad.sem.SemPm in project tetrad by cmu-phil.

the class TestIndTestFisherZ method test2.

@Test
public void test2() {
    for (int p = 0; p < 50; p++) {
        Graph graph = new EdgeListGraph();
        Node x = new ContinuousVariable("X");
        Node y = new ContinuousVariable("Y");
        Node w1 = new ContinuousVariable("W1");
        Node w2 = new ContinuousVariable("W2");
        Node w3 = new ContinuousVariable("W3");
        Node r = new ContinuousVariable("R");
        graph.addNode(x);
        graph.addNode(y);
        graph.addNode(w1);
        graph.addNode(w2);
        graph.addNode(w3);
        graph.addNode(r);
        graph.addDirectedEdge(x, w1);
        graph.addDirectedEdge(w1, w2);
        graph.addDirectedEdge(w2, y);
        graph.addDirectedEdge(w3, y);
        // graph.addDirectedEdge(x, r);
        // graph.addDirectedEdge(r, y);
        graph.addDirectedEdge(y, r);
        // 
        SemPm pm = new SemPm(graph);
        Parameters parameters = new Parameters();
        parameters.set("coefLow", .3);
        parameters.set("coefHigh", .8);
        parameters.set("coefSymmetric", false);
        SemIm im = new SemIm(pm, parameters);
        final int N = 1000;
        DataSet data = im.simulateData(N, false);
        ICovarianceMatrix _cov = new CovarianceMatrix(data);
        TetradMatrix cov = _cov.getMatrix();
        List<Node> nodes = _cov.getVariables();
        final int xi = nodes.indexOf(x);
        final int yi = nodes.indexOf(y);
        final int ri = nodes.indexOf(r);
        double xy = StatUtils.partialCorrelation(cov, xi, yi);
        double xyr = StatUtils.partialCorrelation(cov, xi, yi, ri);
        double f1 = 0.5 * sqrt(N - 3) * log(1. + xy) - log(1. - xy);
        double f2 = 0.5 * sqrt(N - 3 - 1) * log(1. + xyr) - log(1. - xyr);
        System.out.println(abs(f1) > abs(f2));
    }
}
Also used : Parameters(edu.cmu.tetrad.util.Parameters) TetradMatrix(edu.cmu.tetrad.util.TetradMatrix) SemPm(edu.cmu.tetrad.sem.SemPm) SemIm(edu.cmu.tetrad.sem.SemIm) Test(org.junit.Test) IndependenceTest(edu.cmu.tetrad.search.IndependenceTest)

Example 9 with SemPm

use of edu.cmu.tetrad.sem.SemPm in project tetrad by cmu-phil.

the class TestDataLoadersRoundtrip method testContinuousRoundtrip.

@Test
public void testContinuousRoundtrip() {
    setUp();
    try {
        List<Node> nodes = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            nodes.add(new ContinuousVariable("X" + (i + 1)));
        }
        Graph randomGraph = new Dag(GraphUtils.randomGraph(nodes, 0, 5, 30, 15, 15, false));
        SemPm semPm1 = new SemPm(randomGraph);
        SemIm semIm1 = new SemIm(semPm1);
        DataSet dataSet = semIm1.simulateData(10, false);
        FileWriter fileWriter = new FileWriter("target/test_data/roundtrip.dat");
        Writer writer = new PrintWriter(fileWriter);
        DataWriter.writeRectangularData(dataSet, writer, ',');
        writer.close();
        // 
        new File("test_data").mkdir();
        File file = new File("target/test_data/roundtrip.dat");
        DataReader reader = new DataReader();
        reader.setDelimiter(DelimiterType.COMMA);
        DataSet _dataSet = reader.parseTabular(file);
        assertTrue(dataSet.equals(_dataSet));
    } catch (IOException e) {
        e.printStackTrace();
        fail();
    }
}
Also used : Node(edu.cmu.tetrad.graph.Node) ArrayList(java.util.ArrayList) Dag(edu.cmu.tetrad.graph.Dag) Graph(edu.cmu.tetrad.graph.Graph) SemPm(edu.cmu.tetrad.sem.SemPm) SemIm(edu.cmu.tetrad.sem.SemIm) Test(org.junit.Test)

Example 10 with SemPm

use of edu.cmu.tetrad.sem.SemPm in project tetrad by cmu-phil.

the class SemEstimatorWrapper method serializableInstance.

// public SemEstimatorWrapper(DataWrapper dataWrapper,
// SemPmWrapper semPmWrapper,
// SemImWrapper semImWrapper,
// Parameters params) {
// if (dataWrapper == null) {
// throw new NullPointerException();
// }
// 
// if (semPmWrapper == null) {
// throw new NullPointerException();
// }
// 
// if (semImWrapper == null) {
// throw new NullPointerException();
// }
// 
// DataSet dataSet =
// (DataSet) dataWrapper.getSelectedDataModel();
// SemPm semPm = semPmWrapper.getSemPm();
// SemIm semIm = semImWrapper.getSemIm();
// 
// this.semEstimator = new SemEstimator(dataSet, semPm, getOptimizer());
// if (!degreesOfFreedomCheck(semPm)) return;
// this.semEstimator.setTrueSemIm(semIm);
// this.semEstimator.setNumRestarts(getParams().getInt("numRestarts", 1));
// this.semEstimator.estimate();
// 
// this.params = params;
// 
// log();
// }
/**
 * Generates a simple exemplar of this class to test serialization.
 *
 * @see TetradSerializableUtils
 */
public static SemEstimatorWrapper serializableInstance() {
    List<Node> variables = new LinkedList<>();
    ContinuousVariable x = new ContinuousVariable("X");
    variables.add(x);
    DataSet dataSet = new ColtDataSet(10, variables);
    for (int i = 0; i < dataSet.getNumRows(); i++) {
        for (int j = 0; j < dataSet.getNumColumns(); j++) {
            dataSet.setDouble(i, j, RandomUtil.getInstance().nextDouble());
        }
    }
    Dag dag = new Dag();
    dag.addNode(x);
    SemPm pm = new SemPm(dag);
    Parameters params1 = new Parameters();
    return new SemEstimatorWrapper(dataSet, pm, params1);
}
Also used : ContinuousVariable(edu.cmu.tetrad.data.ContinuousVariable) ColtDataSet(edu.cmu.tetrad.data.ColtDataSet) Parameters(edu.cmu.tetrad.util.Parameters) ColtDataSet(edu.cmu.tetrad.data.ColtDataSet) DataSet(edu.cmu.tetrad.data.DataSet) Node(edu.cmu.tetrad.graph.Node) SemPm(edu.cmu.tetrad.sem.SemPm) Dag(edu.cmu.tetrad.graph.Dag) LinkedList(java.util.LinkedList)

Aggregations

SemPm (edu.cmu.tetrad.sem.SemPm)77 SemIm (edu.cmu.tetrad.sem.SemIm)71 Test (org.junit.Test)44 ArrayList (java.util.ArrayList)29 DataSet (edu.cmu.tetrad.data.DataSet)28 Graph (edu.cmu.tetrad.graph.Graph)25 ContinuousVariable (edu.cmu.tetrad.data.ContinuousVariable)18 Node (edu.cmu.tetrad.graph.Node)18 SemEstimator (edu.cmu.tetrad.sem.SemEstimator)16 EdgeListGraph (edu.cmu.tetrad.graph.EdgeListGraph)15 Dag (edu.cmu.tetrad.graph.Dag)10 DMSearch (edu.cmu.tetrad.search.DMSearch)9 StandardizedSemIm (edu.cmu.tetrad.sem.StandardizedSemIm)9 NumberFormat (java.text.NumberFormat)7 TetradMatrix (edu.cmu.tetrad.util.TetradMatrix)6 ICovarianceMatrix (edu.cmu.tetrad.data.ICovarianceMatrix)5 GraphNode (edu.cmu.tetrad.graph.GraphNode)5 CovarianceMatrix (edu.cmu.tetrad.data.CovarianceMatrix)4 IndependenceTest (edu.cmu.tetrad.search.IndependenceTest)4 Parameters (edu.cmu.tetrad.util.Parameters)4