private double getClusterP2(List<Node> c) { Graph g = new EdgeListGraph(c); Node l = new GraphNode("L"); l.setNodeType(NodeType.LATENT); g.addNode(l); for (Node n : c) { g.addDirectedEdge(l, n); } SemPm pm = new SemPm(g); SemEstimator est; if (dataModel instanceof DataSet) { est = new SemEstimator((DataSet) dataModel, pm, new SemOptimizerEm()); } else { est = new SemEstimator((CovarianceMatrix) dataModel, pm, new SemOptimizerEm()); } SemIm estIm = est.estimate(); double pValue = estIm.getPValue(); return pValue == 1 ? Double.NaN : pValue; }