Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stan-dev/pystan2
PyStan, the Python interface to Stan
https://github.com/stan-dev/pystan2
machine-learning probabilistic-programming python stan statistics
Last synced: 2 months ago
JSON representation
PyStan, the Python interface to Stan
- Host: GitHub
- URL: https://github.com/stan-dev/pystan2
- Owner: stan-dev
- License: gpl-3.0
- Archived: true
- Created: 2013-05-24T01:21:21.000Z (over 11 years ago)
- Default Branch: develop
- Last Pushed: 2021-02-17T17:59:24.000Z (almost 4 years ago)
- Last Synced: 2024-10-29T14:21:57.176Z (3 months ago)
- Topics: machine-learning, probabilistic-programming, python, stan, statistics
- Language: Python
- Homepage:
- Size: 53.4 MB
- Stars: 920
- Watchers: 51
- Forks: 191
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
PyStan: The Python Interface to Stan
====================================.. image:: https://raw.githubusercontent.com/stan-dev/logos/master/logo.png
:alt: Stan logo
:scale: 50 %|pypi| |travis| |appveyor| |zenodo|
.. tip:: PyStan 3 is available for Linux and macOS users. Visit the `PyStan 3 documentation `_ for details. PyStan 2 is not maintained.
**PyStan** provides a Python interface to Stan, a package for Bayesian inference
using the No-U-Turn sampler, a variant of Hamiltonian Monte Carlo.For more information on `Stan `_ and its modeling language,
see the Stan User's Guide and Reference Manual at `http://mc-stan.org/
`_.Important links
---------------- HTML documentation: https://pystan2.readthedocs.org
- Issue tracker: https://github.com/stan-dev/pystan/issues
- Source code repository: https://github.com/stan-dev/pystan
- Stan: http://mc-stan.org/
- Stan User's Guide and Reference Manual (pdf) available at http://mc-stan.orgRelated projects
----------------- ArviZ: `Exploratory analysis of Bayesian models with Python `_ by @arviz-devs
- Jupyter tool: `StanMagic `_ by @Arvinds-ds
- Jupyter tool: `JupyterStan `_ by @janfreyberg
- Scikit-learn integration: `pystan-sklearn `_ by @rgerkin.Projects using PyStan
---------------------
- BAMBI: `BAyesian Model-Building Interface `_ by @bambinos
- hBayesDM: `hierarchical Bayesian modeling of Decision-Making tasks `_ by @CCS-Lab
- Orbit: `Object-oRiented BayesIan Timeseries models `_ by @uber
- Prophet: `Timeseries forecasting `_ by @facebookSimilar projects
----------------- PyMC3: https://docs.pymc.io/
- emcee: https://emcee.readthedocs.io/en/stable/PyStan3 / Stan3
---------------
The development of PyStan3 with updated API can be found under `stan-dev/pystan-next `_Detailed Installation Instructions
----------------------------------
Detailed installation instructions can be found in the
`doc/installation_beginner.md `_ file.Windows Installation Instructions
---------------------------------
Detailed installation instructions for Windows can be found in docs under `PyStan on Windows `_Quick Installation (Linux and macOS)
------------------------------------`NumPy `_ and `Cython `_
(version 0.22 or greater) are required. `matplotlib `_
is optional. ArviZ is recommended for visualization and analysis.PyStan and the required packages may be installed from the `Python Package Index
`_ using ``pip``.::
pip install pystan
Alternatively, if Cython (version 0.22 or greater) and NumPy are already
available, PyStan may be installed from source with the following commands::
git clone --recursive https://github.com/stan-dev/pystan.git
cd pystan
python setup.py installTo install latest development version user can also use ``pip``
::
pip install git+https://github.com/stan-dev/pystan
If you encounter an ``ImportError`` after compiling from source, try changing
out of the source directory before attempting ``import pystan``. On Linux and
OS X ``cd /tmp`` will work.``make`` (``mingw32-make`` on Windows) is a requirement for building from source.
Example
-------.. code-block:: python
import pystan
import numpy as np
import matplotlib.pyplot as pltschools_code = """
data {
int J; // number of schools
real y[J]; // estimated treatment effects
real sigma[J]; // s.e. of effect estimates
}
parameters {
real mu;
real tau;
real eta[J];
}
transformed parameters {
real theta[J];
for (j in 1:J)
theta[j] = mu + tau * eta[j];
}
model {
eta ~ normal(0, 1);
y ~ normal(theta, sigma);
}
"""schools_dat = {'J': 8,
'y': [28, 8, -3, 7, -1, 1, 18, 12],
'sigma': [15, 10, 16, 11, 9, 11, 10, 18]}sm = pystan.StanModel(model_code=schools_code)
fit = sm.sampling(data=schools_dat, iter=1000, chains=4)print(fit)
eta = fit.extract(permuted=True)['eta']
np.mean(eta, axis=0)# if matplotlib is installed (optional, not required), a visual summary and
# traceplot are available
fit.plot()
plt.show()# updated traceplot can be plotted with
import arviz as az
az.plot_trace(fit).. |pypi| image:: https://badge.fury.io/py/pystan.png
:target: https://badge.fury.io/py/pystan
:alt: pypi version.. |travis| image:: https://travis-ci.org/stan-dev/pystan.png?branch=master
:target: https://travis-ci.org/stan-dev/pystan
:alt: travis-ci build status.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/49e69yl5ngxkpmab?svg=true
:target: https://ci.appveyor.com/project/pystan/pystan
:alt: appveyor-ci build status.. |zenodo| image:: https://zenodo.org/badge/10256919.svg
:target: https://zenodo.org/badge/latestdoi/10256919
:alt: zenodo citation DOI