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

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

Introduction

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

Prototype

double getSupportLowerBound();

Source Link

Document

Access the lower 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).//  www  .  j a v a  2 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);//  ww w. j a va 2 s  .co m

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