kalman_loglikelihood

Defined in fynance.features.filters

kalman_loglikelihood(e, S)[source]

Prediction-error decomposition log-likelihood.

Computes:

L = -0.5 * sum_t [ log|S_t| + e_t^T S_t^{-1} e_t + n log(2π) ]
Parameters:
enp.ndarray of shape (T, n)

Innovations from kalman_filter.

Snp.ndarray of shape (T, n, n)

Innovation covariances from kalman_filter.

Returns:
float

Log-likelihood value (higher is better).

Examples

>>> import numpy as np
>>> rng = np.random.default_rng(0)
>>> y = rng.standard_normal((20, 1))
>>> G = F = W = V = np.eye(1)
>>> m, C, a, R, e, S = kalman_filter(y, G, F, W, V)
>>> ll = kalman_loglikelihood(e, S)
>>> isinstance(ll, float)
True
>>> ll < 0
True