Description Details Value Author(s) References See Also Examples

These are random sample generators for 22 different continuous distributions which are not readily available as `Distributions`

in **R**. Some of them are implemented in other specialized packages (i.e. `rsn`

in package 'sn' or `rtrapezoid`

in package 'trapezoid'), but here they are collated in a way that makes them easily accessible for Monte Carlo-based uncertainty propagation.

Random samples can be drawn from the following distributions:

1) Skewed-normal distribution: `propagate:::rsn(n, location = 0, scale = 1, shape = 0)`

2) Generalized normal distribution: `propagate:::rgnorm(n, alpha = 1, xi = 1, kappa = -0.1)`

3) Scaled and shifted t-distribution: `propagate:::rst(n, mean = 0, sd = 1, df = 2)`

4) Gumbel distribution: `propagate:::rgumbel(n, location = 0, scale = 1)`

5) Johnson SU distribution: `propagate:::rJSU(n, xi = 0, lambda = 1, gamma = 1, delta = 1)`

6) Johnson SB distribution: `propagate:::rJSB(n, xi = 0, lambda = 1, gamma = 1, delta = 1)`

7) 3P Weibull distribution: `propagate:::rweibull2(n, location = 0, shape = 1, scale = 1)`

8) 4P Beta distribution: `propagate:::rbeta2(n, alpha1 = 1, alpha2 = 1, a = 0, b = 0)`

9) Triangular distribution: `propagate:::rtriang(n, a = 0, b = 1, c = 0.5)`

10) Trapezoidal distribution: `propagate:::rtrap(n, a = 0, b = 1, c = 2, d = 3)`

11) Laplacian distribution: `propagate:::rlaplace(n, mean = 0, sigma = 1)`

12) Arcsine distribution: `propagate:::rarcsin(n, a = 2, b = 1)`

13) von Mises distribution: `propagate:::rmises(n, mu = 1, kappa = 3)`

14) Curvilinear Trapezoidal distribution: `propagate:::rctrap(n, a = 0, b = 1, d = 0.1)`

15) Generalized trapezoidal distribution:

`propagate:::rgtrap(n, min = 0, mode1 = 1/3, mode2 = 2/3, max = 1, n1 = 2, n3 = 2, alpha = 1)`

16) Inverse Gaussian distribution: `propagate:::rinvgauss(n, mean = 1, dispersion = 1)`

17) Generalized Extreme Value distribution: `propagate:::rgevd(n, loc = 0, scale = 1, shape = 0)`

with `n`

= number of samples.

18) Inverse Gamma distribution: `propagate:::rinvgamma(n, shape = 1, scale = 5)`

19) Rayleigh distribution: `propagate:::rrayleigh(n, mu = 1, sigma = 1)`

20) Burr distribution: `propagate:::rburr(n, k = 1)`

21) Chi distribution: `propagate:::rchi(n, nu = 5)`

22) Inverse Chi-Square distribution: `propagate:::rinvchisq(n, nu = 5)`

23) Cosine distribution: `propagate:::rcosine(n, mu = 5, sigma = 1)`

1) - 12), 17) - 22) use the inverse cumulative distribution function as mapping functions for `runif`

(**Inverse Transform Method**):

(1) *U \sim \mathcal{U}(0, 1)*

(2) *Y = F^{-1}(U, β)*

16) uses binomial selection from a *χ^2*-distribution.

13) - 15), 23) employ "Rejection Sampling" using a uniform envelope distribution (**Acceptance Rejection Method**):

(1) Find *F_{max} = \max(F([x_{min}, x_{max}], β)*

(2) *U_{max} = 1/(x_{max} - x_{min})*

(3) *A = F_{max}/U_{max}*

(4) *U \sim \mathcal{U}(0, 1)*

(5) *X \sim \mathcal{U}(x_{min}, x_{max})*

(6) *Y \iff U ≤ A \cdot \mathcal{U}(X, x_{min}, x_{max})/F(X, β)*

These four distributions are coded in a vectorized approach and are hence not much slower than implementations in C/C++ (0.2 - 0.5 sec for 100000 samples; 3 GHz Quadcore processor, 4 GByte RAM). The code for the random generators is in file "distr-samplers.R".

A vector with `n`

samples from the corresponding distribution.

Andrej-Nikolai Spiess

**Inverse CDFs were taken from:**

"The Ultimate Univariate Probability Distribution Explorer"

http://blog.wolfram.com/data/uploads/2013/02/ProbabilityDistributionExplorer.zip.

**Rejection Sampling in R:**

Rejection Sampling.

https://www.r-bloggers.com/rejection-sampling/.

An example of rejection sampling.

http://www.mas.ncl.ac.uk/~ndjw1/teaching/sim/reject/circ.html.

**Rejection Sampling in general:**

Non-uniform random variate generation.

Devroye L.

Springer-Verlag, New York (1986).

**Distributions:**

Continuous univariate distributions, Volume 1.

Johnson NL, Kotz S and Balakrishnan N.

*Wiley Series in Probability and Statistics, 2.ed* (2004).

See also `propagate`

, in which GUM 2008 Supplement 1 examples use these distributions.

1 2 3 4 5 6 7 8 9 10 11 |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.