Last chance! 50% off unlimited learning
Sale ends in
Variate Generation for Gamma Distribution
vgamma(
n,
shape,
rate = 1,
scale = 1/rate,
stream = NULL,
antithetic = FALSE,
asList = FALSE
)
number of observations
Shape parameter
Alternate parameterization for scale
Scale parameter
if NULL
(default), uses stats::runif
to generate uniform variates to invert via
stats::qgamma
;
otherwise, an integer in 1:25 indicates the rstream
stream
from which to generate uniform variates to invert via
stats::qgamma
;
if FALSE
(default), inverts stats::runif
or
rstream::rstream.sample
; otherwise, uses
if FALSE
(default), output only the generated
random variates; otherwise, return a list with components suitable for
visualizing inversion. See return for details
If asList
is FALSE (default), return a vector of random variates.
Otherwise, return a list with components suitable for visualizing inversion, specifically:
A vector of generated U(0,1) variates
A vector of gamma random variates
Parameterized quantile function
Parameterized title of distribution
Generates random variates from the gamma distribution.
Gamma variates are generated by inverting uniform(0,1) variates
produced either by stats::runif
(if stream
is
NULL
) or by rstream::rstream.sample
(if stream
is not NULL
).
In either case, stats::qgamma
is used to
invert the uniform(0,1) variate(s).
In this way, using vgamma
provides a monotone and synchronized
binomial variate generator, although not particularly fast.
The stream indicated must be an integer between 1 and 25 inclusive.
The gamma distribution with parameters shape
= scale
=
for gamma()
and defined in its help.)
The population mean and variance are
# NOT RUN {
set.seed(8675309)
# NOTE: following inverts rstream::rstream.sample using stats::qgamma
vgamma(3, shape = 2, rate = 1)
set.seed(8675309)
# NOTE: following inverts rstream::rstream.sample using stats::qgamma
vgamma(3, 2, scale = 1, stream = 1)
vgamma(3, 2, scale = 1, stream = 2)
set.seed(8675309)
# NOTE: following inverts rstream::rstream.sample using stats::qgamma
vgamma(1, 2, scale = 1, stream = 1)
vgamma(1, 2, scale = 1, stream = 2)
vgamma(1, 2, scale = 1, stream = 1)
vgamma(1, 2, scale = 1, stream = 2)
vgamma(1, 2, scale = 1, stream = 1)
vgamma(1, 2, scale = 1, stream = 2)
set.seed(8675309)
variates <- vgamma(1000, 2, scale = 1, stream = 1)
set.seed(8675309)
variates <- vgamma(1000, 2, scale = 1, stream = 1, antithetic = TRUE)
# }
Run the code above in your browser using DataLab