This is an old version, view current version.

14.7 Poisson-Log Generalized Linear Model (Poisson Regression)

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

14.7.1 Probability Mass Function

If xRnm,αRn,βRm, then for yNn, PoisonLogGLM(y|x,α,β)=1inPoisson(yi|exp(αi+xiβ)).

14.7.2 Sampling Statement

y ~ poisson_log_glm(x, alpha, beta)

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

14.7.3 Stan Functions

real poisson_log_glm_lpmf(int y | matrix x, real alpha, vector beta)
The log Poisson probability mass of y given the log-rate alpha + x * beta, where the same intercept alpha and dependent variable value y are used for all observations. The number of columns of x needs to match the size of the coefficient vector beta. If x and y are data (not parameters) this function can be executed on a GPU.

real poisson_log_glm_lpmf(int y | matrix x, vector alpha, vector beta)
The log Poisson probability mass of y given the log-rate alpha + x * beta, where an intercept alpha is used that is allowed to vary with the different observations. Dependent variable value y is used for all observations. The number of rows of x must match the size of alpha and the number of columns of x needs to match the size of the coefficient vector beta. If x and y are data (not parameters) this function can be executed on a GPU.

real poisson_log_glm_lpmf(int[] y | row_vector x, real alpha, vector beta)
The log Poisson probability mass of y given the log-rate alpha + x * beta, where the same intercept alpha is used for all observations. The number of columns of x needs to match the size of the coefficient vector beta.

real poisson_log_glm_lpmf(int[] y | row_vector x, vector alpha, vector beta)
The log Poisson probability mass of y given the log-rate alpha + x * beta, where an intercept alpha is used that is allowed to vary with the different observations. The number of rows of x must match the size of alpha and the number of columns of x needs to match the size of the coefficient vector beta.

real poisson_log_glm_lpmf(int[] y | matrix x, real alpha, vector beta)
The log Poisson probability mass of y given the log-rate alpha + x * beta, where the same intercept alpha is used for all observations. The number of rows of the independent variable matrix x needs to match the size of the dependent variable vector y and the number of columns of x needs to match the size of the coefficient vector beta. If x and y are data (not parameters) this function can be executed on a GPU.

real poisson_log_glm_lpmf(int[] y | matrix x, vector alpha, vector beta)
The log Poisson probability mass of y given the log-rate 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 size of the dependent variable vector y and alpha and the number of columns of x needs to match the size of the coefficient vector beta. If x and y are data (not parameters) this function can be executed on a GPU.