Skip to main content

Python interface to CmdStan

Project description

pycmdstan

pipeline status coverage report PyPI package version

Python interface to CmdStan.

Install

Pycmdstan is a pure-Python package which can be installed from PyPI

pip install --upgrade pycmdstan

or from sources

pip install -e git+https://gitlab.thevirtualbrain.org/tvb/pycmdstan

Usage

import os
os.environ['CMDSTAN'] = '~/src/cmdstan-2.17.1'
from pycmdstan import Model, Run

model = Model('''
data { vector[20] x; real mu; }
parameters { real sig; }
model { x ~ normal(mu, sig); }
generate quantities {
    vector[20] log_lik;
    for (i in 1:20) log_lik[i] = normal_lpdf(x[i] | mu, sig);
}
''')

runs = model.sample(
	data=dict(mu, **data),
	chains=4
)
assert runs.N_eff_per_iter.min() > 0.2
assert runs.R_hat.max() < 1.2

data = {'x': np.random.randn(20) + 5.0}
loo = []
mus = np.r_[1.0, 3.0, 5.0, 7.0, 9.0]
for mu in mus:
    run = model.sample(
        data=dict(mu=mu, **data), num_warmup=200, num_samples=200)
    loo.append(run['loo'])
assert mus[np.argmin(loo)] == 5.0

Contributing

Contributions are welcome, please start in the issue tracker. Use YAPF to format the code. The Dockerfile can ease local development,

docker build -t pycmdstan .
docker run --rm -it pycmdstan pytest -n4 pycmdstan/tests.py

Acknowledgements

  • PSIS code is by Aki Vehtari & Tuomas Sivula (BSD licensed, repo here)

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

pycmdstan-0.3.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

pycmdstan-0.3-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file pycmdstan-0.3.tar.gz.

File metadata

  • Download URL: pycmdstan-0.3.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pycmdstan-0.3.tar.gz
Algorithm Hash digest
SHA256 7dc67376067f758dd2503b9f0f68f17615880eab80915bb636d83d8e150c2742
MD5 2069363f3ee0aa40858b23f1033f7b19
BLAKE2b-256 c62bdc463ea1caa846d9ba9d6bb3000262e3046f0ff7a8566b7473e883e0b92c

See more details on using hashes here.

File details

Details for the file pycmdstan-0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pycmdstan-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9ffd055e857d6ec8e793a85897baf0bff5f03be2d1b23b75512fd6cdb07991ec
MD5 57c36ef9b186cd5fe2398c16899f72a3
BLAKE2b-256 93dccc14b81e5baaaf3b5fc24b256426bc83d5a7c8c56c63ea968dd4c463d8fb

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