Package 'rBeta2009'

Title: The Beta Random Number and Dirichlet Random Vector Generating Functions
Description: Contains functions to generate random numbers from the beta distribution and random vectors from the Dirichlet distribution.
Authors: Ching-Wei Cheng [aut, cre], Ying-Chao Hung [aut], Narayanaswamy Balakrishnan [aut]
Maintainer: Ching-Wei Cheng <[email protected]>
License: GPL-2
Version: 1.0.1
Built: 2025-03-05 03:15:27 UTC
Source: https://github.com/cran/rBeta2009

Help Index


The Beta Random Number Generating Function

Description

Random generation for the beta distribution with parameters shape1 and shape2.

Usage

rbeta(n, shape1, shape2)

Arguments

n

Number of beta random numbers to generate. If length(n) > 1, the length is taken to be the number required.

shape1, shape2

Positive shape parameters.

Details

The beta distribution with parameters shape1=a= a and shape2=b= b has density

Γ(a+b)Γ(a)Γ(b)xa1(1x)b1\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} x^{a-1} (1-x)^{b-1}

for a>0,b>0a > 0, b > 0 and 0x10 \le x \le 1.

The mean is aa+b\frac{a}{a+b} and the variance is ab(a+b)2(a+b+1)\frac{ab}{(a+b)^2 (a+b+1)}.

rbeta basically utilizes the following guideline primarily proposed by Hung et al. (2009) for generating beta random numbers.

  • When max(max(shape1,,shape2)<1) < 1, the B00 algorithm (Sakasegawa, 1983) is used;

  • When shape1<1<< 1 <shape2 or shape1>1>> 1 >shape2, the B01 algorithm (Sakasegawa, 1983) is used;

  • When min(min(shape1,,shape1)>1) > 1, the B4PE algorithm (Schmeiser and Babu, 1980) is used if one papameter is close to 1 and the other is large (say >4> 4); otherwise, the BPRS algorithm (Zechner and Stadlober, 1993) is used.

Value

rbeta generates beta random numbers.

Author(s)

Ching-Wei Cheng <[email protected]>,
Ying-Chao Hung <[email protected]>,
Narayanaswamy Balakrishnan <[email protected]>

Source

rbeta uses a C translation of

Y. C. Hung and N. Balakrishnan and Y. T. Lin (2009), Evaluation of beta generation algorithms, Communications in Statistics - Simulation and Computation, 38:750–770.

References

Y. C. Hung and N. Balakrishnan and Y. T. Lin (2009), Evaluation of beta generation algorithms, Communications in Statistics - Simulation and Computation, 38, 750–770.

H. Sakasegawa (1983), Stratified rejection and squeeze method for generating beta random numbers, Annals of the Institute Statistical Mathematics, 35, 291–302.

B.W. Schmeiser and A.J.G. Babu (1980), Beta variate generation via exponential majorizing functions, Operations Research, 28, 917–926.

H. Zechner and E. Stadlober (1993), Generating beta variates via patchwork rejection, Computing, 50, 1–18.

See Also

rbeta in package stats.

Examples

library(rBeta2009)
 rbeta(10, 0.7, 1.5)

The Dirichlet Random Vector Generating Function

Description

The function to generate random vectors from the Dirichlet distribution.

Usage

rdirichlet(n, shape)

Arguments

n

Number of Dirichlet random vectors to generate. If length(n) > 1, the length is taken to be the number required.

shape

Vector with length(shape) >= 2 containing positive shape parameters of the Dirichlet distribution. If length(shape) = 2, it reduces to the beta generating function.

Details

The Dirichlet distribution is the multidimensional generalization of the beta distribution.

A kk-variate Dirichlet random vector (x1,,xk)(x_1,\ldots,x_k) has the joint probability density function

Γ(α1++αk+1)Γ(α1)Γ(αk+1)x1α11xkαk1(1i=1kxi)αk+11,\frac{\Gamma(\alpha_1+\dots+\alpha_{k+1})}{\Gamma(\alpha_1)\dots\Gamma(\alpha_{k+1})} x_1^{\alpha_1-1}\dots x_k^{\alpha_k-1}\left(1-\sum_{i=1}^k x_i\right)^{\alpha_{k+1}-1},

where xi0x_i \ge 0 for all i=1,,ki = 1, \ldots, k, i=1kxi1\sum_{i=1}^k x_i \leq 1, and α1,,αk+1\alpha_1, \ldots, \alpha_{k+1} are positive shape parameters.

rdirichlet generates the Dirichlet random vector by utilizing the transformation method based on beta variates and three guidelines introduced by Hung et al. (2011). The three guidelines include: how to choose the fastest beta generation algorithm, how to best re-order the shape parameters, and how to reduce the amount of arithmetic operations.

Value

rdirichlet() returns a matrix with n rows, each containing a single Dirichlet random vector.

Author(s)

Ching-Wei Cheng <[email protected]>,
Ying-Chao Hung <[email protected]>,
Narayanaswamy Balakrishnan <[email protected]>

Source

rdirichlet uses a C translation of

Y. C. Hung and N. Balakrishnan and C. W. Cheng (2011), Evaluation of algorithms for generating Dirichlet random vectors, Journal of Statistical Computation and Simulation, 81, 445–459.

References

Y. C. Hung and N. Balakrishnan and C. W. Cheng (2011), Evaluation of algorithms for generating Dirichlet random vectors, Journal of Statistical Computation and Simulation, 81, 445–459.

See Also

rdirichlet in package MCMCpack.
rdirichlet in package gtools.

Examples

library(rBeta2009)
rdirichlet(10, c(1.5, 0.7, 5.2, 3.4))