Package edu.cmu.tetrad.util
Class ProbUtils
java.lang.Object
edu.cmu.tetrad.util.ProbUtils
Implements a number of important functions from probability and statistics.> 0
We don't know who wrote this class; we didn't. All we added was the documentation. -Joe Ramsey, jdramsey@andrew.cmu.edu> 0
- Author:
- Unknown, but thanks
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic intbernoulliRand(double p) static doublebetaCdf(double x, double pin, double qin) Incomplete Beta function.static doublebetaPdf(double x, double a, double b) static doublebetaQuantile(double alpha, double p, double q) static doublebetaRand(double a, double b) Beta distribution random generator.static doublebinomialCdf(int k, int n, double p) Binomial cumulative distribution function.static doublebinomialPmf(int k, int n, double p) static intbinomialQuantile(double x, int n, double p) static intbinomialRand(int n, double pp) Binomial random generator from Numerical Recipesstatic doublebiNormalCdf(double ah, double ak, double r) Bivariate normal CDF.static doublecauchyCdf(double x) Cauchy CDFstatic doublecauchyPdf(double x) static doublecauchyQuantile(double x) static doubleCauchy random generator.static doublechisqCdf(double x, double df) static doublechisqPdf(double x, double v) static doublechisqQuantile(double p, double v) static doublechisqRand(double df) Chi square random generator.static doublefCdf(double x, double df1, double df2) F CDF.static doublefPdf(double x, double a, double b) static doublefQuantile(double p, double df1, double df2) static doublefRand(double ndf, double ddf) F distribution random generator.static doublegammaCdf(double a, double x) compute complementary gamma cdf by its continued fraction expansionstatic doublegammaPdf(double x, double a) static doublegammaQuantile(double a, double p) static doublegammaRand(double a) Gamma random generator.static doublelngamma(double xx) This is a more literal (that is, exact) copy of the log gamma method from Numerical Recipes than the following one.static doublelogbeta(double p, double q) Calculates the log beta function of p and q.static doublemultinormalProb(double[] a, double[] b, double[][] cov) Compute the probability over a rectangular region with correlation matrix c.static doublenormalCdf(double y) Normal cumulative distribution function (the value which results by integrating the normal distribution function from negative infinity up to y).static doublenormalPdf(double x) static doublenormalQuantile(double p) static doubleNormal random generatorstatic doublepoissonCdf(int k, double y) static doublepoissonPmf(int k, double lambda) static intpoissonQuantile(double x, double l) static intpoissonRand(double xm) Poisson random generator from Numerical Recipesstatic doubletCdf(double x, double df) CACM Algorithm 395, by G.static doubletPdf(double x, double a) static doubletQuantile(double pp, double n) CACM Algorithm 396, by G.static doubletRand(double df) T distribution random generator.static doublestatic voiduniformSeeds(long a, long b) 
- 
Constructor Details- 
ProbUtilspublic ProbUtils()
 
- 
- 
Method Details- 
normalCdfpublic static double normalCdf(double y) Normal cumulative distribution function (the value which results by integrating the normal distribution function from negative infinity up to y).- Parameters:
- y- the upper limit of integration.
- Returns:
- the area accumulated in the integration.
 
- 
lngammapublic static double lngamma(double xx) This is a more literal (that is, exact) copy of the log gamma method from Numerical Recipes than the following one. It was created by cutting and pasting from the PDF version of the book and then converting C syntax to Java. The static double array above goes with this. Converted to Java by Frank Wimberly- Returns:
- the value ln[?(xx)] for xx > 0
 
- 
logbetapublic static double logbeta(double p, double q) Calculates the log beta function of p and q.
- 
betaCdfpublic static double betaCdf(double x, double pin, double qin) Incomplete Beta function. Translated from FORTRAN july 1977 edition. w. fullerton, c3, los alamos scientific lab. based on bosten and battiste, remark on algorithm 179, comm. acm, v 17, p 153, (1974).- Parameters:
- x- upper limit of integration. x must be in (0,1) inclusive.
- pin- first beta distribution parameter. p must be gt 0.0.
- qin- second beta distribution parameter. q must be gt 0.0.
- Returns:
- result.
 
