Skip to content

Distributions

bayinx.dists

Bernoulli

A Bernoulli distribution.

Source code in src/bayinx/dists/bernoulli/distribution.py
class Bernoulli(Distribution):
    """
    A Bernoulli distribution.
    """

    par: Parameterization


    def __init__(
        self,
        p: Optional[ArrayObject] = None,
        q: Optional[ArrayObject] = None,
        logit_p: Optional[ArrayObject] = None,
        logit_q: Optional[ArrayObject] = None
    ):
        """
        Construct a Bernoulli distribution by selecting a parameterization.

        Parameters:
            p: Parameterize a Bernoulli distribution by its probability of success.
            q: Parameterize a Bernoulli distribution by its probability of failure.
            logit_p: Parameterize a Bernoulli distribution by its logit probability of success.
            logit_q: Parameterize a Bernoulli distribution by its logit probability of failure.
        """
        if p is not None:
            self.par = ProbSuccessBernoulli(p)
        elif q is not None:
            self.par = ProbFailureBernoulli(q)
        elif logit_p is not None:
            self.par = LogitProbSuccessBernoulli(logit_p)
        elif logit_q is not None:
            self.par = LogitProbFailureBernoulli(logit_q)
        else:
            raise TypeError(f"Expected at least one of p: {p}, q: {q}, logit_p: {logit_p}, logit_q: {logit_q} to be not None.")

__init__(p: Optional[ArrayObject] = None, q: Optional[ArrayObject] = None, logit_p: Optional[ArrayObject] = None, logit_q: Optional[ArrayObject] = None)

Construct a Bernoulli distribution by selecting a parameterization.

Parameters:

Name Type Description Default
p Optional[ArrayObject]

Parameterize a Bernoulli distribution by its probability of success.

None
q Optional[ArrayObject]

Parameterize a Bernoulli distribution by its probability of failure.

None
logit_p Optional[ArrayObject]

Parameterize a Bernoulli distribution by its logit probability of success.

None
logit_q Optional[ArrayObject]

Parameterize a Bernoulli distribution by its logit probability of failure.

None
Source code in src/bayinx/dists/bernoulli/distribution.py
def __init__(
    self,
    p: Optional[ArrayObject] = None,
    q: Optional[ArrayObject] = None,
    logit_p: Optional[ArrayObject] = None,
    logit_q: Optional[ArrayObject] = None
):
    """
    Construct a Bernoulli distribution by selecting a parameterization.

    Parameters:
        p: Parameterize a Bernoulli distribution by its probability of success.
        q: Parameterize a Bernoulli distribution by its probability of failure.
        logit_p: Parameterize a Bernoulli distribution by its logit probability of success.
        logit_q: Parameterize a Bernoulli distribution by its logit probability of failure.
    """
    if p is not None:
        self.par = ProbSuccessBernoulli(p)
    elif q is not None:
        self.par = ProbFailureBernoulli(q)
    elif logit_p is not None:
        self.par = LogitProbSuccessBernoulli(logit_p)
    elif logit_q is not None:
        self.par = LogitProbFailureBernoulli(logit_q)
    else:
        raise TypeError(f"Expected at least one of p: {p}, q: {q}, logit_p: {logit_p}, logit_q: {logit_q} to be not None.")

Binomial

A Binomial distribution.

Source code in src/bayinx/dists/binomial/distribution.py
class Binomial(Distribution):
    """
    A Binomial distribution.
    """

    par: Parameterization


    def __init__(
        self,
        n: ArrayObject,
        p: Optional[ArrayObject] = None,
        q: Optional[ArrayObject] = None,
        logit_p: Optional[ArrayObject] = None,
        logit_q: Optional[ArrayObject] = None
    ):
        """
        Construct a Binomial distribution by selecting a parameterization.

        Parameters:
            n: Parameterize a Binomial distribution by its total number of trials.
            p: Parameterize a Binomial distribution by its probability of success.
            q: Parameterize a Binomial distribution by its probability of failure.
            logit_p: Parameterize a Binomial distribution by its logit probability of success.
            logit_q: Parameterize a Binomial distribution by its logit probability of failure.
        """
        if p is not None:
            self.par = ProbSuccessBinomial(n, p)
        elif q is not None:
            self.par = ProbFailureBinomial(n, q)
        elif logit_p is not None:
            self.par = LogitProbSuccessBinomial(n, logit_p)
        elif logit_q is not None:
            self.par = LogitProbFailureBinomial(n, logit_q)
        else:
            raise TypeError("Expected at least one of 'p', 'q', 'logit_p', 'logit_q' to be not None.")

__init__(n: ArrayObject, p: Optional[ArrayObject] = None, q: Optional[ArrayObject] = None, logit_p: Optional[ArrayObject] = None, logit_q: Optional[ArrayObject] = None)

Construct a Binomial distribution by selecting a parameterization.

Parameters:

Name Type Description Default
n ArrayObject

Parameterize a Binomial distribution by its total number of trials.

required
p Optional[ArrayObject]

Parameterize a Binomial distribution by its probability of success.

None
q Optional[ArrayObject]

