ergodic
Causal AI in one Python package. ergodic learns causal graphs from data, tells you
whether a question can be answered from them, and estimates the effect with an
interval. It also covers quasi-experiments on panels, process mining on event logs,
structural causal models, and Bayesian forecasting with drivers. ergodic runs
locally; the optional [welt] extra calls the hosted Welt service. ergodic is
pre-1.0, so the API can change between minor versions.
Documentation: docs.ergodic.dev
Install
pip install "ergodic"
# or
uv add "ergodic"
Requires Python 3.11 or later. The extras "ergodic[scm]", "ergodic[forecast]" and
"ergodic[latent]" add PyMC for structural causal models, forecasting and hidden
regimes. "ergodic[welt]" connects to
Welt, which runs hosted models on your data.
Your first causal effect
from ergodic import discover, estimate_effect, identify_effect
from ergodic.datasets import load_earthquake
alarm = load_earthquake(n=10_000, seed=0) # the burglar-alarm network (Pearl, 1988)
graph = discover(alarm.data, method="pc").graph # learn the graph from data alone
for edge in sorted(edge.glyph() for edge in graph.edges):
print(edge)
print(identify_effect(graph, "Burglary", "JohnCalls")) # can the data answer it?
print(estimate_effect(graph, alarm.data, "Burglary", "JohnCalls", treated="True"))
Alarm --> JohnCalls
Alarm --> MaryCalls
Alarm <-- Burglary
Alarm <-- Earthquake
Identification(adjustment: P(JohnCalls | do(Burglary)) = sum_z P(JohnCalls | Burglary, z) P(z), with z = {Earthquake})
EffectEstimate(aipw, analytic: ate=0.7982, se=0.0333, 95% CI [0.733, 0.863], n=10000)
The true effect, from the network's own tables, is 0.793: inside the interval. The documentation starts from this program and goes step by step.
Links
- Documentation
- Welt: hosted models for prediction, causal discovery and forecasting
- Changelog, contributing, security
Licence
Metadata
Release files for ergodic 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ergodic-0.2.0.tar.gz | 2.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ergodic-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.2 MB
Release files / ergodic-0.2.0.tar.gz
| Download URL | ergodic-0.2.0.tar.gz |
|---|---|
| Size | 2.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c6dce71b62a450b9374ba1287e24f58ca134dc8b46fd6beeca43f96cbf5cd312
|
|
BLAKE2b-256 checksum How to use checksums |
47891e5414a4e198182ef49d6bd381ac9c726e94cbadfd9f53eeedff3bb734d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / ergodic-0.2.0-py3-none-any.whl
| Download URL | ergodic-0.2.0-py3-none-any.whl |
|---|---|
| Size | 791.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29dc55f385acdbf722de91f8d8381911d2dcb78c3c293bd0aebb63f9ff9aacbf
|
|
BLAKE2b-256 checksum How to use checksums |
72b6d127beb5d757b9581167f8e741a80dc968ee5de044dd2060d7d52a020140
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|