Variate Generation for Binomial Distribution
vbinom(n, size, prob, stream = NULL, antithetic = FALSE, asList = FALSE)
number of observations
number of trials (zero or more)
probability of success on each trial (0 prob
if NULL
(default), uses stats::runif
to generate uniform variates to invert via
stats::qbinom
;
otherwise, an integer in 1:25 indicates the rstream
stream
from which to generate uniform variates to invert via
stats::qbinom
;
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 binomial random variates
Parameterized quantile function
Parameterized title of distribution
Generates random variates from the binomial distribution.
Binomial 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::qbinom
is used to
invert the uniform(0,1) variate(s).
In this way, using vbinom
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 binomial distribution with parameters size
= prob
=
# NOT RUN {
set.seed(8675309)
# NOTE: following inverts rstream::rstream.sample using stats::qbinom
vbinom(3, size = 10, prob = 0.25)
set.seed(8675309)
# NOTE: following inverts rstream::rstream.sample using stats::qbinom
vbinom(3, 10, 0.25, stream = 1)
vbinom(3, 10, 0.25, stream = 2)
set.seed(8675309)
# NOTE: following inverts rstream::rstream.sample using stats::qbinom
vbinom(1, 10, 0.25, stream = 1)
vbinom(1, 10, 0.25, stream = 2)
vbinom(1, 10, 0.25, stream = 1)
vbinom(1, 10, 0.25, stream = 2)
vbinom(1, 10, 0.25, stream = 1)
vbinom(1, 10, 0.25, stream = 2)
set.seed(8675309)
variates <- vbinom(1000, 10, 0.25, stream = 1)
set.seed(8675309)
variates <- vbinom(1000, 10, 0.25, stream = 1, antithetic = TRUE)
# }
Run the code above in your browser using DataLab