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 ) |