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