Skip to content

v0.28.0

Latest

Choose a tag to compare

@fesanghary fesanghary released this 07 Nov 19:41
312dd27

Added

  • run_grace and run_reap refine any directed candidate graph (candidate_graph=) or a
    CDNOTS graph: GRACE with L0 Hard Concrete gates, REAP with a spline partial-F
    grow-shrink (contemporaneous=True, effect_floor="adaptive"); CLI
    discover --algorithm reap. New GRACE options: grow rounds (grow_rounds,
    grow_variance, ...), an F-tested autoregressive head (ar_path),
    gate_threshold="auto" | "li", lambda_rule, effect_floor, data_transform,
    noise_model, with matching GraceResult fields.
  • CI tests gcm, wgcm, pcm (residual score) and raft, rift (random-feature
    F-tests); order_independent=True on KCIGPU, LinSigCIGPU, GCMIGPU, CMIknnGPU
    and CMIknnMixedGPU.
  • CDNOTS+ options, off by default: lag0_orient="lingam" orients undirected lag-0 edges
    (bootstrap-checked DirectLiNGAM, linear mechanisms); addback_alpha / veto_alpha /
    alpha_mci grow and prune lagged links (result.lag_refinements);
    return_prefix=True with finish_cdnots_plus() reuses one skeleton.
  • CDNOTS / CDNOTS+: majority_gamma (ambiguity band for the majority collider rule) and
    run_cdnots(collider_search="full" | "sepset").
  • Rendering of undirected lag-0 edges is chosen after discovery: to_binary(undirected=, conflict=), lossless to_marks(), plot(undirected=), and the same on the tigramite
    converters (cg_tig unchanged). evaluate_graph() adds *_lag0, *_lag0_adj and
    *_lagpos metrics.
  • run_lucid(pervasive_lagged="factor_adjusted"): opt-in factor-adjusted lagged edges on
    the pervasive route.
  • check_variance_dependence (variance-only lagged parents), feeding new inspect facts
    and recommendation["refine"]; merge_lag0.
  • corr_table() and pairs_panel().
  • Opt-in generator fixes: henon_chain(bounded_start=True),
    topology_scp(coef_pools="fixed"), RegimeConfig(threshold_rounding="ceil").
  • Example notebooks ci_test_selection and dowhy_latent_confounders.

Changed

Results can change for:

  • CDNOTS / CDNOTS+ lag-0 orientation: Meek R1 runs to closure, collider votes condition on
    correctly shifted parents, ambiguous triples and NaN scores stay undirected, collider
    cycles keep their true edges. Also CDNOTS+ with include_C=True and lag_verify=True.
  • run_cdnots_plus wraps discrete-unaware CI tests in StratifiedCIT, like run_cdnots;
    neither wraps chisq / gsquared (discrete_cols=[] restores the old behaviour).
  • A one-sided lag-0 forbid keeps the adjacency; forbid both directions to remove it.
  • GRACE defaults to its paper configuration (rank transform, Student-t likelihood,
    lambda_rule="xcorr", one grow round, autoregressive head, gate_threshold="auto",
    effect_floor=1-exp(-0.02)). A supplied skeleton= is a starting point;
    grow_rounds=0, ar_path=False keeps the result inside it.
  • recommend_config: always CDNOTS; the CI test follows the data (cmiknn-mixed-gpu,
    rcot, raft, parcorr-gpu), with a GRACE or REAP refinement.
  • LUCID and inspect place the Marchenko-Pastur edge from residual degrees of freedom, so
    routing and n_factors change on wide panels.
  • DFCITGPU: the bandwidth scales with |Z| and uses leave-one-out smoothing; the automatic
    block length is sqrt(n) of the tested rows; the CLI and discover_df pass it their alpha.
  • sigkci / SigKCIGPU are renamed linsig / LinSigCIGPU (old names deprecated) with a
    kernel-scaled ridge; RCOTGPU defaults to num_f2=min(25, floor(sqrt(T))),
    n_avg=1, seed=42; ParCorrGPU.__call__ reads the cached covariance (5.8x faster for
    scalar callers).
  • causal-ts -s seeds the CI test, and disk-cache keys include every result-shaping
    setting, so old caches miss. discover -a cdnots+ defaults --alpha to 0.01.
  • run_regime_discovery counts lag-0 edges in the segment vote; to_design_matrix drops
    lagged children (with a warning); inspect skips non-numeric columns.
  • Cedar pvalue_matrix is NaN (JSON null) for untested self-loops and required edges.

API:

  • Keyword-only: orient_margin, legacy_mci_conds, routed_deconfound options after
    arch_alpha, and run_cdnots_gated arguments after lambda_cv.
  • discover_df(ci_test=) reaches GRACE, GRACE-SS and REAP; create_ci_test ignores
    device for CPU-only tests; causalts.__all__ drops import helpers; Cedar's
    max_prune_path is deprecated.

Fixed

  • CDNOTS / CDNOTS+ background knowledge: required lag-0 edges are oriented and never
    tested away (time-shifted copies included); edges forbidden both ways are removed; the
    forbidden-ancestor cleanup keeps required edges; ancestral_violations reports
    unsatisfied constraints.
  • CDNOTS+: pvalue_matrix dropped lagged tests and transposed lag-0 ones; max_conds_*
    kept the lowest-indexed parents instead of the strongest; a gapped lag_list read the
    wrong lags; a C column was taken as a collider middle; lagged o-o / x-x and C edges
    rendered wrongly.
  • Discrete data: StratifiedCIT / CMIknnMixedGPU lag structure, missing values, cache
    keys and permutation null; misaligned discrete columns with include_C=True; a crash
    with --ci-test cmiknn-mixed-gpu (now rejected for CEDAR and GRACE-SS); boolean columns.
  • CI tests: infinite input raises ValueError; ParCorrGPU stale cache after replaced
    data and ill-conditioned batch tests (#74); GCMIGPU with multivariate X or Y;
    randomised nulls honour seed; RCOTGPU order dependence; LinSigCIGPU reuse across
    lag layouts; DFCITGPU over-rejection with |Z| >= 2 and the CLI's fixed block length.
  • GRACE run_ci_skeleton(include_C=False) treated the last variable as C; a core-only
    install failed to import (undeclared six).
  • causal-ts evaluate / --ground-truth trimmed extra lags; shd_2d / shd_3d
    counting; graph comparison plots with lag-0 mirror marks or one variable;
    run_tigramite(method="pc_stable") returned an empty graph; select_features C-label
    collisions.
  • sensitivity_analysis() and routed_deconfound(keep_undirected=True, pervasive_base="tetrad") no longer raise; ChangePointRegimeDetector.assign on
    pandas 3; generate -s 0; check_linearity on long lags; read-only input warnings;
    docstring and CLI help errors.