Skip to content

Deterministic

DeterministicPMF

DeterministicPMF(name: str, value: ArrayLike, tol: float = 1e-05)

Bases: RandomVariable

A deterministic (degenerate) random variable that represents a PMF.

Default constructor

Automatically checks that the elements in value can be indeed considered to be a PMF by calling pyrenew.distutil.validate_discrete_dist_vector on each one of its entries.

Parameters:

Name Type Description Default
name str

A name to assign to the variable.

required
value ArrayLike

An ArrayLike object.

required
tol float

Passed to pyrenew.distutil.validate_discrete_dist_vector. Defaults to 1e-5.

1e-05

Returns:

Type Description
None
Source code in pyrenew/deterministic/deterministicpmf.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
def __init__(
    self,
    name: str,
    value: ArrayLike,
    tol: float = 1e-5,
) -> None:
    """
    Default constructor

    Automatically checks that the elements in `value` can be indeed
    considered to be a PMF by calling
    pyrenew.distutil.validate_discrete_dist_vector on each one of its
    entries.

    Parameters
    ----------
    name
        A name to assign to the variable.
    value
        An ArrayLike object.
    tol
        Passed to pyrenew.distutil.validate_discrete_dist_vector. Defaults
        to 1e-5.

    Returns
    -------
    None
    """
    value = validate_discrete_dist_vector(
        discrete_dist=value,
        tol=tol,
    )

    self.basevar = DeterministicVariable(
        name=name,
        value=value,
    )

    return None

sample

sample(**kwargs) -> ArrayLike

Retrieves the deterministic PMF

Parameters:

Name Type Description Default
**kwargs

Additional keyword arguments passed through to internal sample() calls, if any

{}

Returns:

Type Description
ArrayLike
Source code in pyrenew/deterministic/deterministicpmf.py
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
def sample(
    self,
    **kwargs,
) -> ArrayLike:
    """
    Retrieves the deterministic PMF

    Parameters
    ----------
    **kwargs
        Additional keyword arguments passed through to internal `sample()`
        calls, if any

    Returns
    -------
    ArrayLike
    """

    return self.basevar.sample(**kwargs)

size

size() -> int

Returns the size of the PMF

Returns:

Type Description
int

The size of the PMF

Source code in pyrenew/deterministic/deterministicpmf.py
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
def size(self) -> int:
    """
    Returns the size of the PMF

    Returns
    -------
    int
        The size of the PMF
    """

    return self.basevar.value.size

validate staticmethod

validate(value: ArrayLike) -> None

Validates input to DeterministicPMF

Parameters:

Name Type Description Default
value ArrayLike

An ArrayLike object.

required

Returns:

Type Description
None
Source code in pyrenew/deterministic/deterministicpmf.py
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
@staticmethod
def validate(value: ArrayLike) -> None:
    """
    Validates input to DeterministicPMF

    Parameters
    ----------
    value
        An ArrayLike object.

    Returns
    -------
    None
    """
    return None

DeterministicVariable

DeterministicVariable(name: str, value: ArrayLike)

Bases: RandomVariable

A deterministic (degenerate) random variable. Useful to pass fixed quantities.

Default constructor

Parameters:

Name Type Description Default
name str

A name to assign to the variable.

required
value ArrayLike

An ArrayLike object.

required

Returns:

Type Description
None
Source code in pyrenew/deterministic/deterministic.py
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def __init__(
    self,
    name: str,
    value: ArrayLike,
) -> None:
    """Default constructor

    Parameters
    ----------
    name
        A name to assign to the variable.
    value
        An ArrayLike object.

    Returns
    -------
    None
    """
    self.name = name
    self.validate(value)
    self.value = value

    return None

sample

sample(record=False, **kwargs) -> ArrayLike

Retrieve the value of the deterministic Rv

Parameters:

Name Type Description Default
record

Whether to record the value of the deterministic RandomVariable. Defaults to False.

False
**kwargs

Additional keyword arguments passed through to internal sample calls, should there be any.

{}

Returns:

