Dirac

class probnum.random_variables.Dirac(support: ValueType, random_state: Union[None, int, numpy.random.mtrand.RandomState, numpy.random._generator.Generator] = None)

Bases: probnum.random_variables.DiscreteRandomVariable

The Dirac delta distribution.

This distribution models a point mass and can be useful to represent numbers as random variables with Dirac measure. It has the useful property that arithmetic operations between a Dirac random variable and an arbitrary RandomVariable acts in the same way as the arithmetic operation with a constant.

Note, that a Dirac measure does not admit a probability density function but can be viewed as a distribution (generalized function).

Parameters:support (scalar or array-like or LinearOperator) – The support of the dirac delta function.

See also

RandomVariable
Class representing general random variables.

Examples

>>> from probnum import random_variables as rvs
>>> rv1 = rvs.Dirac(support=0.)
>>> rv2 = rvs.Dirac(support=1.)
>>> rv = rv1 + rv2
>>> rv.sample(size=5)
array([1., 1., 1., 1., 1.])

Attributes Summary

T Transpose the random variable.
cov Covariance \(\operatorname{Cov}(X) = \mathbb{E}((X-\mathbb{E}(X))(X-\mathbb{E}(X))^\top)\) of the random variable.
dtype Data type of (elements of) a realization of this random variable.
entropy
mean Mean \(\mathbb{E}(X)\) of the distribution.
median Median of the random variable.
median_dtype The dtype of the median.
mode Mode of the random variable.
moment_dtype The dtype of any (function of a) moment of the random variable, e.g.
ndim
parameters Parameters of the probability distribution.
random_state Random state of the random variable.
shape Shape of realizations of the random variable.
size
std Standard deviation of the distribution.
support
var Variance \(\operatorname{Var}(X) = \mathbb{E}((X-\mathbb{E}(X))^2)\) of the distribution.

Methods Summary

cdf(x) Cumulative distribution function.
in_support(x)
infer_median_dtype(value_dtype, str])
infer_moment_dtype(value_dtype, str])
logcdf(x) Log-cumulative distribution function.
logpmf(x)
pmf(x)
quantile(p) Quantile function.
reshape(newshape, …]) Give a new shape to a random variable.
sample(size, Iterable[numbers.Integral]] = ()) Draw realizations from a random variable.
transpose(*axes) Transpose the random variable.

Attributes Documentation

T

Transpose the random variable.

Parameters:axes (None, tuple of ints, or n ints) – See documentation of numpy.ndarray.transpose.
Returns:transposed_rv
Return type:The transposed random variable.
cov

Covariance \(\operatorname{Cov}(X) = \mathbb{E}((X-\mathbb{E}(X))(X-\mathbb{E}(X))^\top)\) of the random variable.

To learn about the dtype of the covariance, see moment_dtype.

Returns:cov – The kernels of the random variable.
Return type:array-like
dtype

Data type of (elements of) a realization of this random variable.

entropy
mean

Mean \(\mathbb{E}(X)\) of the distribution.

To learn about the dtype of the mean, see moment_dtype.

Returns:mean – The mean of the distribution.
Return type:array-like
median

Median of the random variable.

To learn about the dtype of the median, see median_dtype.

Returns:median – The median of the distribution.
Return type:float
median_dtype

The dtype of the median. It will be set to the dtype arising from the multiplication of values with dtypes dtype and np.float_. This is motivated by the fact that, even for discrete random variables, e.g. integer-valued random variables, the median might lie in between two values in which case these values are averaged. For example, a uniform random variable on \(\{ 1, 2, 3, 4 \}\) will have a median of \(2.5\).

mode

Mode of the random variable.

Returns:mode – The mode of the random variable.
Return type:float
moment_dtype

The dtype of any (function of a) moment of the random variable, e.g. its mean, cov, var, or std. It will be set to the dtype arising from the multiplication of values with dtypes dtype and np.float_. This is motivated by the mathematical definition of a moment as a sum or an integral over products of probabilities and values of the random variable, which are represented as using the dtypes np.float_ and dtype, respectively.

ndim
parameters

Parameters of the probability distribution.

The parameters of the distribution such as mean, variance, et cetera stored in a dict.

random_state

Random state of the random variable.

This attribute defines the RandomState object to use for drawing realizations from this random variable. If None (or np.random), the global np.random state is used. If integer, it is used to seed the local RandomState instance.

shape

Shape of realizations of the random variable.

size
std

Standard deviation of the distribution.

To learn about the dtype of the standard deviation, see moment_dtype.

Returns:std – The standard deviation of the distribution.
Return type:array-like
support
var

Variance \(\operatorname{Var}(X) = \mathbb{E}((X-\mathbb{E}(X))^2)\) of the distribution.

To learn about the dtype of the variance, see moment_dtype.

Returns:var – The variance of the distribution.
Return type:array-like

Methods Documentation

cdf(x: ValueType) → numpy.float64

Cumulative distribution function.

Parameters:x (array-like) – Evaluation points of the cumulative distribution function. The shape of this argument should be (..., S1, ..., SN), where (S1, ..., SN) is the shape of the random variable. The cdf evaluation will be broadcast over all additional dimensions.
Returns:q – Value of the cumulative density function at the given points.
Return type:array-like
in_support(x: ValueType) → bool
static infer_median_dtype(value_dtype: Union[numpy.dtype, str]) → numpy.dtype
static infer_moment_dtype(value_dtype: Union[numpy.dtype, str]) → numpy.dtype
logcdf(x: ValueType) → numpy.float64

Log-cumulative distribution function.

Parameters:x (array-like) – Evaluation points of the cumulative distribution function. The shape of this argument should be (..., S1, ..., SN), where (S1, ..., SN) is the shape of the random variable. The logcdf evaluation will be broadcast over all additional dimensions.
Returns:q – Value of the log-cumulative density function at the given points.
Return type:array-like
logpmf(x: ValueType) → numpy.float64
pmf(x: ValueType) → numpy.float64
quantile(p: numbers.Real) → ValueType

Quantile function.

The quantile function \(Q \colon [0, 1] \to \mathbb{R}\) of a random variable \(X\) is defined as \(Q(p) = \inf\{ x \in \mathbb{R} \colon p \le F_X(x) \}\), where \(F_X \colon \mathbb{R} \to [0, 1]\) is the cdf() of the random variable. From the definition it follows that the quantile function always returns values of the same dtype as the random variable. For instance, for a discrete distribution over the integers, the returned quantiles will also be integers. This means that, in general, \(Q(0.5)\) is not equal to the median as it is defined in this class. See https://en.wikipedia.org/wiki/Quantile_function for more details and examples.

reshape(newshape: Tuple[int, ...]) → probnum.random_variables.Dirac[source]

Give a new shape to a random variable.

Parameters:newshape (int or tuple of ints) – New shape for the random variable. It must be compatible with the original shape.
Returns:reshaped_rv
Return type:self with the new dimensions of shape.
sample(size: Union[numbers.Integral, Iterable[numbers.Integral]] = ()) → ValueType

Draw realizations from a random variable.

Parameters:size (tuple) – Size of the drawn sample of realizations.
Returns:sample – Sample of realizations with the given size and the inherent shape.
Return type:array-like
transpose(*axes) → probnum.random_variables.Dirac[source]

Transpose the random variable.

Parameters:axes (None, tuple of ints, or n ints) – See documentation of numpy.ndarray.transpose.
Returns:transposed_rv
Return type:The transposed random variable.