MFVARResult.implied_low_frequency#

MFVARResult.implied_low_frequency()[source]#

Aggregate the inferred latent path back to the observed frequency.

Return type:

NDArray[double]

Returns:

An (nobs, k) array whose entries are the model’s fitted value for a low-frequency reading ending at that period, nan in the first period - 1 rows where no full window exists. Comparing this with observed at the periods where a reading exists is the residual check for a mixed-frequency model; with no measurement noise in the observation equation the two agree to rounding by construction, so the informative comparison is at the periods between readings, against any external benchmark.

Example

>>> import numpy as np
>>> A, S = np.array([[[0.5, 0.1], [0.0, 0.4]]]), np.eye(2)
>>> y = np.full((24, 2), np.nan)
>>> rng = np.random.default_rng(0)
>>> y[:, 0], y[2::3, 1] = rng.standard_normal(24), rng.standard_normal(8)
>>> res = MFVAR(A, S, kinds=["high", "flow"], period=3).smooth(y)
>>> implied = res.implied_low_frequency()
>>> bool(np.isnan(implied[:2]).all()), bool(np.allclose(implied[2::3, 1], y[2::3, 1]))
(True, True)
>>> bool(np.allclose(implied[2:, 0], res.endog[2:, 0]))
True