Example usage for org.apache.commons.math3.distribution RealDistribution getSupportUpperBound

List of usage examples for org.apache.commons.math3.distribution RealDistribution getSupportUpperBound

Introduction

In this page you can find the example usage for org.apache.commons.math3.distribution RealDistribution getSupportUpperBound.

Prototype

double getSupportUpperBound();

Source Link

Document

Access the upper bound of the support.

Usage

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;
}