Banbura 2013 - Mixed Frequency State Space and Mariano-Murasawa Aggregation

Summary

Specify the model at the highest frequency; low-frequency series are the same latent high-frequency series observed periodically (stocks) or as a weighted sum (flows). For log-differenced flows the Mariano-Murasawa approximation keeps the aggregation linear, with the weights for quarterly GDP in a monthly model.

Overview

Notation: is the counterpart of defined over an observation interval of periods, observed at (periodically missing for ). A vintage’s information set is ; gives the ragged edge. High-frequency construct: .

Main Content

Stock and flow aggregation

Stock: at . Flow: .

Aggregation of differenced variables

With : for stocks (weights for ). For flows, with for , for , and 0 otherwise (a triangular kernel).

Mariano-Murasawa approximation (log-differenced flows)

If and , the approximation (suitably centred) gives the same linear weights , so the observational constraint stays linear. For quarterly GDP growth in a monthly model:

General state-space form

; . Given , the Kalman filter and smoother yield and and handle missing observations directly; nowcasts and forecasts of any variable come from the same pass. is the “filter uncertainty” (signal extraction part of the uncertainty). Mixed frequency and ragged edges are missing-data problems.

Examples

Quarterly growth from a monthly path

Monthly growth (%) for the last five months, oldest to newest: , i.e. . Then . The weights sum to 9, so this kernel is applied to monthly growth and then rescaled by the normalisation chosen for the log approximation (dividing by 3 gives the quarterly growth of the three-month average level, as in the original Mariano-Murasawa construction).

import numpy as np
w=np.array([1,2,3,2,1])               # Mariano-Murasawa weights for k=3
def quarterly_from_monthly(y):       # y: monthly latent growth; returns y^3_t at t=2,5,8... (0-based)
    return np.array([w@y[t-4:t+1][::-1] for t in range(4,len(y),3)])
# state-space observation row for GDP: Z = [w[0],...,w[4]] on lags of y_t (state stacked with 4 lags)

Connections

Missing-data view: periods without the low-frequency print are simply rows with NaN observations (The Kalman Filter). Integrating the path out with banded precision matrices (E98) is the same likelihood as Marginal Likelihood via the Kalman Filter but in precision form.

See Also

Banbura et al 2013 - Now-casting and the Real-Time Data Flow - Overview