Binary Distributions

Binary probability distributions have support on {0,1}, where 1 represents the value true and 0 the value false.

Bernoulli distribution

Probability mass function

If θ[0,1], then for y{0,1}, Bernoulli(y | θ)={θif y=1, and1θif y=0.

Distribution statement

y ~ bernoulli(theta)

Increment target log probability density with bernoulli_lupmf(y | theta).

Available since 2.0

Stan Functions

real bernoulli_lpmf(ints y | reals theta)
The log Bernoulli probability mass of y given chance of success theta

Available since 2.12

real bernoulli_lupmf(ints y | reals theta)
The log Bernoulli probability mass of y given chance of success theta dropping constant additive terms

Available since 2.25

real bernoulli_cdf(ints y | reals theta)
The Bernoulli cumulative distribution function of y given chance of success theta

Available since 2.0

real bernoulli_lcdf(ints y | reals theta)
The log of the Bernoulli cumulative distribution function of y given chance of success theta

Available since 2.12

real bernoulli_lccdf(ints y | reals theta)
The log of the Bernoulli complementary cumulative distribution function of y given chance of success theta

Available since 2.12

ints bernoulli_rng(reals theta)
Generate a Bernoulli variate with chance of success theta or an array of Bernoulli variates given an array of thetas of the same dimensions; may only be used in transformed data and generated quantities blocks. For a description of argument and return types, see section vectorized PRNG functions.

Available since 2.18

Bernoulli distribution, logit parameterization

Stan also supplies a direct parameterization in terms of a logit-transformed chance-of-success parameter. This parameterization is more numerically stable if the chance-of-success parameter is on the logit scale, as with the linear predictor in a logistic regression.

Probability mass function

If αR, then for y{0,1}, BernoulliLogit(y | α)=Bernoulli(y|logit1(α))={logit1(α)if y=1, and1logit1(α)if y=0.

Distribution statement

y ~ bernoulli_logit(alpha)

Increment target log probability density with bernoulli_logit_lupmf(y | alpha).

Available since 2.0

Stan Functions

real bernoulli_logit_lpmf(ints y | reals alpha)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha)

Available since 2.12

real bernoulli_logit_lupmf(ints y | reals alpha)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha) dropping constant additive terms

Available since 2.25

R bernoulli_logit_rng(reals alpha)
Generate a Bernoulli variate with chance of success logit1(α); may only be used in transformed data and generated quantities blocks. For a description of argument and return types, see section vectorized PRNG functions.

Available since 2.18

Bernoulli-logit generalized linear model (Logistic Regression)

Stan also supplies a single function for a generalized linear model with Bernoulli distribution and logit link function, i.e. a function for a logistic regression. This provides a more efficient implementation of logistic regression than a manually written regression in terms of a Bernoulli distribution and matrix multiplication.

Probability mass function

If xRnm,αRn,βRm, then for y{0,1}n, BernoulliLogitGLM(y | x,α,β)=1inBernoulli(yi | logit1(αi+xiβ))=1in{logit1(αi+1jmxijβj)if yi=1, and1logit1(αi+1jmxijβj)if yi=0.

Distribution statement

y ~ bernoulli_logit_glm(x, alpha, beta)

Increment target log probability density with bernoulli_logit_glm_lupmf(y | x, alpha, beta).

Available since 2.25

Stan Functions

real bernoulli_logit_glm_lpmf(int y | matrix x, real alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta).

Available since 2.23

real bernoulli_logit_glm_lupmf(int y | matrix x, real alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta) dropping constant additive terms.

Available since 2.25

real bernoulli_logit_glm_lpmf(int y | matrix x, vector alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta).

Available since 2.23

real bernoulli_logit_glm_lupmf(int y | matrix x, vector alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta) dropping constant additive terms.

Available since 2.25

real bernoulli_logit_glm_lpmf(array[] int y | row_vector x, real alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta).

Available since 2.23

real bernoulli_logit_glm_lupmf(array[] int y | row_vector x, real alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta) dropping constant additive terms.

Available since 2.25

real bernoulli_logit_glm_lpmf(array[] int y | row_vector x, vector alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta).

Available since 2.23

real bernoulli_logit_glm_lupmf(array[] int y | row_vector x, vector alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta) dropping constant additive terms.

Available since 2.25

real bernoulli_logit_glm_lpmf(array[] int y | matrix x, real alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta).

Available since 2.18

real bernoulli_logit_glm_lupmf(array[] int y | matrix x, real alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta) dropping constant additive terms.

Available since 2.25

real bernoulli_logit_glm_lpmf(array[] int y | matrix x, vector alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta).

Available since 2.18

real bernoulli_logit_glm_lupmf(array[] int y | matrix x, vector alpha, vector beta)
The log Bernoulli probability mass of y given chance of success inv_logit(alpha + x * beta) dropping constant additive terms.

Available since 2.25

array[] int bernoulli_logit_glm_rng(matrix x, vector alpha, vector beta)
Generate an array of Bernoulli variates with chances of success inv_logit(alpha + x * beta); may only be used in transformed data and generated quantities blocks.

Available since 2.29

array[] int bernoulli_logit_glm_rng(row_vector x, vector alpha, vector beta)
Generate an array of Bernoulli variates with chances of success inv_logit(alpha + x * beta); may only be used in transformed data and generated quantities blocks.

Available since 2.29
Back to top