Skip to content

Poisson

Defined in: distributions/poisson.js:14

Poisson distribution, for counts

$$ p(k | \lambda) = \frac{\lambda^k e^{-\lambda}}{k!}, \quad k = 0, 1, 2, \ldots $$

As an observation model the rate is usually an expression, exp(...) of a linear predictor, which is what keeps it positive.

See

Distribution

Extends

Constructors

Constructor

new Poisson(lambda?, name?): Poisson

Defined in: distributions/poisson.js:28

Accepts either positional arguments or a single options object, matching the dual-constructor convention of @tangent.to/ds.

Parameters

lambda?

any = 1

Rate, lambda > 0, or an options object { lambda | rate | mu, name }

name?

string = 'Poisson'

Name of the distribution

Returns

Poisson

Examples

new Poisson(3)
new Poisson({ rate: 3 })

Overrides

Distribution.constructor

Properties

_dist

_dist: any

Defined in: distributions/poisson.js:36


lambda

lambda: any

Defined in: distributions/poisson.js:35


name

name: any

Defined in: distributions/poisson.js:32

Inherited from

Distribution.name


observed

observed: any

Defined in: distributions/base.js:53

Inherited from

Distribution.observed

Methods

_len()

_len(value): number

Defined in: distributions/base.js:69

Broadcast length across value and parameters (0 = all scalar).

Parameters

value

number | any[]

Value(s) whose length participates in broadcasting

Returns

number

The broadcast length (0 when every input is scalar)

Inherited from

Distribution._len


_params()

_params(): object

Defined in: distributions/poisson.js:42

The proba parameter object for this distribution.

Returns

object

lambda

lambda: any

Overrides

Distribution._params


_paramsAt()

_paramsAt(i): any

Defined in: distributions/base.js:82

The proba parameter object with each array parameter indexed at i.

Parameters

i

number

Broadcast index

Returns

any

Per-element parameter object (scalars passed through)

Inherited from

Distribution._paramsAt


cdf()

cdf(value): number

Defined in: distributions/base.js:211

Cumulative distribution function (scalar parameters).

Parameters

value

number

Returns

number

Inherited from

Distribution.cdf


dlogProbDx()

dlogProbDx(value): number | number[]

Defined in: distributions/base.js:181

Derivative of logProb with respect to the value, elementwise. Used by Model.logProbAndGradient for analytic prior gradients. Discrete distributions return 0 (no dx in their gradient contract).

Parameters

value

number | any[]

Value(s) at which to differentiate

Returns

number | number[]

Inherited from

Distribution.dlogProbDx


getParams()

getParams(): object

Defined in: distributions/poisson.js:49

Get the distribution’s parameters.

Returns

object

lambda

lambda: any

Overrides

Distribution.getParams


logDensity()

logDensity(value): any

Defined in: distributions/base.js:137

The log-density as a differentiable expression, SUMMED over elements.

Where Distribution#logProb takes plain numbers and returns the elementwise density, this takes parameters that may be grad Vars, built from the model’s free variables, and returns one scalar Var: the total log-density of value under this distribution, differentiable in every parameter that is a Var. It is what Model#observe evaluates, so that a likelihood is derived from the distribution rather than written by hand.

The formula is proba’s: every proba distribution carries logDensity, the same density as logpdf written in grad ops, elementwise, and this sums it. A subclass wrapping a distribution that lacks it is still a valid prior and a valid logProb; it is simply not differentiable, and observe will say so.

Parameters

value

number | any[]

observed value(s), plain numbers

Returns

any

scalar

Inherited from

Distribution.logDensity


logpdf()

logpdf(value): number | number[]

Defined in: distributions/base.js:169

Alias for Distribution#logProb, matching the @tangent.to/proba distribution contract (which names the method logpdf). Lets code written against proba’s distributions work unchanged on mc’s.

Parameters

value

any

Value(s) to evaluate

Returns

number | number[]

Inherited from

Distribution.logpdf


logProb()

logProb(value): number | number[]

Defined in: distributions/base.js:97

Log probability density/mass function. Broadcasts over array values and/or array parameters.

Parameters

value

any

Value(s) to evaluate

Returns

number | number[]

Log probability, elementwise for arrays

Inherited from

Distribution.logProb


mean()

mean(): number | number[]

Defined in: distributions/base.js:252

Get the mean of the distribution

Returns

number | number[]

The mean

Inherited from

Distribution.mean


observe()

observe(data): Distribution

Defined in: distributions/base.js:243

Set observed data for this distribution

Parameters

data

number | any[]

Observed data

Returns

Distribution

this, for chaining

Inherited from

Distribution.observe


pdf()

pdf(value): number | number[]

Defined in: distributions/base.js:201

Probability density/mass function, exp(logProb(value)).

Parameters

value

number | any[]

Value(s) to evaluate

Returns

number | number[]

Inherited from

Distribution.pdf


quantile()

quantile(p): number

Defined in: distributions/base.js:220

Quantile (inverse cdf) function (scalar parameters).

Parameters

p

number

Probability in [0, 1]

Returns

number

Inherited from

Distribution.quantile


sample()

sample(shape?): number | number[]

Defined in: distributions/base.js:232

Sample from the distribution using the package RNG (see setRandomSeed). sample() / sample([]) return a number; sample(n) / sample([n]) return an Array of n draws.

Parameters

shape?

number | number[]

Number of samples

Returns

number | number[]

Inherited from

Distribution.sample


variance()

variance(): number | number[]

Defined in: distributions/base.js:262

Get the variance of the distribution

Returns

number | number[]

The variance

Inherited from

Distribution.variance