Skip to main content

Forecastability triage for time series using AMI, pAMI, and covariate-aware dependence diagnostics before expensive model search.

Project description

Forecastability Triage Toolkit

Forecastability triage for time series using AMI, pAMI, and covariate-aware dependence diagnostics before expensive model search.

CI PyPI Downloads PyPI version Version Docs Python 3.11-3.12 Research base License

Why this package

Forecastability triage for time series using AMI, pAMI, and covariate-aware dependence diagnostics before expensive model search.

Install

pip install dependence-forecastability

Optional runtime extras:

pip install "dependence-forecastability[transport]"
pip install "dependence-forecastability[agent]"

Quickstart

Run one deterministic univariate triage call through the top-level facade:

from forecastability import TriageRequest, generate_ar1, run_triage

series = generate_ar1(n_samples=300, phi=0.8, random_state=42)
result = run_triage(
    TriageRequest(
        series=series,
        goal="univariate",
        max_lag=20,
        n_surrogates=99,
        random_state=42,
    )
)

summary = {
    "blocked": result.blocked,
    "readiness_status": result.readiness.status.value,
    "compute_surrogates": None if result.method_plan is None else result.method_plan.compute_surrogates,
    "forecastability_class": None if result.interpretation is None else result.interpretation.forecastability_class,
    "primary_lags": [] if result.interpretation is None else list(result.interpretation.primary_lags),
}
print(summary)

Equivalent minimal files:

Start here

Canonical walkthrough

The canonical notebook is notebooks/walkthroughs/00_air_passengers_showcase.ipynb.

When to use it

Use this package when you need a deterministic pre-modeling screen to decide whether a series has exploitable structure before expensive model search.

Links

[!NOTE] run_covariant_analysis() supports six methods: cross_ami, cross_pami, te, gcmi, pcmci, and pcmci_ami. The two PCMCI methods are optional and skip gracefully when the causal extra is unavailable.

Install optional causal dependencies only if you need PCMCI methods:

pip install "dependence-forecastability[causal]"

Transport and runtime entry points:

Surface Entry point Stability
Python facade forecastability, forecastability.triage Stable
CLI forecastability Beta
HTTP API forecastability.adapters.api:app Beta
Dashboard forecastability-dashboard Beta
MCP server adapter surface Experimental
Agent narration adapter surface Experimental

Repository Workflow

If you are working in the repository rather than installing the package, start here:

uv sync

Canonical maintainer scripts:

Script Role
scripts/run_canonical_triage.py Canonical single-series workflow
scripts/run_benchmark_panel.py Benchmark-panel workflow
scripts/build_report_artifacts.py Report artifact builder

Secondary utilities:

  • scripts/download_data.py
  • scripts/run_exog_analysis.py
  • scripts/check_notebook_contract.py
  • scripts/rebuild_benchmark_fixture_artifacts.py
  • scripts/rebuild_diagnostic_regression_fixtures.py

Current config status:

Config Current role
configs/benchmark_panel.yaml Active benchmark-panel configuration
configs/canonical_examples.yaml Descriptive reference for canonical examples, not the root runner's only source of truth
configs/interpretation_rules.yaml Reference thresholds for interpretation policy
configs/benchmark_exog_panel.yaml Secondary exogenous benchmark workflow
configs/exogenous_screening_workbench.yaml Secondary workbench configuration
configs/robustness_study.yaml Secondary robustness-study workflow

Notebook Path And Artifact Surfaces

Canonical notebook:

Follow-on notebooks:

  • notebooks/walkthroughs/01 through 04
  • notebooks/triage/01 through 06 for deep dives

Main checked-in artifact surfaces:

  • outputs/json/canonical_examples_summary.json and related canonical JSON outputs
  • outputs/tables/*.csv
  • outputs/reports/*.md

[!NOTE] Checked-in artifacts are reference outputs. They are useful examples of the output surface, but they should not be treated as guaranteed-fresh build products for the current working tree.

Statistical Notes

  • AMI is computed per horizon rather than aggregated before computation.
  • pAMI is a project extension and a linear-residual approximation, not exact conditional mutual information.
  • Surrogate significance uses phase-randomized FFT surrogates with at least 99 surrogates and two-sided 95% bands.
  • “Significance skipped” and “no significant lags” are different outcomes. Use compute_surrogates or the route choice to tell them apart.
  • In rolling-origin workflows, diagnostics are computed on the training window only.
  • Phase surrogates can be conservative for strongly periodic series.

Documentation Map

Need Start here
Documentation index by role docs/README.md
Stable imports and runtime entry points docs/public_api.md
Live module layout docs/code/module_map.md
HTTP API contract docs/api_contract.md
Notebook path docs/notebooks/README.md
Contributor workflow docs/maintenance/developer_guide.md

For the repository-wide docs map, see docs/README.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dependence_forecastability-0.3.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dependence_forecastability-0.3.0-py3-none-any.whl (232.9 kB view details)

Uploaded Python 3

File details

Details for the file dependence_forecastability-0.3.0.tar.gz.

File metadata

File hashes

Hashes for dependence_forecastability-0.3.0.tar.gz
Algorithm Hash digest
SHA256 975a70d8273b75d48f63f221ba39d2609e071b7a04bb4aea0263715698d2dff1
MD5 e655880eaa70564db5f8018cd4c81bdc
BLAKE2b-256 c8c9ca95c7e0d9e0abbe8382e1e7ec95318e8e30c144fb7592a1a337b63947aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for dependence_forecastability-0.3.0.tar.gz:

Publisher: publish-pypi.yml on AdamKrysztopa/dependence-forecastability

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dependence_forecastability-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dependence_forecastability-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b07a577bf82cdf977d12c3627e03ccb4f653f996f7f631836772e62a7547e25c
MD5 651e5775a692b2e886e8fb7f8c148cf6
BLAKE2b-256 c822300075e57d88403debb3c4740d3b4f639cf1014f9c143934dd9e6aa675f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for dependence_forecastability-0.3.0-py3-none-any.whl:

Publisher: publish-pypi.yml on AdamKrysztopa/dependence-forecastability

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page