Math::CDF - Generate probabilities and quantiles from several statistical probability functions
use Math::CDF;
$prob = &Math::CDF::pnorm(1.96)
;
if( not defined($z = &Math::CDF::qnorm(0.975)) )
{ die "qnorm()
failed"; }
or
use Math::CDF qw(:all)
;
$prob = pnorm(1.96)
;
This module provides a perl interface to the DCDFLIB. See the section on DCDFLIB for more information.
Functions are available for 7 continuous distributions (Beta, Chi-square, F, Gamma, Normal, Poisson and T-distribution) and for two discrete distributions (Binomial and Negative Binomial). Optional non-centrality parameters are available for the Chi-square, F and T-distributions. Cumulative probabilities are available for all 9 distributions and quantile functions are available for the 7 continuous distributions.
All cumulative probability function names begin with the character "p".
They give the probability of being less than or equal to the given value [ P(X <= x)
]
All quantile function names begin with the character q.
They give a value of x such that P(X <= x)
= p where the value of p is provided to the function.
Non-centrality parameters are always the last function argument when available. You do not need to supply the non-centrality parameter in which case it will be assumed to be 0.
All functions will return an undefined value if the function fails (probably due to parameters being out of allowed range) but will not otherwise generate an error message.
The user should check for valid output from the Math::CDF functions with the defined()
function as demonstrated in the SYNOPSIS section.
In all, 16 functions are available via Math::CDF:
pbeta(), qbeta() [Beta Distribution] pchisq(), qchisq() [Chi-square Distribution] pf(), qf() [F Distribution] pgamma(), qgamma() [Gamma Distribution] pnorm(), qnorm() [Standard Normal Dist] ppois(), qpois() [Poisson Distribution] pt(), qt() [T-distribution] pbinom() [Binomial Distribution] pnbinom() [Negative Binomial Distribution]
pbeta($x, $a, $b), qbeta($p, $a, $b)
Generates cumulative probabilities and quantiles from the Beta distribution. $x should be in the range of [0,1] and $p should be in [0,1]. $a and $b are parameters of the beta distribution. Both $a and $b must be in the range [0,Inf).
pchisq($x, $df, $ncp), qbeta($p, $df, $ncp)
Generates cumulative probabilities and quantiles from the Chi-square distribution. $x should be in the range of [0,Inf) and $p should be in [0,1]. $df is the degrees of freedom of the distribution and must be in the range (0,Inf). $ncp is the optional non-centrality parameter and must be in the range [0,Inf). The non-centrality parameter need not be specified and the calls pchisq(5, 5, 0.0)
and pchisq(5, 5)
will return identical values.
pf($x, $dfn, $dfd, $ncp), qf($p, $dfn, $dfd, $ncp)
Generates cumulative probabilities and quantiles from the F distribution. $x should be in the range of [0,Inf) and $p should be in [0,1]. $dfn and $dfd are the numerator and denominator degrees of freedom, respectively. Both must be in the range (0,Inf). $ncp is the optional non-centrality parameter and must be in the range [0,Inf). The non-centrality parameter need not be specified and the calls [CS]<pf(5, 2, 3, 0.0)> and [CS]<pf(5, 2, 3)> will return identical values.
pgamma($x, $shape, $scale), qgamma($p, $shape, $scale)
Generates cumulative probabilities and quantiles from the Gamma distribution. The gamma density is proportional to [CS]<$x**($shape - 1) * EXP(- $scale * $x)> $x should be in the range of [0,Inf) and $p should be in [0,1]. $shape and $scale are parameters of the Gamma distribution and both must be in the range (0,Inf).
pnorm($x), qnorm($p)
Generates cumulative probabilities and quantiles from the standard Normal distribution. $x should be in the range of (-Inf,Inf) and $p should be in [0,1].
ppois($x, $lambda), qpois($p, $lambda)
Generates cumulative probabilities and quantiles from the Poisson distribution. $x should be in the range of [0,Inf) and $p should be in [0,1]. $lambda is the parameter of the Poisson distribution and must be in the range [0,Inf).
pt($x, $df, $ncp), qt($p, $df, $ncp)
Generates cumulative probabilities and quantiles from the T distribution. $x should be in the range of (-Inf,Inf) and $p should be in [0,1]. $df is the degree of freedom of the distribution and must be in the range (0,Inf). $ncp is the optional non-centrality parameter and must be in the range (-Inf,Inf). The non-centrality parameter need not be specified and the calls [CS]<pt(0, 3, 0.0)> and [CS]<pt(0, 3)> will return identical values.
pbinom($x, $n, $p)
Generates cumulative probabilities from the Binomial distribution. This is the probability of having $x or fewer successes in $n trials when each trial has a $p probability of success. $x should be in the range of [0,$n], $n should be in the range (0,Inf) and $p should be in [0,1].
pnbinom($x, $n, $p)
Generates cumulative probabilities from the Negative Binomial distribution. The is the probability of having $x or fewer failures before the $n'th success when each trial has a $p probability of success. $x should be in the range of [0,Inf), $n should be in the range (0,Inf) and $p should be in [0,1].
DCDFLIB is a library of C routines for cumulative distribution functions, inverses, and other parameters written by Barry W. Brown, James Lovato and Kathy Russell of the Department of Biomathematics at The University of Texas M.D. Anderson Cancer Center in Houston Texas.
Version 1.1 of DCDFLIB is included with this distribution and can be downloaded via ftp from odin.mda.uth.tmc.edu as /pub/src/dcdflib.c-1.1.tar.gz. The library is also available in Fortran source.
Documentation for DCDFLIB is found in the cdflib/doc/ directory of the source distribution of Math::CDF
DCDFLIB has been put in the public domain. However, some of the Algorithms are from the ACM publication and is under their copyright. Generally this means that those algorithms can be distributed and used freely for non-commercial purposes. See the file cdflib/doc/README in the source distribution of Math::CDF for more information.
Environmental Statistics PO Box 563 Fountain City, WI 54629
Department of Biomathematics, Box 237 The University of Texas, M.D. Anderson Cancer Center 1515 Holcombe Boulevard Houston, TX 77030