## 13.7 Poisson-Log Generalised Linear Model (Poisson Regression)

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

### 13.7.1 Probability Mass Function

If $$x\in \mathbb{R}^{n\cdot m}, \alpha \in \mathbb{R}^n, \beta\in \mathbb{R}^m$$, then for $$y \in \mathbb{N}^n$$, $\text{PoisonLogGLM}(y|x, \alpha, \beta) = \prod_{1\leq i \leq n}\text{Poisson}(y_i|\exp(\alpha_i + x_i\cdot \beta)).$

### 13.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.

### 13.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 log-rate 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 poisson_log_glm_lpmf(int[] y | matrix x, vector alpha, vector beta)
The log poisson probability mass of y given 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 length of the dependent variable vector y and the number of columns of x needs to match the length of the weight vector beta.