Probability Density Functions - NAVADMC/ADSM GitHub Wiki
The ADSM team has prepared a detailed explanation of all the types of Probability Density Functions (PDFs) used in ADSM.
Download Probability Density Functions.docx
Naming of PDF parameters is inconsistent between reference guides.
- The XML parameter file format used by NAADSM adopted its naming from the GNU Scientific Library.
- The database fields in NAADSM/ADSM adopted their naming from Risk Analysis: A Quantitative Guide, 2nd edition, by Vose.
- The graphical displays in ADSM use the functions from SciPy.
The table below shows how the parameter names match up. In some cases, transformations are required.
- When there is an expression in the “ADSM Database” column, the expression assumes we are taking the parameters from NAADSM XML and placing them into the database when importing a NAADSM legacy scenario.
- When there is an expression in the “SciPy” column, the expression assumes we are taking the parameters from the ADSM database and creating a SciPy object. SciPy uses a mix of positional and named arguments.
| PDF Type | NAADSM XML | ADSM Database | SciPy |
|---|---|---|---|
| Bernoulli |
|
|
scipy.stats.bernoulli( p ) |
| Beta |
|
|
scipy.stats.beta( alpha, alpha2, loc=min, scale=max-min ) |
| Beta-pert |
|
|
d = (min + 4*mode + max)/6 alpha = 6*((d - min)/(max - min)) beta = 6*((max - d)/(max - min)) scipy.stats.beta( alpha, beta, loc=min, scale=max-min ) |
| Binomial |
|
|
scipy.stats.binom( s, p ) |
| Discrete Uniform |
|
|
scipy.stats.randint( min, max ) |
| Exponential |
|
|
scipy.stats.expon( scale=mean ) |
| Fixed Value | no parameter name |
|
Not offered in SciPy? Use a narrow uniform instead |
| Gamma |
|
|
scipy.stats.gamma( alpha, scale=beta, loc=0 ) |
| Gaussian |
|
|
scipy.stats.norm( loc=mean, scale=std_dev ) |
| Histogram | |||
| Hypergeometric |
|
|
scipy.stats.hypergeom( m, d, n ) |
| Inverse Gaussian |
|
|
Shape/lambda parameter not supported in SciPy? |
| Logistic |
|
|
scipy.stats.logistic( loc=location, scale=scale ) |
| Log-logistic |
|
|
scipy.stats.fisk( shape, loc=location, scale=scale ) |
| Lognormal |
|
|
zeta = ln(mean²/sqrt(std_dev²+mean²)) sigma = sqrt(ln((std_dev²+mean²)/mean²)) scipy.stats.lognorm( sigma, scale=exp(zeta) ) |
| Negative Binomial |
|
|
scipy.stats.nbinom( s, p ) |
| Pareto |
|
|
scipy.stats.pareto( theta, scale=a ) |
| Pearson V |
|
|
scipy.stats.invgamma( alpha, scale=beta ) |
| Piecewise | |||
| Poisson |
|
|
scipy.stats.poisson( mean ) |
| Triangular |
|
|
scipy.stats.triang( (mode-min)/(max-min), loc=min, scale=max-min ) |
| Uniform |
|
|
scipy.stats.uniform( loc=min, scale=max-min ) |
| Weibull |
|
|
scipy.stats.weibull_min( alpha, scale=beta ) |