The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
convergenceDFM analyzes economic convergence between two
panels of series (for example, labour-value price indices X
and market price indices Y) combining Dynamic Factor Models
(DFM) with discrete-time, mean-reverting Ornstein-Uhlenbeck / AR(1)
factor processes, plus formal convergence and coupling tests.
The end-to-end entry point is
run_complete_factor_analysis_robust(). The example below
uses simulated data and skips the Bayesian OU step (which needs a Stan
backend); set skip_ou = FALSE to run it.
set.seed(123)
X <- matrix(rnorm(120 * 8), 120, 8) # labour-value price indices
Y <- X + matrix(rnorm(120 * 8, 0, 0.5), 120, 8) # market price indices
res <- run_complete_factor_analysis_robust(
X_matrix = X, Y_matrix = Y,
max_comp = 3, dfm_lags = 1,
skip_ou = TRUE,
make_plots = FALSE,
verbose = FALSE
)
res$dfm$r2_global # in-sample fit of the factor VAR
res$dfm$half_life_dominantTo assess whether the X factors lead the Y factors beyond chance, use the time-shift null. Do not rely on a rotation null: the coupling statistics are invariant to orthogonal rotation, so a rotation null cannot reject (see the methodological notes).
null <- run_rotation_null_on_results(res, B = 500, seed = 1,
null_method = "circular_shift")
null$p_values # Monte Carlo one-sided p-values
null$p_values_fdr # Benjamini-Hochberg adjustedThe out-of-sample channel (does lagged X improve the forecast of Y?) is tested with a Clark-West statistic:
With a Stan backend, estimate_factor_OU() returns MCMC
diagnostics and a genuine mean-reversion test: a factor is convergent
only if the entire credible interval of its persistence phi
lies inside (-1, 1). Because phi is
not constrained to (0, 1), the test can fail to
find convergence – it is not true by construction.
This section documents choices that are easy to misread.
1. The OU model is discrete-time AR(1). The
estimated object is a first-order vector autoregression with
cross-equation coupling, the discrete-time analogue of a coupled
Ornstein-Uhlenbeck system. For a series sampled at interval ,
persistence maps to the continuous mean-reversion speed by , i.e. , and
the half-life is periods. phi is given a generous support
(-1.5, 1.5) and a weakly-informative, convergence-neutral
prior normal(0.5, 0.5) so the posterior can place mass on
unit-root or explosive dynamics; convergence is then a testable
conclusion.
2. Factors are PLS scores, not principal components.
Factor extraction is supervised (Partial Least Squares uses
Y), which makes the in-sample fit of “Y from
X factors” optimistic. Always read the out-of-sample
diagnostics (r2_oos_*, the Clark-West test) rather than the
in-sample R^2. This differs from the principal-component
DFM of Stock-Watson; the references describe the spirit of the approach,
not an identical estimator.
3. The coupling null breaks time, not basis.
Procrustes, canonical correlations, principal angles and the
dynamic-beta norm are invariant to orthogonal rotation of either factor
space. A rotation-based null is therefore degenerate. The valid null
circularly shifts Y in time (or block-bootstraps it),
preserving each series’ own autocorrelation while destroying the
cross-series alignment.
4. Residual unit-root tests use generated
regressors. The equilibrium errors fed to ADF/PP are built from
estimated OU parameters. Standard Dickey-Fuller critical values
over-reject on such residuals; corroborate any rejection with
test_cointegration_control() (Johansen). The package flags
this with a warning and a caveat field.
5. The CPI “disaggregation” is a convex weight blend. It mixes a base weight matrix with a time-distributed, SVD-derived data weight via . There is no likelihood and no Bayes’ rule; the historical “Bayesian”/“posterior” naming is kept only for backward compatibility.
6. The global index is a heuristic summary. The 0-1 convergence/robustness indices aggregate transformed sub-scores with fixed thresholds. Treat the verdict as a summary, not a calibrated probability; base inference on the individual tests and their FDR-adjusted p-values.
Every stochastic routine accepts and honours a seed. The
pipeline takes a single master seed and threads it through
data jitter, component selection, OU sampling and the robustness
tests.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.