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: None | ArrayLike = None,
        q: None | ArrayLike = None,
        logit_p: None | ArrayLike = None,
        logit_q: None | ArrayLike = 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: None | ArrayLike = None, q: None | ArrayLike = None, logit_p: None | ArrayLike = None, logit_q: None | ArrayLike = None)

Construct a Bernoulli distribution by selecting a parameterization.

Parameters:

Name Type Description Default
p None | ArrayLike

Parameterize a Bernoulli distribution by its probability of success.

None
q None | ArrayLike

Parameterize a Bernoulli distribution by its probability of failure.

None
logit_p None | ArrayLike

Parameterize a Bernoulli distribution by its logit probability of success.

None
logit_q None | ArrayLike

Parameterize a Bernoulli distribution by its logit probability of failure.

None
Source code in src/bayinx/dists/bernoulli/distribution.py
def __init__(
    self,
    p: None | ArrayLike = None,
    q: None | ArrayLike = None,
    logit_p: None | ArrayLike = None,
    logit_q: None | ArrayLike = 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: ArrayLike,
        p: None | ArrayLike = None,
        q: None | ArrayLike = None,
        logit_p: None | ArrayLike = None,
        logit_q: None | ArrayLike = 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: ArrayLike, p: None | ArrayLike = None, q: None | ArrayLike = None, logit_p: None | ArrayLike = None, logit_q: None | ArrayLike = None)

Construct a Binomial distribution by selecting a parameterization.

Parameters:

Name Type Description Default
n ArrayLike

Parameterize a Binomial distribution by its total number of trials.

required
p None | ArrayLike

Parameterize a Binomial distribution by its probability of success.

None
q None | ArrayLike

Parameterize a Binomial distribution by its probability of failure.

None
logit_p None | ArrayLike

Parameterize a Binomial distribution by its logit probability of success.

None
logit_q None | ArrayLike

Parameterize a Binomial distribution by its logit probability of failure.

None
Source code in src/bayinx/dists/binomial/distribution.py
def __init__(
    self,
    n: ArrayLike,
    p: None | ArrayLike = None,
    q: None | ArrayLike = None,
    logit_p: None | ArrayLike = None,
    logit_q: None | ArrayLike = 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: ArrayLike,
        scale: ArrayLike
    ):
        """
        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: ArrayLike, scale: ArrayLike)

Construct a Cauchy distribution by selecting a parameterization.

Parameters:

Name Type Description Default
loc ArrayLike

Parameterizes a Cauchy distribution by its location.

required
scale ArrayLike

Parameterizes a Cauchy distribution by its scale.

required
Source code in src/bayinx/dists/cauchy/distribution.py
def __init__(
    self,
    loc: ArrayLike,
    scale: ArrayLike
):
    """
    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 None | ArrayLike

Parameterizes an Exponential distribution by its rate.

None
scale None | ArrayLike

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: None | ArrayLike = None,
        scale: None | ArrayLike = 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 None | ArrayLike

Parameterize the distribution by its rate.

None
shape None | ArrayLike

Parameterize the distribution by its shape.

None
scale None | ArrayLike

Parameterize the distribution by its scale.

None
mean None | ArrayLike

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: None | ArrayLike = None,
        shape: None | ArrayLike = None,
        scale: None | ArrayLike = None,
        mean: None | ArrayLike = 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'.")

LogNormal

A Log-Normal distribution.

Parameters:

Name Type Description Default
loc None | ArrayLike

Parameterizes a Log-Normal distribution by its location (mean of log X).

None
scale None | ArrayLike

Parameterizes a Log-Normal distribution by its scale (standard-deviation of log X).

None
Source code in src/bayinx/dists/lognormal/distribution.py
class LogNormal(Distribution):
    """
    A Log-Normal distribution.

    Parameters:
        loc: Parameterizes a Log-Normal distribution by its location (mean of log X).
        scale: Parameterizes a Log-Normal distribution by its scale (standard-deviation of log X).
    """

    par: Parameterization

    def __init__(
        self,
        loc: None | ArrayLike = None,
        scale: None | ArrayLike = None
    ):
        if loc is not None and scale is not None:
            self.par = LocScaleLogNormal(loc, scale)
        else:
            raise TypeError(f"Expected loc: {loc}, and at least one of scale: {scale} to be not None.")

Multinoulli

A Multinoulli distribution.

Parameters:

Name Type Description Default
probs None | ArrayLike

Parameterizes a Multinoulli distribution by its probabilities.

None
logprobs None | ArrayLike

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: None | ArrayLike = None,
        logprobs: None | ArrayLike = 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.")

NegBinom

A Negative Binomial distribution.

Parameters:

Name Type Description Default
mu None | ArrayLike

Parameterizes a Negative Binomial distribution by its mean. E(X) = mu.

None
theta None | ArrayLike

Parameterizes a Negative Binomial distribution by its inverse overdispersion. Var(X) = mu + mu^2/theta.

None
Source code in src/bayinx/dists/negbinom/distribution.py
class NegBinom(Distribution):
    """
    A Negative Binomial distribution.

    Parameters:
        mu: Parameterizes a Negative Binomial distribution by its mean. E(X) = mu.
        theta: Parameterizes a Negative Binomial distribution by its inverse overdispersion. Var(X) = mu + mu^2/theta.
    """

    par: Parameterization

    def __init__(
        self,
        mu: None | ArrayLike = None,
        theta: None | ArrayLike = None,
    ):
        if mu is not None and theta is not None:
            self.par = MeanInvOverdispNegBinom(mu, theta)
        else:
            raise TypeError(f"Expected mu: {mu}, and theta: {theta} to be not None.")

Normal

A Normal distribution.

Parameters:

Name Type Description Default
loc None | ArrayLike

Parameterizes a Normal distribution by its location.

None
scale None | ArrayLike

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

None
var None | ArrayLike

Parameterizes a Normal distribution by its variance.

None
prec None | ArrayLike

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: None | ArrayLike = None,
        scale: None | ArrayLike = None,
        var: None | ArrayLike = None,
        prec: None | ArrayLike = 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 None | ArrayLike

Parameterizes a Poisson distribution by its rate.

None
log_rate None | ArrayLike

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: None | ArrayLike = None,
        log_rate: None | ArrayLike = 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 ArrayLike

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

required
loc ArrayLike

Parameterizes a Student's T distribution by its location.

required
scale ArrayLike

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: ArrayLike,
        loc: ArrayLike,
        scale: ArrayLike
    ):
        self.par = LocScaleStudentsT(loc, scale, df)