This is an old version, view current version.

11.3 Bernoulli-Logit Generalised Linear Model (Logistic Regression)

Stan also supplies a single primitive for a Generalised Linear Model with Bernoulli likelihood and logit link function, i.e. a primitive for a logistic regression. This should provide a more efficient implementation of logistic regression than a manually written regression in terms of a Bernoulli likelihood and matrix multiplication.

11.3.1 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.

11.3.2 Sampling Statement

y ~ bernoulli_logit_glm(x, alpha, beta)

Increment target log probability density with bernoulli_logit_glm_lpmf( y | x, alpha, beta) dropping constant additive terms.

11.3.3 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), where a constant intercept alpha is used for all observations. The number of rows of the independent variable matrix x needs to match the length of the dependent variable vector y and the number of columns of x needs to match the length of the weight vector beta.

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), where an intercept alpha is used that is allowed to vary with the different observations. The number of rows of the independent variable matrix x needs to match the length of the dependent variable vector y and alpha and the number of columns of x needs to match the length of the weight vector beta.