- 
binomialCdfpublic static double binomialCdf(int k, int n, double p) Binomial cumulative distribution function.
- 
cauchyCdfpublic static double cauchyCdf(double x) Cauchy CDF
- 
fCdfpublic static double fCdf(double x, double df1, double df2) F CDF.
- 
gammaCdfpublic static double gammaCdf(double a, double x) compute complementary gamma cdf by its continued fraction expansion
- 
chisqCdfpublic static double chisqCdf(double x, double df) 
- 
poissonCdfpublic static double poissonCdf(int k, double y) 
- 
tCdfpublic static double tCdf(double x, double df) CACM Algorithm 395, by G. W. Hill
- 
betaQuantilepublic static double betaQuantile(double alpha, double p, double q) 
- 
binomialQuantilepublic static int binomialQuantile(double x, int n, double p) 
- 
cauchyQuantilepublic static double cauchyQuantile(double x) 
- 
chisqQuantilepublic static double chisqQuantile(double p, double v) 
- 
fQuantilepublic static double fQuantile(double p, double df1, double df2) 
- 
gammaQuantilepublic static double gammaQuantile(double a, double p) 
- 
normalQuantilepublic static double normalQuantile(double p) 
- 
poissonQuantilepublic static int poissonQuantile(double x, double l) 
- 
tQuantilepublic static double tQuantile(double pp, double n) CACM Algorithm 396, by G. W. Hill
- 
betaPdfpublic static double betaPdf(double x, double a, double b) 
- 
binomialPmfpublic static double binomialPmf(int k, int n, double p) 
- 
cauchyPdfpublic static double cauchyPdf(double x) 
- 
chisqPdfpublic static double chisqPdf(double x, double v) 
- 
fPdfpublic static double fPdf(double x, double a, double b) 
- 
gammaPdfpublic static double gammaPdf(double x, double a) 
- 
normalPdfpublic static double normalPdf(double x) 
- 
poissonPmfpublic static double poissonPmf(int k, double lambda) 
- 
tPdfpublic static double tPdf(double x, double a) 
- 
uniformSeedspublic static void uniformSeeds(long a, long b) 
- 
uniformRandpublic static double uniformRand()
- 
bernoulliRandpublic static int bernoulliRand(double p) 
- 
poissonRandpublic static int poissonRand(double xm) Poisson random generator from Numerical Recipes
- 
binomialRandpublic static int binomialRand(int n, double pp) Binomial random generator from Numerical Recipes
- 
normalRandpublic static double normalRand()Normal random generator
- 
cauchyRandpublic static double cauchyRand()Cauchy random generator.
- 
gammaRandpublic static double gammaRand(double a) Gamma random generator.
- 
chisqRandpublic static double chisqRand(double df) Chi square random generator.
- 
tRandpublic static double tRand(double df) T distribution random generator.
- 
betaRandpublic static double betaRand(double a, double b) Beta distribution random generator.
- 
fRandpublic static double fRand(double ndf, double ddf) F distribution random generator.
- 
biNormalCdfpublic static double biNormalCdf(double ah, double ak, double r) Bivariate normal CDF. Adapted from statlib, file general/gaut.c, by Ajay Shah. Adaptation for Java found in http://www.geocities.com/optionpage/utility.html --November 1st 2003, Ricardo Silva- Parameters:
- ah- upper bound 1
- ak- upper bound 1
- r- correlation
- Returns:
- Prob(x1 ≤ ah, x2 ≤ ak)
 
- 
multinormalProbpublic static double multinormalProb(double[] a, double[] b, double[][] cov) Compute the probability over a rectangular region with correlation matrix c. Algorithm extracted from Alan Genz: Numerical Computation of Multivariate Normal Probabilities; revised version published in J. Comp. Graph Stat. 1 (1992), pp. 141-149. http://www.math.wsu.edu/faculty/genz/homepage Warning: this method has the side effect of changing the order of the elements in the arrays given as input. --November 3st 2003, Ricardo Silva- Parameters:
- a- lower bounds (use Double.NEGATIVE_INFINITY if necessary)
- b- upper bounds (use Double.POSITIVE_INFINITY if necessary)
 
 
-