List of usage examples for org.apache.commons.math.distribution PoissonDistributionImpl probability
public double probability(int x)
From source file:dr.math.distributions.PoissonDistribution.java
public static double pdf(double x, double mean) { PoissonDistributionImpl dist = new PoissonDistributionImpl(mean); return dist.probability(x); }
From source file:dr.math.distributions.PoissonDistribution.java
public static double logPdf(double x, double mean) { PoissonDistributionImpl dist = new PoissonDistributionImpl(mean); double pdf = dist.probability(x); if (pdf == 0 || Double.isNaN(pdf)) { // bad estimate return x * Math.log(mean) - Poisson.gammln(x + 1) - mean; }/*from w w w . ja va 2s. c o m*/ return Math.log(pdf); }
From source file:juicebox.tools.utils.common.ArrayTools.java
/** * poisson.pdf(k) = exp(-mu) * mu**k / k! * * @param index// w w w .j ava 2 s.co m * @param width * @return */ public static double[] generatePoissonPMF(int index, int width) { double mu = Math.pow(2.0, (index + 1.0) / 3.0); double[] poissonPMF = new double[width]; PoissonDistributionImpl poissonDistribution = new PoissonDistributionImpl(mu); // use dynamic programming to grow poisson PMF for (int k = 0; k < width; k++) { poissonPMF[k] = poissonDistribution.probability(k); // the total is for scaling } return poissonPMF; }
From source file:desmoj.core.dist.DiscreteDistPoisson.java
/** * Abstract method to map a double <code>p</code> from 0...1 to the * distribution's domain by determining the value x that satisfies * <code>P(X < x) = p</code>. * //from w w w. j a v a2 s .co m * @param p double: A value between 0 and 1 * * @return Long : The value x that satisfies <code>P(X < x) = p</code> */ public Long getInverseOfCumulativeProbabilityFunction(double p) { if (p == 1.0) return Long.MAX_VALUE; // should be infinity, can't get closer PoissonDistributionImpl poi = new PoissonDistributionImpl(this.getMean()); Long x = 0l; double cummulative_prob = 0; do { cummulative_prob += poi.probability(x); if (cummulative_prob >= p) return x; x++; } while (x < 10000); return Long.MAX_VALUE; // wrong, just an approximation }