Determine quantiles of a PoissonBinomial distribution
Source:R/PoissonBinomial.R
quantile.PoissonBinomial.Rd
quantile()
is the inverse of cdf()
.
Usage
# S3 method for class 'PoissonBinomial'
quantile(
x,
probs,
drop = TRUE,
elementwise = NULL,
lower.tail = TRUE,
log.p = FALSE,
verbose = TRUE,
...
)
Arguments
- x
A
PoissonBinomial
object created by a call toPoissonBinomial()
.- probs
A vector of probabilities.
- drop
logical. Shoul the result be simplified to a vector if possible?
- elementwise
logical. Should each distribution in
x
be evaluated at all elements ofprobs
(elementwise = FALSE
, yielding a matrix)? Or, ifx
andprobs
have the same length, should the evaluation be done element by element (elementwise = TRUE
, yielding a vector)? The default ofNULL
means thatelementwise = TRUE
is used if the lengths match and otherwiseelementwise = FALSE
is used.- lower.tail, log.p, ...
- verbose
logical. Should a warning be issued if the normal approximation is applied because the PoissonBinomial package is not installed?
Value
In case of a single distribution object, either a numeric
vector of length probs
(if drop = TRUE
, default) or a matrix
with
length(probs)
columns (if drop = FALSE
). In case of a vectorized
distribution object, a matrix with length(probs)
columns containing all
possible combinations.
Examples
set.seed(27)
X <- PoissonBinomial(0.5, 0.3, 0.8)
X
#> [1] "PoissonBinomial(p1 = 0.5, p2 = 0.3, p3 = 0.8)"
mean(X)
#> [1] 1.6
variance(X)
#> [1] 0.62
skewness(X)
#> [1] -0.02458067
kurtosis(X)
#> [1] -0.4505723
random(X, 10)
#> [1] 0 2 3 2 2 2 2 2 2 2
pdf(X, 2)
#> [1] 0.43
log_pdf(X, 2)
#> [1] -0.8439701
cdf(X, 2)
#> [1] 0.88
quantile(X, 0.8)
#> [1] 2
cdf(X, quantile(X, 0.8))
#> [1] 0.88
quantile(X, cdf(X, 2))
#> [1] 2
## equivalent definitions of four Poisson binomial distributions
## each summing up three Bernoulli probabilities
p <- cbind(
p1 = c(0.1, 0.2, 0.1, 0.2),
p2 = c(0.5, 0.5, 0.5, 0.5),
p3 = c(0.8, 0.7, 0.9, 0.8))
PoissonBinomial(p)
#> [1] "PoissonBinomial(p1 = 0.1, p2 = 0.5, p3 = 0.8)"
#> [2] "PoissonBinomial(p1 = 0.2, p2 = 0.5, p3 = 0.7)"
#> [3] "PoissonBinomial(p1 = 0.1, p2 = 0.5, p3 = 0.9)"
#> [4] "PoissonBinomial(p1 = 0.2, p2 = 0.5, p3 = 0.8)"
PoissonBinomial(p[, 1], p[, 2], p[, 3])
#> [1] "PoissonBinomial(p1 = 0.1, p2 = 0.5, p3 = 0.8)"
#> [2] "PoissonBinomial(p1 = 0.2, p2 = 0.5, p3 = 0.7)"
#> [3] "PoissonBinomial(p1 = 0.1, p2 = 0.5, p3 = 0.9)"
#> [4] "PoissonBinomial(p1 = 0.2, p2 = 0.5, p3 = 0.8)"
PoissonBinomial(p[, 1:2], p[, 3])
#> [1] "PoissonBinomial(p1 = 0.1, p2 = 0.5, p3 = 0.8)"
#> [2] "PoissonBinomial(p1 = 0.2, p2 = 0.5, p3 = 0.7)"
#> [3] "PoissonBinomial(p1 = 0.1, p2 = 0.5, p3 = 0.9)"
#> [4] "PoissonBinomial(p1 = 0.2, p2 = 0.5, p3 = 0.8)"