conformal_inference()): permutation-based p-values and
confidence intervals following Chernozhukov, Wüthrich & Zhu (2021).
Works with sharp fits across all supported estimation methods
(scm, sdid, gsc, mc, si). The counterfactual proxy is re-estimated
under the null on all T periods (essential for finite-sample validity per
CWZ §2.2), and p-values are obtained via moving-block (cyclic-shift) permutation
of the estimated residuals. Confidence intervals are constructed by test
inversion over a user-supplied or automatically chosen grid.
Returns a coresynth_inference subclass compatible with tidy() and glance().panel_to_matrices(): fill loop replaced by vectorised match() + matrix-index
assignment; removes an O(n × (T + N)) bottleneck in the shared data-prep path.tasc.cpp: safe_inv_sympd() helper added so the Kalman filter degrades to
pinv instead of aborting when the innovation covariance is not numerically PD.%||% null-coalescing helper centralised in utils.R; duplicate definitions in
broom.R and plot.R removed.check_sharp_adoption() (unused internal function) removed.First public release.
pred(), out-of-sample V selection (v_selection = "oos"),
donor filtering (donor_mspe_threshold), penalised SCM (lambda_pen), and staggered adoption.
Inference: MSPE ratio permutation test via mspe_ratio_pval().covariates =), sharp and staggered adoption.
Inference: sdid_inference() with placebo / bootstrap / jackknife / jackknife_global.gsc_boot()) and non-parametric (gsc_inference()).si_inference() with bootstrap / jackknife / jackknife_global.scm_design() with base / weakly_targeted / unit_level variants,
blank-period permutation test, and split-conformal confidence intervals.scm_fit(outcome ~ treatment | unit + time, data, method = ...) entry point for all methods.panel_to_tensor() for multi-arm SI data preparation.broom integration: tidy(), glance(), augment() for all methods and inference objects.plot.coresynth(): trend, gap, and weights plots via ggplot2.export_json(): JSON export for reproducibility.All core optimisations implemented in C++ via RcppArmadillo:
50–70x faster than the Synth package for typical panel sizes (N_co ≤ 30).
src/inference.cpp placebo loops parallelised with OpenMP.