StudentT
Defined in: distributions/studentt.js:15
Student-t distribution, with location and scale
$$ p(x | \nu, \mu, \sigma) = \frac{\Gamma((\nu+1)/2)}{\Gamma(\nu/2)\sqrt{\nu\pi},\sigma} \left(1 + \frac{1}{\nu}\left(\frac{x-\mu}{\sigma}\right)^2\right)^{-(\nu+1)/2} $$
A robust alternative to the Normal as an observation model: its heavy tails
let an outlying observation pull the mean less. nu may be a free variable.
See
Extends
Constructors
Constructor
new StudentT(
nu?,mu?,sigma?,name?):StudentT
Defined in: distributions/studentt.js:31
Accepts either positional arguments or a single options object, matching the
dual-constructor convention of @tangent.to/ds.
Parameters
nu?
any = 1
Degrees of freedom, nu > 0, or an options object
{ nu | df, mu | mean, sigma | sd | std, name }
mu?
number | any[]
Location
sigma?
number | any[]
Scale, sigma > 0
name?
string = 'StudentT'
Name of the distribution
Returns
StudentT
Examples
new StudentT(4, 0, 1)new StudentT({ df: 4, mean: 0, sd: 1 })Overrides
Properties
_dist
_dist:
any
Defined in: distributions/studentt.js:43
mu
mu:
number|any[]
Defined in: distributions/studentt.js:41
name
name:
any
Defined in: distributions/studentt.js:35
Inherited from
nu
nu:
any
Defined in: distributions/studentt.js:40
observed
observed:
any
Defined in: distributions/base.js:53
Inherited from
sigma
sigma:
number|any[]
Defined in: distributions/studentt.js:42
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
_params()
_params():
object
Defined in: distributions/studentt.js:49
The proba parameter object for this distribution.
Returns
object
mu
mu:
number|any[]
nu
nu:
any
sigma
sigma:
number|any[]
Overrides
_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
cdf()
cdf(
value):number
Defined in: distributions/base.js:211
Cumulative distribution function (scalar parameters).
Parameters
value
number
Returns
number
Inherited from
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
getParams()
getParams():
object
Defined in: distributions/studentt.js:56
Get the distribution’s parameters.
Returns
object
mu
mu:
number|any[]
nu
nu:
any
sigma
sigma:
number|any[]
Overrides
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
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
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
mean()
mean():
number|number[]
Defined in: distributions/base.js:252
Get the mean of the distribution
Returns
number | number[]
The mean
Inherited from
observe()
observe(
data):Distribution
Defined in: distributions/base.js:243
Set observed data for this distribution
Parameters
data
number | any[]
Observed data
Returns
this, for chaining
Inherited from
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
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
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
variance()
variance():
number|number[]
Defined in: distributions/base.js:262
Get the variance of the distribution
Returns
number | number[]
The variance