Probability density functions - NAVADMC/ADSM GitHub Wiki

Probability Density Function White Paper

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
  • p
  • p
scipy.stats.bernoulli(
 p
)
Beta
  • alpha
  • beta
  • location
  • scale
  • alpha
  • alpha2
  • min
  • max
scipy.stats.beta(
 alpha,
 alpha2,
 loc=min,
 scale=max-min
)
Beta-pert
  • min
  • mode
  • max
  • min
  • mode
  • max
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
  • n
  • p
  • s
  • p
scipy.stats.binom(
 s,
 p
)
Discrete Uniform
  • min
  • max
  • min
  • max
scipy.stats.randint(
 min,
 max
)
Exponential
  • mean
  • mean
scipy.stats.expon(
 scale=mean
)
Fixed Value no parameter name
  • mode
Not offered in SciPy? Use a narrow uniform instead
Gamma
  • alpha
  • beta
  • alpha
  • beta
scipy.stats.gamma(
 alpha,
 scale=beta,
 loc=0
)
Gaussian
  • mean
  • stddev
  • mean
  • std_dev
scipy.stats.norm(
 loc=mean,
 scale=std_dev
)
Histogram
Hypergeometric
  • d
  • m
  • n
  • d
  • m
  • n
scipy.stats.hypergeom(
 m,
 d,
 n
)
Inverse Gaussian
  • mu
  • lambda
  • mean
  • shape
Shape/lambda parameter not supported in SciPy?
Logistic
  • location
  • scale
  • location
  • scale
scipy.stats.logistic(
 loc=location,
 scale=scale
)
Log-logistic
  • location
  • scale
  • shape
  • location
  • scale
  • shape
scipy.stats.fisk(
 shape,
 loc=location,
 scale=scale
)
Lognormal
  • zeta
  • sigma
  • mean = exp( zeta + sigma2/2 )
  • std_dev = sqrt(exp( 2*zeta + sigma2 ) * (exp(sigma2) - 1))
zeta = ln(mean²/sqrt(std_dev²+mean²))

sigma = sqrt(ln((std_dev²+mean²)/mean²))

scipy.stats.lognorm(
 sigma,
 scale=exp(zeta)
)
Negative Binomial
  • s
  • p
  • s
  • p
scipy.stats.nbinom(
 s,
 p
)
Pareto
  • theta
  • a
  • theta
  • a
scipy.stats.pareto(
 theta,
 scale=a
)
Pearson V
  • alpha
  • beta
  • alpha
  • beta
scipy.stats.invgamma(
 alpha,
 scale=beta
)
Piecewise
Poisson
  • mean
  • mean
scipy.stats.poisson(
 mean
)
Triangular
  • a
  • c
  • b
  • min
  • mode
  • max
scipy.stats.triang(
 (mode-min)/(max-min),
 loc=min,
 scale=max-min
)
Uniform
  • a
  • b
  • min
  • max
scipy.stats.uniform(
 loc=min,
 scale=max-min
)
Weibull
  • alpha
  • beta
  • alpha
  • beta
scipy.stats.weibull_min(
 alpha,
 scale=beta
)
⚠️ **GitHub.com Fallback** ⚠️