Search in sources :

Example 6 with SemIm

use of edu.cmu.tetrad.sem.SemIm 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 7 with SemIm

use of edu.cmu.tetrad.sem.SemIm 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 8 with SemIm

use of edu.cmu.tetrad.sem.SemIm 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 9 with SemIm

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

the class SemImWrapper method setSemIm.

private void setSemIm(SemIm updatedSemIm) {
    semIms = new ArrayList<>();
    semIms.add(new SemIm(updatedSemIm));
    for (int i = 0; i < semIms.size(); i++) {
        log(i, semIms.get(i));
    }
}
Also used : SemIm(edu.cmu.tetrad.sem.SemIm)

Example 10 with SemIm

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

the class SemSimulation method simulate.

private DataSet simulate(Graph graph, Parameters parameters) {
    boolean saveLatentVars = parameters.getBoolean("saveLatentVars");
    SemIm im = this.im;
    if (im == null) {
        SemPm pm = this.pm;
        if (pm == null) {
            pm = new SemPm(graph);
            im = new SemIm(pm, parameters);
            ims.add(im);
            return im.simulateData(parameters.getInt("sampleSize"), saveLatentVars);
        } else {
            im = new SemIm(pm, parameters);
            ims.add(im);
            return im.simulateData(parameters.getInt("sampleSize"), saveLatentVars);
        }
    } else {
        ims.add(im);
        return im.simulateData(parameters.getInt("sampleSize"), saveLatentVars);
    }
}
Also used : SemPm(edu.cmu.tetrad.sem.SemPm) SemIm(edu.cmu.tetrad.sem.SemIm)

Aggregations

SemIm (edu.cmu.tetrad.sem.SemIm)81 SemPm (edu.cmu.tetrad.sem.SemPm)71 Test (org.junit.Test)46 DataSet (edu.cmu.tetrad.data.DataSet)28 ArrayList (java.util.ArrayList)28 Graph (edu.cmu.tetrad.graph.Graph)26 Node (edu.cmu.tetrad.graph.Node)19 ContinuousVariable (edu.cmu.tetrad.data.ContinuousVariable)16 EdgeListGraph (edu.cmu.tetrad.graph.EdgeListGraph)16 SemEstimator (edu.cmu.tetrad.sem.SemEstimator)15 Dag (edu.cmu.tetrad.graph.Dag)10 DMSearch (edu.cmu.tetrad.search.DMSearch)9 StandardizedSemIm (edu.cmu.tetrad.sem.StandardizedSemIm)9 TetradMatrix (edu.cmu.tetrad.util.TetradMatrix)7 NumberFormat (java.text.NumberFormat)7 GraphNode (edu.cmu.tetrad.graph.GraphNode)5 IndependenceTest (edu.cmu.tetrad.search.IndependenceTest)4 DecimalFormat (java.text.DecimalFormat)4 List (java.util.List)4 CovarianceMatrix (edu.cmu.tetrad.data.CovarianceMatrix)3