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.
expect_identical) against fixtures frozen on the
development machine. The underlying computations run through
floating-point linear algebra (BLAS), whose last few significant digits
are not portable across CRAN’s heterogeneous platforms / BLAS builds, so
the bit-exact assertions failed on the CRAN check farm at the ~1e-11
(Leave-Cluster-Out) and ~1e-7 (reweighting) level. The portable
invariant is now numerical: expect_equal() with tolerances
(1e-6 and 1e-5 respectively) that absorb the
non-portable noise while staying two-to-five orders below the scale of
any genuine algorithmic regression. The stronger bit-exact assertion is
retained as a developer-machine guard via skip_on_cran().
Logical outputs (robust) remain compared bit-exactly, as
they are platform-invariant. No package code changed; this is a
test-rigor fix that keeps the three rigor layers (algebraic /
statistical / numerical) strictly separate.compute_wedge(),
wedge_stationarity(),
placebo_values() (file
R/wedge_diagnostics.R). The wedge
W_i = Phi_i - V_i = K_i * G' - p_i isolates the marxian
redistribution of surplus, cancelling the shared cost price
k = c + v, and sums to zero across sectors by construction.
The module builds the wedge (with a per-period zero-sum check), tests
its per-sector and panel mean-reversion / unit-root behaviour (AR(1)
reversion speed and half-life plus an augmented Dickey-Fuller test via
urca), and constructs aggregate-preserving placebo “values”
as negative controls (a uniform-profit- rate scheme, where the wedge
vanishes and value equals the production price, and a seeded derangement
that mis-pairs capital and surplus while preserving the per-period
total). Used to move the evidential weight of the gravitation claim from
the definitional level co-movement to the construction-orthogonal wedge
dynamics, and to provide negative controls for the internal adversarial
validation. Fully tested in
tests/testthat/test-wedge.R.Single canonical disaggregation engine and a cross-sectional leave-out test for coupling robustness under input-output dependence.
run_disaggregation_custom_prior() (and its private helpers
compute_L_from_P, spread_likelihood,
posterior_weighted) never conditioned on the observed CPI
and duplicated the purpose of the dedicated package. They are deleted.
The single source of truth is now the closed-form conjugate engine
BayesianDisaggregation::disaggregate_conjugate() (a
Kalman/RTS smoother, pure R), added to Imports.test_reweighting_robustness() rewired.
Each alternative weighting scheme is a constant-in-time prior replicated
across periods to form the weight matrix; the sectoral levels are the
conjugate posterior median, genuinely conditioned on the CPI, instead of
a deterministic blend.read_cpi() (clean error on an unidentifiable column) and
the internal read_weights_matrix() move to
R/data_io.R; they are generic Excel input/output, not part
of the disaggregation engine, and stay in this package.test_leave_cluster_out() (new,
exported). Generalizes the delete-one-sector jackknife to
delete-one-cluster: each group of sectors is dropped from both
X and Y and the coupling is re-estimated.
Under input-output (“MIP”) dependence a naive leave-one-out is
optimistic; dropping an entire value chain forces the prediction onto
the general gravitation. It is the cross-sectional complement of the
temporal time-shift / block-bootstrap nulls and reuses their coupling
pipeline (it does not reimplement it).build_cluster_map() (new, exported).
Pluggable sector-to-cluster map. A genuine map (the Leontief partition)
is supplied via cluster_map; when it is absent a documented
fallback ("correlation" or "com") is built and
flagged as a stopgap proxy, not a demand-linkage partition.bias/se
are reported with the documented balanced-cluster caveat; the primary
outputs are per-cluster influence and the robustness verdict.test_reweighting_robustness() now propagates its
seed to the data diagnosis and the cross-validated PLS
component selection, closing a gap where the per-scheme couplings
depended on the ambient RNG state (call order). A pre-existing
error-handler bug that dropped the failure marker for a failed scheme
(<- instead of <<-) is fixed.test-disaggregation-import.R,
test-leave-cluster-out.R) and regression goldens
(test-golden-convergence.R): the Leave-Cluster-Out
reproduces a frozen result bit-exactly, and the rewired reweighting
reproduces frozen couplings within numerical tolerance (the layers are
kept separate). Goldens and Excel fixtures are regenerated by
validacion/make_golden_convergence.R.canonical-disaggregation-and-leave-cluster-out documents
both decisions.Robustness-focused overhaul. This release fixes several correctness bugs and methodological flaws that could bias or invalidate convergence/coupling inference, and aligns the documentation with the implemented API.
rotation_null_test() previously generated its null by
random orthogonal rotation of the factor space. The four coupling
statistics (Procrustes, CCA, principal angles, dynamic-beta norm) are
invariant to orthogonal rotation, so the null was degenerate
and the test could never reject. The default null is now a
circular time-shift / moving-block bootstrap that
preserves each series’ marginal dynamics while breaking the cross-series
temporal alignment. The pure-rotation null is kept only as an explicitly
documented invariance diagnostic
(null_method = "rotation").test_permutation_robustness() previously permuted the
columns of the Y factors; the coupling strength is invariant to
that permutation, so the null was degenerate. It now permutes the
time index of Y (circular shift) to break the X->Y
relationship.phi is no longer hard-constrained to
(0, 1); it can express unit-root and mildly explosive
dynamics, so the convergence verdict is now a genuine test of
H0: not stationary rather than a constraint that is always
satisfied. The prior on phi is weakly informative and
centred at a neutral value rather than at high persistence.estimate_factor_OU()
now returns and (optionally) warns on R-hat, bulk/tail effective sample
size and divergent transitions, and the previously dead
adapt2/mtd2 controls now drive an automatic
re-run when divergences are detected.test_jackknife_sectors() now performs a leave-one-sector
-out jackknife with bias and standard-error estimates and influence
ranking, instead of a single leave-top-k drop.deltaR2_ou(),
rescue_short_run_channel()) now report a Clark-West /
Diebold-Mariano style test instead of a bare RMSE delta.seed argument:
rotation_null_test(),
test_permutation_robustness(),
sensitivity_analysis_weights() and the noise injection in
diagnose_data() previously ignored it.zzz.R defined .onAttach() twice; the
Stan-availability message is restored..pkgenv was overwritten with a vector, destroying the
package environment; it is now a real environment created in
.onLoad().read_cpi() used which.max() on a logical,
which silently selected column 1 when no date/CPI column matched; it now
errors cleanly.run_convergence_robustness_tests() used
exists("indices$sensitivity") (always FALSE);
the sensitivity block is now propagated.to_num_commas() now parses both European and
Anglo-Saxon number formats.calculate_hc_manual() implements HC4 (it previously
fell through to HC0) and uses sandwich/lmtest
when available.estimate_DFM() now returns robust t-statistics and
p-values, reports the dominant-root half-life, and no longer floors the
out-of-sample R^2 at -2.visualize_factor_dynamics() no longer fails when
save_plot = TRUE without a file name, and graphics are
opt-in within the pipeline.test_reweighting_robustness() no longer references an
unassigned object when weight reading fails.prepare_marxist_factors() now actually incorporates the
auxiliary series (TMG, COM_matrix,
SPVR_matrix, CA) it accepts.prepare_panel_data, estimate_dfm,
estimate_ou_process, plot_convergence); it now
uses the real API.@return sections of the test functions,
select_optimal_components_safe() and
estimate_DFM() now match the objects actually
returned.DESCRIPTION no longer over-claims
sandwich/lmtest usage; both are now Suggests
and used when present, with a documented HC fallback.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.