naginterfaces.library.rand.dist_​beta

naginterfaces.library.rand.dist_beta(n, a, b, statecomm)[source]

dist_beta generates a vector of pseudorandom numbers taken from a beta distribution with parameters and .

For full information please refer to the NAG Library document for g05sb

https://www.nag.com/numeric/nl/nagdoc_27.1/flhtml/g05/g05sbf.html

Parameters
nint

, the number of pseudorandom numbers to be generated.

afloat

, the parameter of the beta distribution.

bfloat

, the parameter of the beta distribution.

statecommdict, RNG communication object, modified in place

RNG communication structure.

This argument must have been initialized by a prior call to init_repeat() or init_nonrepeat().

Returns
xfloat, ndarray, shape

The pseudorandom numbers from the specified beta distribution.

Raises
NagValueError
(errno )

On entry, .

Constraint: .

(errno )

On entry, .

Constraint: .

(errno )

On entry, .

Constraint: .

(errno )

On entry, [‘state’] vector has been corrupted or not initialized.

Notes

The beta distribution has PDF (probability density function)

One of four algorithms is used to generate the variates depending on the values of and . Let be the maximum and be the minimum of and . Then the algorithms are as follows:

  1. if , Johnk’s algorithm is used, see for example Dagpunar (1988). This generates the beta variate as , where and are uniformly distributed random variates;

  2. if , the algorithm BB given by Cheng (1978) is used. This involves the generation of an observation from a beta distribution of the second kind by the envelope rejection method using a log-logistic target distribution and then transforming it to a beta variate;

  3. if and , the switching algorithm given by Atkinson (1979) is used. The two target distributions used are and , along with the approximation to the switching parameter of ;

  4. in all other cases, Cheng’s BC algorithm (see Cheng (1978)) is used with modifications suggested by Dagpunar (1988). This algorithm is similar to BB, used when , but is tuned for small values of and .

One of the initialization functions init_repeat() (for a repeatable sequence if computed sequentially) or init_nonrepeat() (for a non-repeatable sequence) must be called prior to the first call to dist_beta.

References

Atkinson, A C, 1979, A family of switching algorithms for the computer generation of beta random variates, Biometrika (66), 141–5

Cheng, R C H, 1978, Generating beta variates with nonintegral shape parameters, Comm. ACM (21), 317–322

Dagpunar, J, 1988, Principles of Random Variate Generation, Oxford University Press

Hastings, N A J and Peacock, J B, 1975, Statistical Distributions, Butterworth