Skip to main content

statistical causality discovery based on cyclic model

Project description

cyclicmodel

Statistical causal discovery based on cyclic model.
This project is under development.

Summary

Python package that performs statistical causal discovery under the following condition:

  1. there are unobserved common factors
  2. two-way causal relationship exists

cyclicmodel has been developed based on bmlingam, which implemented bayesian mixed LiNGAM.

Example

import numpy as np
import pymc3 as pm
import cyclicmodel as cym

# Generate synthetic data,
# which assumes causal relation from x1 to x2
n = 200
x1 = np.random.randn(n)
x2 = x1 + np.random.uniform(low=-0.5, high=0.5, size=n)
xs = np.vstack([x1, x2]).T

# Model settings
hyper_params = cym.define_model.CyclicModelParams(
    dist_std_noise='log_normal',
    df_indvdl=8.0,
    dist_l_cov_21='uniform, -0.9, 0.9',
    dist_scale_indvdl='uniform, 0.1, 1.0',
    dist_beta_noise='uniform, 0.5, 6.0')

# Generate PyMC3 model
model = cym.define_model.get_pm3_model(xs, hyper_params, verbose=10)

# Run variational inference with PyMC3
with model:
  fit = pm.FullRankADVI().fit(n=100000)
  trace = fit.sample(1000, include_transformed=True)

# Check the posterior mean of the coefficients
print(np.mean(trace['b_21']))  # from x1 to x2
print(np.mean(trace['b_12']))  # from x2 to x1

Installation

pip install cyclicmodel

References

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

cyclicmodel-0.0.4.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

cyclicmodel-0.0.4-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file cyclicmodel-0.0.4.tar.gz.

File metadata

  • Download URL: cyclicmodel-0.0.4.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cyclicmodel-0.0.4.tar.gz
Algorithm Hash digest
SHA256 98a7c74e285fb7050e27ea29151f02e7a2e5d18c6a30358bb3639395f170237e
MD5 94b9ec0d8f19f086d83c7f9d5fc86442
BLAKE2b-256 d16fa581c5effe5598ac2ba04ff889867f7340903734a580d2876204ecc0d8a1

See more details on using hashes here.

File details

Details for the file cyclicmodel-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for cyclicmodel-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b9009ad8e98e2bea3968886e607a30df28e24346ed45f5b3a91b3d95034a9b5c
MD5 3a9f354a5e5f29df45804962014f79b0
BLAKE2b-256 4286d7ab4925b36320c602b97057b4b39aaaa81a08cea8d31dfce1623a442b0a

See more details on using hashes here.

Supported by

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