List of usage examples for org.apache.commons.math3.distribution RealDistribution getSupportUpperBound
double getSupportUpperBound();
From source file:com.wormsim.utils.Utils.java
/** * Returns a string representation of the provided distribution. TODO: Make * this complete TODO: Make this compatible with custom distributions (or just * more complex ones)./* w w w . ja va2 s .c o m*/ * * @param dist The distribution to translate * * @return The distribution as a string. */ public static String realDistributionToString(RealDistribution dist) { if (dist instanceof ConstantRealDistribution) { return Double.toString(dist.getNumericalMean()); } else if (dist instanceof UniformRealDistribution) { return "Uniform(" + dist.getSupportLowerBound() + "," + dist.getSupportUpperBound() + ")"; } else if (dist instanceof NormalDistribution) { NormalDistribution dist2 = (NormalDistribution) dist; return "Normal(" + dist2.getMean() + "," + dist2.getStandardDeviation() + ")"; } else { return dist.toString(); } }
From source file:edu.cmu.tetrad.sem.GeneralizedSemEstimator.java
public GeneralizedSemIm estimate2(GeneralizedSemPm pm, DataSet data) { GeneralizedSemIm estIm = new GeneralizedSemIm(pm); MyContext context = new MyContext(); List<Node> nodes = pm.getGraph().getNodes(); nodes.removeAll(pm.getErrorNodes()); List<String> parameters = new ArrayList<>(pm.getParameters()); LikelihoodFittingFunction5 likelihoodFittingFunction = new LikelihoodFittingFunction5(pm, parameters, nodes, data, context);/*from w w w .j a v a2 s. c om*/ double[] values = new double[parameters.size()]; for (int j = 0; j < parameters.size(); j++) { Expression expression = pm.getParameterEstimationInitializationExpression(parameters.get(j)); RealDistribution dist = expression.getRealDistribution(context); if (dist != null) { double lb = dist.getSupportLowerBound(); double up = dist.getSupportUpperBound(); values[j] = expression.evaluate(context); if (values[j] < lb) values[j] = lb; if (values[j] > up) values[j] = up; } else { values[j] = expression.evaluate(context); } } double[] point = optimize(likelihoodFittingFunction, values, 1); for (int j = 0; j < parameters.size(); j++) { estIm.setParameterValue(parameters.get(j), point[j]); } // MultiGeneralAndersonDarlingTest test = new MultiGeneralAndersonDarlingTest(allResiduals, allDistributions); // System.out.println("Multi AD A^2 = " + test.getASquared()); // System.out.println("Multi AD A^2-Star = " + test.getASquaredStar()); // System.out.println("Multi AD p = " + test.getP()); return estIm; }