Type Description
ArrayLike
Source code in pyrenew/deterministic/deterministic.py
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
def sample(
    self,
    record=False,
    **kwargs,
) -> ArrayLike:
    """
    Retrieve the value of the deterministic Rv

    Parameters
    ----------
    record
        Whether to record the value of the deterministic
        RandomVariable. Defaults to False.
    **kwargs
        Additional keyword arguments passed through to internal
        sample calls, should there be any.

    Returns
    -------
    ArrayLike
    """
    if record:
        numpyro.deterministic(self.name, self)
    return self.value

validate staticmethod

validate(value: ArrayLike) -> None

Validates input to DeterministicVariable

Parameters:

Name Type Description Default
value ArrayLike

An ArrayLike object.

required

Returns:

Type Description
None

Raises:

Type Description
Exception

If the input value object is not an ArrayLike object.

Source code in pyrenew/deterministic/deterministic.py
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
@staticmethod
def validate(value: ArrayLike) -> None:
    """
    Validates input to DeterministicVariable

    Parameters
    ----------
    value
        An ArrayLike object.

    Returns
    -------
    None

    Raises
    ------
    Exception
        If the input value object is not an ArrayLike object.
    """
    if not isinstance(value, ArrayLike):
        raise ValueError(
            f"value {value} passed to a DeterministicVariable "
            f"is of type {type(value).__name__}, expected "
            "an ArrayLike object"
        )

    return None

NullObservation

NullObservation()

Bases: NullVariable

A null observation random variable. Sampling returns None.

Default constructor

Returns:

Type Description
None
Source code in pyrenew/deterministic/nullrv.py
58
59
60
61
62
63
64
65
66
67
68
def __init__(self) -> None:
    """Default constructor

    Returns
    -------
    None
    """

    self.validate()

    return None

sample

sample(mu: ArrayLike, obs: ArrayLike | None = None, **kwargs) -> None

Retrieve the value of the Null (None)

Parameters:

Name Type Description Default
mu ArrayLike

Unused parameter, represents mean of non-null distributions

required
obs ArrayLike | None

Observed data. Defaults to None.

None
**kwargs

Additional keyword arguments passed through to internal sample calls, should there be any.

{}

Returns:

Type Description
None
Source code in pyrenew/deterministic/nullrv.py
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
def sample(
    self,
    mu: ArrayLike,
    obs: ArrayLike | None = None,
    **kwargs,
) -> None:
    """
    Retrieve the value of the Null (None)

    Parameters
    ----------
    mu
        Unused parameter, represents mean of non-null distributions
    obs
        Observed data. Defaults to None.
    **kwargs
        Additional keyword arguments passed through to internal sample calls, should there be any.

    Returns
    -------
    None
    """

    return None

validate staticmethod

validate() -> None

Not used

Returns:

Type Description
None
Source code in pyrenew/deterministic/nullrv.py
70
71
72
73
74
75
76
77
78
79
@staticmethod
def validate() -> None:
    """
    Not used

    Returns
    -------
    None
    """
    return None

NullVariable

NullVariable()

Bases: DeterministicVariable

A null (degenerate) random variable. Sampling returns None.

Default constructor

Returns:

Type Description
None
Source code in pyrenew/deterministic/nullrv.py
13
14
15
16
17
18
19
20
21
22
23
def __init__(self) -> None:
    """Default constructor

    Returns
    -------
    None
    """

    self.validate()

    return None

sample

sample(**kwargs) -> None

Retrieve the value of the Null (None)

Parameters:

Name Type Description Default
**kwargs

Ignored.

{}

Returns:

Type Description
None
Source code in pyrenew/deterministic/nullrv.py
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
def sample(
    self,
    **kwargs,
) -> None:
    """Retrieve the value of the Null (None)

    Parameters
    ----------
    **kwargs
        Ignored.

    Returns
    -------
    None
    """

    return None

validate staticmethod

validate() -> None

Not used

Returns:

Type Description
None
Source code in pyrenew/deterministic/nullrv.py
25
26
27
28
29
30
31
32
33
34
@staticmethod
def validate() -> None:
    """
    Not used

    Returns
    -------
    None
    """
    return None