Example usage for org.apache.commons.math.distribution IntegerDistribution inverseCumulativeProbability

List of usage examples for org.apache.commons.math.distribution IntegerDistribution inverseCumulativeProbability

Introduction

In this page you can find the example usage for org.apache.commons.math.distribution IntegerDistribution inverseCumulativeProbability.

Prototype

int inverseCumulativeProbability(double p) throws MathException;

Source Link

Document

For this distribution, X, this method returns the largest x such that P(X ≤ x) <= p.

Usage

From source file:org.apache.mahout.clustering.lda.TestLDAInference.java

/**
 * Generate random document vector/*from w  ww  .java2  s  .c om*/
 * 
 * @param numWords
 *          int number of words in the vocabulary
 * @param numWords
 *          E[count] for each word
 */
private Vector generateRandomDoc(int numWords, double sparsity) throws MathException {
    Vector v = new DenseVector(numWords);
    IntegerDistribution dist = new PoissonDistributionImpl(sparsity);
    for (int i = 0; i < numWords; i++) {
        // random integer
        v.setQuick(i, dist.inverseCumulativeProbability(random.nextDouble()) + 1);
    }
    return v;
}

From source file:org.apache.mahout.clustering.lda.TestMapReduce.java

/**
 * Generate random document vector/*from  w w w .  j a v a 2  s . c  o m*/
 * @param numWords int number of words in the vocabulary
 * @param numWords E[count] for each word
 */
private RandomAccessSparseVector generateRandomDoc(int numWords, double sparsity) throws MathException {
    RandomAccessSparseVector v = new RandomAccessSparseVector(numWords, (int) (numWords * sparsity));
    IntegerDistribution dist = new PoissonDistributionImpl(sparsity);
    for (int i = 0; i < numWords; i++) {
        // random integer
        v.set(i, dist.inverseCumulativeProbability(random.nextDouble()) + 1);
    }
    return v;
}

From source file:org.renjin.Distributions.java

private static double q(IntegerDistribution dist, double p, boolean lowerTail, boolean logP) {
    if (logP) {//from w  w  w  . j a v a2  s  .  c  o m
        p = Math.exp(p);
    }
    double q = 0;
    try {
        q = dist.inverseCumulativeProbability(p);
    } catch (IllegalArgumentException e) {
        return Double.NaN;
    } catch (MathException e) {
        return Double.NaN;
    } catch (MathRuntimeException e) {
        return Double.NaN;
    }
    if (!lowerTail) {
        q = -q;
    }
    return q;
}