Quarterly estimates from 1962 to 2024 combining functional data analysis and Bayesian state-space models
1962–2024 · Quarterly · PSID, SCF, CEX, SIPP, CPSusing CSV, DataFrames, Downloads # Reconstructed series: one row per quarter, harmonized names df = CSV.read(Downloads.download( "https://www.distributionaldynamics.com/data/dd_series.csv"), DataFrame) # Top-10% wealth share (PSID view), over time using Plots plot(df.time, df.wealth_share_top_psid, xlabel="Quarter", label="Top wealth share")
import pandas as pd # Reconstructed series: one row per quarter, harmonized names df = pd.read_csv("https://www.distributionaldynamics.com/data/dd_series.csv") # Top-10% wealth share (PSID view), over time import matplotlib.pyplot as plt plt.plot(df["time"], df["wealth_share_top_psid"]) plt.xlabel("Quarter"); plt.show()
* Reconstructed series: one row per quarter, labeled variables use "https://www.distributionaldynamics.com/data/dd_series.dta", clear gen t = yq(year, quarter) tsset t, quarterly * Top-10% wealth share (PSID view), over time tsline wealth_share_top_psid
Explore the synthetic distributional data across consumption, income, and wealth. Select a variable, metric, and toggle individual deciles. Gray bands indicate NBER recession periods.
Source: Bayer, Calderon & Kuhn (2025). PSID implied estimates from the state-space model. Levels in trillions USD; quantiles in USD.
Source: Bayer, Calderon & Kuhn (2025). Bivariate joint distribution of population shares from marginalized CIW copula grid.
We develop a new method for deriving high-frequency synthetic distributions of consumption, income, and wealth. The core of the method is to treat the distributional data as a time series of functions whose underlying factor structure follows a state-space model, estimated using Bayesian techniques. The method incorporates different sources of microdata regardless of their frequency and variable coverage.
PSID, SCF, CEX, SIPP, and CPS — each with different frequency and variable coverage
Quantile functions for marginals plus copula for joint dependence
PCA on Legendre polynomial coefficients captures variation in a few factors
Factor dynamics follow a VAR in companion form with aggregate covariates
MCMC with Kalman smoother produces posterior draws of the latent factors
High-frequency quarterly output: full distributions for all 247 quarters
State equation
$$\begin{bmatrix} F_t \\ Y_t \end{bmatrix} = \begin{bmatrix} \Phi_{FF} & \Phi_{FY} \\ \Phi_{YF} & \Phi_{YY} \end{bmatrix} \begin{bmatrix} F_{t-1} \\ Y_{t-1} \end{bmatrix} + \varepsilon_t, \qquad \varepsilon_t \sim \mathcal{N}(0, \Omega)$$Observation equation
$$\tilde{\theta}^j_t = H^j_t \left( \alpha^j \, \hat{\Gamma}^{\text{MF}} F_t + \nu^j_{F,t} \right)$$Here \(F_t\) are the latent distributional factors, \(Y_t\) are aggregate covariates, \(\hat{\Gamma}^{\text{MF}}\) is the factor loading matrix from PCA, and \(H^j_t\) is a selector matrix for each dataset \(j\). The model handles mixed frequencies through the time-aggregation parameter \(\alpha^j\).
The synthetic distributional data integrate five major U.S. household surveys, each covering different time periods and variables. C = Consumption, I = Income, W = Wealth.
Uncertainty: the series above are posterior point estimates. For a
proper treatment of estimation uncertainty, use the posterior factor draws
(smoothed_factor_draws.csv) together with the reconstruction
helpers in the DD_data
repository to propagate draws through any statistic of interest;
pointwise bands for the factors are in
smoothed_factors_bands.csv.
@article{bayer2025distributional,
author = {Bayer, Christian and Calderon, Luis and Kuhn, Moritz},
title = {Distributional Dynamics},
year = {2025},
note = {CEPR Discussion Paper 19829},
url = {https://www.distributionaldynamics.com}
}