[Stable]

Bernoulli distributions are used to represent events like coin flips when there is single trial that is either successful or unsuccessful. The Bernoulli distribution is a special case of the Binomial() distribution with n = 1.

dist_bernoulli(prob)

Arguments

prob

The probability of success on each trial, prob can be any value in [0, 1].

Details

We recommend reading this documentation on https://pkg.mitchelloharawild.com/distributional/, where the math will render nicely.

In the following, let \(X\) be a Bernoulli random variable with parameter p = \(p\). Some textbooks also define \(q = 1 - p\), or use \(\pi\) instead of \(p\).

The Bernoulli probability distribution is widely used to model binary variables, such as 'failure' and 'success'. The most typical example is the flip of a coin, when \(p\) is thought as the probability of flipping a head, and \(q = 1 - p\) is the probability of flipping a tail.

Support: \(\{0, 1\}\)

Mean: \(p\)

Variance: \(p \cdot (1 - p) = p \cdot q\)

Probability mass function (p.m.f):

$$ P(X = x) = p^x (1 - p)^{1-x} = p^x q^{1-x} $$

Cumulative distribution function (c.d.f):

$$ P(X \le x) = \left \{ \begin{array}{ll} 0 & x < 0 \\ 1 - p & 0 \leq x < 1 \\ 1 & x \geq 1 \end{array} \right. $$

Moment generating function (m.g.f):

$$ E(e^{tX}) = (1 - p) + p e^t $$

Examples

dist <- dist_bernoulli(prob = c(0.05, 0.5, 0.3, 0.9, 0.1))

dist
#> <distribution[5]>
#> [1] Bernoulli(0.05) Bernoulli(0.5)  Bernoulli(0.3)  Bernoulli(0.9) 
#> [5] Bernoulli(0.1) 
mean(dist)
#> [1] 0.05 0.50 0.30 0.90 0.10
variance(dist)
#> [1] 0.0475 0.2500 0.2100 0.0900 0.0900
skewness(dist)
#> [1]  4.1294832  0.0000000  0.8728716 -2.6666667  2.6666667
kurtosis(dist)
#> [1] 15.052632 -2.000000 -1.238095  5.111111  5.111111

generate(dist, 10)
#> [[1]]
#>  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
#> 
#> [[2]]
#>  [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
#> 
#> [[3]]
#>  [1] FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
#> 
#> [[4]]
#>  [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE
#> 
#> [[5]]
#>  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
#> 

density(dist, 2)
#> [1] 0 0 0 0 0
density(dist, 2, log = TRUE)
#> [1] -Inf -Inf -Inf -Inf -Inf

cdf(dist, 4)
#> [1] 1 1 1 1 1

quantile(dist, 0.7)
#> [1] FALSE  TRUE FALSE  TRUE FALSE