pyhgf.updates.prediction.continuous.predict_precision#

pyhgf.updates.prediction.continuous.predict_precision(attributes: Dict, edges: Tuple[AdjacencyLists, ...], node_idx: int) Array[source]#

Compute the expected precision of a continuous state node.

The expected precision at time \(k\) for a state node \(a\) is given by:

\[\hat{\pi}_a^{(k)} = \frac{1}{\frac{1}{\pi_a^{(k-1)}} + \Omega_a^{(k)}}\]

where \(\Omega_a^{(k)}\) is the total predicted volatility. This term is the sum of the tonic (endogenous) and phasic (exogenous) volatility, such as:

\[\Omega_a^{(k)} = t^{(k)} \exp{ \left( \omega_a + \sum_{j=1}^{N_{vopa}} \kappa_j \mu_a^{(k-1)} \right) }\]

with \(\kappa_j\) the volatility coupling strength with the volatility parent \(j\).

The effective precision \(\gamma_a^{(k)}\) is given by:

\[\gamma_a^{(k) = \Omega_a^{(k)}} \hat{\pi}_a^{(k)}\]

This value is also saved in the node for later use during the update steps.

Parameters:
attributes

The attributes of the probabilistic network that contains the continuous state node.

edges

The edges of the probabilistic network as a tuple of pyhgf.typing.Indexes. The tuple has the same length as the number of nodes. For each node, the index list value/volatility - parents/children.

node_idx

Index of the node that should be updated.

Returns:
expected_precision

The new expected precision of the value parent.

effective_precision

The effective_precision \(\gamma_a^{(k)}\). This value is stored in the node for later use in the update steps.

References

[1]

Weber, L. A., Waade, P. T., Legrand, N., Møller, A. H., Stephan, K. E., & Mathys, C. (2023). The generalized Hierarchical Gaussian Filter (Version 1). arXiv. https://doi.org/10.48550/ARXIV.2305.10937