Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

scikit-stan
===========

|Build Status| |codecov|

What is scikit-stan
-------------------

``scikit-stan`` will enable you to use various bayesian models based on
``stan``\ (http://mc-stan.org) and ``pystan`` with a elegant interface
like a ``scikit-learn`` or ``keras``.

Demo
----

.. code:: python

import numpy as np

from skstan.regression.linear_models import LogisticRegression

if __name__ == '__main__':
x = np.array(
[
[1,2,3,],
[1,2,7,],
[1,0,3,],
[1,1,3,],
[3,7,3,],
]
)
y = np.array([0,0,0,0,1])

glm = LogisticRegression(shrinkage=10, chains=8)
fit = glm.fit(x, y)

Then we got result object ``fit``, and field ``stanfit`` is a stanfit
object of pystan.

.. code:: python

print(fit.stanfit)

It gives following

::

Inference for Stan model: anon_model_f63cd5ccdd67c22034b2490ae4c9cdd1.
4 chains, each with iter=2000; warmup=1000; thin=1;
post-warmup draws per chain=1000, total post-warmup draws=4000.

mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat
alpha[0] 2.23 0.29 8.88 -14.39 -3.87 2.02 8.07 20.67 966 1.0
alpha[1] 7.81 0.18 5.29 -1.08 4.01 7.48 11.23 19.01 880 1.0
alpha[2] -9.79 0.22 5.87 -22.91 -13.41 -9.37 -5.38 -0.17 728 1.0
beta -2.48 0.29 9.8 -22.63 -9.03 -2.3 3.99 16.91 1146 1.0
yp[0] -13.99 0.32 11.19 -40.69 -20.24 -11.35 -5.42 0.3 1259 1.0
yp[1] -53.15 1.14 32.08 -128.4 -71.99 -48.46 -29.35 -5.24 790 1.0
yp[2] -29.61 0.6 16.66 -67.24 -39.44 -27.97 -17.0 -4.37 771 1.0
yp[3] -21.8 0.44 13.17 -52.98 -29.03 -19.57 -11.91 -3.23 894 1.0
yp[4] 29.51 0.69 24.68 0.58 10.3 23.36 42.72 90.17 1276 1.0
lp__ -2.16 0.05 1.48 -5.93 -2.9 -1.81 -1.07 -0.32 956 1.0

Samples were drawn using NUTS at Thu Apr 13 07:52:33 2017.
For each parameter, n_eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor on split chains (at
convergence, Rhat=1).

Result object of ``skstan`` also have prediction methods. Predicted
values can be obtained as samples from distribution with a
``predict_dist`` method, because it is bayesian model.

.. code:: python

yp_dist = fit.predict_dist(x)
print(yp_dist)

Then we got

::

array([[ 2.63886682e-08, 5.23976746e-04, 5.54863097e-05, ...,
2.46008578e-08, 3.74830192e-01, 3.45994043e-03],
[ 1.07746578e-22, 1.01664809e-18, 4.12813154e-26, ...,
5.64992544e-19, 7.24386097e-12, 1.75795155e-23],
[ 8.04688037e-22, 4.44522113e-12, 1.42920488e-11, ...,
7.71565191e-13, 5.13118658e-05, 4.26331280e-05],
[ 4.60810657e-15, 4.82743551e-08, 2.81612678e-08, ...,
1.37772153e-10, 5.51614998e-03, 3.84594197e-04],
[ 9.99999998e-01, 1.00000000e+00, 1.00000000e+00, ...,
9.99965378e-01, 1.00000000e+00, 1.00000000e+00]])

So let's check the histgram of first row with ``pandas.Series``.

.. code:: python

import pandas as pd
pd.Series(yp_dist[0]).hist(bins=20)

.. figure:: image/hist.png
:alt: Histgram of first row

Histgram of first row
If you need a median of samples, you can get it with just ``predict``
method

.. code:: python

yp = fit.predict(x)
print(yp)

gives

::

array([ 1.17280235e-05, 9.01419773e-22, 7.16023732e-13,
3.18368664e-09, 1.00000000e+00])

How to install
--------------

Install
~~~~~~~

.. code:: sh

git clone https://github.com/BayesianFreaks/scikit-stan
cd scikit-stan
python3 setup.py install

Uninstall
~~~~~~~~~

.. code:: sh

pip3 uninstall scikit-stan

Using python2?
==============

Are you joking?

We can't touch you because we are living in the future from you, and
you're living in past ages. Please say hello to Nobunaga Oda.

We will always use newest features of the latest version of python, so
you should use the latest version of python.

Models
======

Ready
-----

Regression Models
~~~~~~~~~~~~~~~~~

- Linear Regrassion
- Poisson Regression
- Logistic Regression

Next Steps
----------

Regression Models
~~~~~~~~~~~~~~~~~

- Gamma Regression
- GLMM
- etc...

Time Series Models
~~~~~~~~~~~~~~~~~~

- AR Model
- MA Model
- ARMA Model
- ARIMA Model
- ARCH Model
- GARCH Model
- TAR Model
- State Space Model
- or Some Dynamic Regression Models
- etc...

Clustering Model
~~~~~~~~~~~~~~~~

- Gaussian Mixture Model
- Latent Dirichlet Allocation
- etc...

Particular Application
~~~~~~~~~~~~~~~~~~~~~~

- Modeling about online-advertisement
- Decompose time series data
- Empirical Bayesian Estimation

.. |Build Status| image:: https://travis-ci.org/BayesianFreaks/scikit-stan.svg?branch=master
:target: https://travis-ci.org/BayesianFreaks/scikit-stan
.. |codecov| image:: https://codecov.io/gh/BayesianFreaks/scikit-stan/branch/master/graph/badge.svg
:target: https://codecov.io/gh/BayesianFreaks/scikit-stan

Metadata

Release files for skstan 0.0.0.dev2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skstan 0.0.0.dev2
File Size Uploaded Provenance Actions
skstan-0.0.0.dev2.tar.gz 7.0 kB Without provenance Details for skstan-0.0.0.dev2.tar.gz

Release files / skstan-0.0.0.dev2.tar.gz

Download URL skstan-0.0.0.dev2.tar.gz
Size 7.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d36092bc140e443508952a4b8c59689942d940eb71ba3c52182cd01bd8ed3961
BLAKE2b-256 checksum
How to use checksums
c9302d4e4d0d175dc0d7fadb74b86e82d15a496d2e848ff9b4c8b156db7f12b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for skstan 0.0.0.dev2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page