Parameterize a Binomial distribution by its probability of failure.

None
logit_p Optional[ArrayObject]

Parameterize a Binomial distribution by its logit probability of success.

None
logit_q Optional[ArrayObject]

Parameterize a Binomial distribution by its logit probability of failure.

None
Source code in src/bayinx/dists/binomial/distribution.py
def __init__(
    self,
    n: ArrayObject,
    p: Optional[ArrayObject] = None,
    q: Optional[ArrayObject] = None,
    logit_p: Optional[ArrayObject] = None,
    logit_q: Optional[ArrayObject] = None
):
    """
    Construct a Binomial distribution by selecting a parameterization.

    Parameters:
        n: Parameterize a Binomial distribution by its total number of trials.
        p: Parameterize a Binomial distribution by its probability of success.
        q: Parameterize a Binomial distribution by its probability of failure.
        logit_p: Parameterize a Binomial distribution by its logit probability of success.
        logit_q: Parameterize a Binomial distribution by its logit probability of failure.
    """
    if p is not None:
        self.par = ProbSuccessBinomial(n, p)
    elif q is not None:
        self.par = ProbFailureBinomial(n, q)
    elif logit_p is not None:
        self.par = LogitProbSuccessBinomial(n, logit_p)
    elif logit_q is not None:
        self.par = LogitProbFailureBinomial(n, logit_q)
    else:
        raise TypeError("Expected at least one of 'p', 'q', 'logit_p', 'logit_q' to be not None.")

Cauchy

A Cauchy distribution.

Source code in src/bayinx/dists/cauchy/distribution.py
class Cauchy(Distribution):
    """
    A Cauchy distribution.
    """

    par: Parameterization


    def __init__(
        self,
        loc: ArrayObject,
        scale: ArrayObject
    ):
        """
        Construct a Cauchy distribution by selecting a parameterization.

        Parameters:
            loc: Parameterizes a Cauchy distribution by its location.
            scale: Parameterizes a Cauchy distribution by its scale.
        """
        self.par = LocationScaleCauchy(loc, scale)

__init__(loc: ArrayObject, scale: ArrayObject)

Construct a Cauchy distribution by selecting a parameterization.

Parameters:

Name Type Description Default
loc ArrayObject

Parameterizes a Cauchy distribution by its location.

required
scale ArrayObject

Parameterizes a Cauchy distribution by its scale.

required
Source code in src/bayinx/dists/cauchy/distribution.py
def __init__(
    self,
    loc: ArrayObject,
    scale: ArrayObject
):
    """
    Construct a Cauchy distribution by selecting a parameterization.

    Parameters:
        loc: Parameterizes a Cauchy distribution by its location.
        scale: Parameterizes a Cauchy distribution by its scale.
    """
    self.par = LocationScaleCauchy(loc, scale)

Exponential

An Exponential distribution.

Parameters:

Name Type Description Default
rate Optional[Real[ArrayLike, ...] | Node[Real[Array, ...]]]

Parameterizes an Exponential distribution by its rate.

None
scale Optional[Real[ArrayLike, ...] | Node[Real[Array, ...]]]

Parameterizes an Exponential distribution by its scale.

None
Source code in src/bayinx/dists/exponential/distribution.py
class Exponential(Distribution):
    """
    An Exponential distribution.

    Parameters:
        rate: Parameterizes an Exponential distribution by its rate.
        scale: Parameterizes an Exponential distribution by its scale.
    """

    par: Parameterization


    def __init__(
        self,
        rate: Optional[Real[ArrayLike, "..."] | Node[Real[Array, "..."]]] = None,
        scale: Optional[Real[ArrayLike, "..."] | Node[Real[Array, "..."]]] = None
    ):
        if rate is not None:
            self.par = RateExponential(rate)
        elif scale is not None:
            self.par = ScaleExponential(scale)
        else:
            raise TypeError(f"Expected rate: {rate} or scale: {scale} to be not None.")

Gamma

A Gamma distribution.

Parameters:

Name Type Description Default
rate Optional[ArrayObject]

Parameterize the distribution by its rate.

None
shape Optional[ArrayObject]

Parameterize the distribution by its shape.

None
scale Optional[ArrayObject]

Parameterize the distribution by its scale.

None
mean Optional[ArrayObject]

Parameterize the distribution by its mean.

None
Source code in src/bayinx/dists/gamma/distribution.py
class Gamma(Distribution):
    """
    A Gamma distribution.

    Parameters:
        rate: Parameterize the distribution by its rate.
        shape: Parameterize the distribution by its shape.
        scale: Parameterize the distribution by its scale.
        mean: Parameterize the distribution by its mean.
    """

    par: Parameterization


    def __init__(
        self,
        rate: Optional[ArrayObject] = None,
        shape: Optional[ArrayObject] = None,
        scale: Optional[ArrayObject] = None,
        mean: Optional[ArrayObject] = None
    ):
        if rate is not None and shape is not None:
            self.par = RateShapeGamma(rate, shape)
        elif scale is not None and shape is not None:
            self.par = ScaleShapeGamma(scale, shape)
        elif mean is not None and shape is not None:
            self.par = MeanShapeGamma(mean, shape)
        else:
            raise TypeError("Must choose one parameterization out of 'rate' & 'shape', 'scale' & 'shape' and 'mean' & 'shape'.")

Multinoulli

A Multinoulli distribution.

Parameters:

Name Type Description Default
probs Optional[ArrayObject]

Parameterizes a Multinoulli distribution by its probabilities.

None
logprobs Optional[ArrayObject]

Parameterizes a Multinoulli distribution by its log-probabilities.

None
Source code in src/bayinx/dists/multinoulli/distribution.py
class Multinoulli(Distribution):
    """
    A Multinoulli distribution.

    Parameters:
        probs: Parameterizes a Multinoulli distribution by its probabilities.
        logprobs: Parameterizes a Multinoulli distribution by its log-probabilities.
    """

    par: Parameterization

    def __init__(
        self,
        probs: Optional[ArrayObject] = None,
        logprobs: Optional[ArrayObject] = None
    ):
        if probs is not None:
            self.par = ProbsMultinoulli(probs)
        elif logprobs is not None:
            self.par = LogProbsMultinoulli(logprobs)
        else:
            raise TypeError("Expected 'probs' or 'logprobs' to be not None.")

Normal

A Normal distribution.

Parameters:

Name Type Description Default
loc Optional[ArrayObject]

Parameterizes a Normal distribution by its location.

None
scale Optional[ArrayObject]

Parameterizes a Normal distribution by its scale (standard-deviation).

None
var Optional[ArrayObject]

Parameterizes a Normal distribution by its variance.

None
prec Optional[ArrayObject]

Parameterizes a Normal distribution by its precision.

None
Source code in src/bayinx/dists/normal/distribution.py
class Normal(Distribution):
    """
    A Normal distribution.

    Parameters:
        loc: Parameterizes a Normal distribution by its location.
        scale: Parameterizes a Normal distribution by its scale (standard-deviation).
        var: Parameterizes a Normal distribution by its variance.
        prec: Parameterizes a Normal distribution by its precision.
    """

    par: Parameterization


    def __init__(
        self,
        loc: Optional[ArrayObject] = None,
        scale: Optional[ArrayObject] = None,
        var: Optional[ArrayObject] = None,
        prec: Optional[ArrayObject] = None
    ):
        if loc is not None and scale is not None:
            self.par = LocScaleNormal(loc, scale)
        elif loc is not None and var is not None:
            self.par = LocVarNormal(loc, var)
        elif loc is not None and prec is not None:
            self.par = LocPrecisionNormal(loc, prec)
        else:
            raise TypeError(f"Expected loc: {loc}, and at least one of scale: {scale}, var: {var}, prec: {prec} to be not None.")

Poisson

A Poisson distribution.

Parameters:

Name Type Description Default
rate Optional[Real[ArrayLike, ...] | Node[Real[Array, ...]]]

Parameterizes a Poisson distribution by its rate.

None
log_rate Optional[Real[ArrayLike, ...] | Node[Real[Array, ...]]]

Parameterizes a Poisson distribution by the log-transformed rate.

None
Source code in src/bayinx/dists/poisson/distribution.py
class Poisson(Distribution):
    """
    A Poisson distribution.

    Parameters:
        rate: Parameterizes a Poisson distribution by its rate.
        log_rate: Parameterizes a Poisson distribution by the log-transformed rate.
    """

    par: Parameterization


    def __init__(
        self,
        rate: Optional[Real[ArrayLike, "..."] | Node[Real[Array, "..."]]] = None,
        log_rate: Optional[Real[ArrayLike, "..."] | Node[Real[Array, "..."]]] = None
    ):
        if rate is not None:
            self.par = RatePoisson(rate)
        elif log_rate is not None:
            self.par = LogRatePoisson(log_rate)
        else:
            raise TypeError(f"Expected rate: {rate} or log_rate: {log_rate} to be not None.")

StudentsT

A Student's T distribution.

Parameters:

Name Type Description Default
df Real[ArrayLike, ...] | Node[Real[Array, ...]]

Parameterizes a Student's T distribution by its degrees of freedom.

required
loc Real[ArrayLike, ...] | Node[Real[Array, ...]]

Parameterizes a Student's T distribution by its location.

required
scale Real[ArrayLike, ...] | Node[Real[Array, ...]]

Parameterizes a Student's T distribution by its scale.

required
Source code in src/bayinx/dists/studentst/distribution.py
class StudentsT(Distribution):
    """
    A Student's T distribution.

    Parameters:
        df: Parameterizes a Student's T distribution by its degrees of freedom.
        loc: Parameterizes a Student's T distribution by its location.
        scale: Parameterizes a Student's T distribution by its scale.
    """

    par: Parameterization


    def __init__(
        self,
        df: Real[ArrayLike, "..."] | Node[Real[Array, "..."]],
        loc: Real[ArrayLike, "..."] | Node[Real[Array, "..."]],
        scale: Real[ArrayLike, "..."] | Node[Real[Array, "..."]]
    ):
        self.par = LocScaleStudentsT(loc, scale, df)