Skip to main content

Stochastic process realizations.

Project description

travis rtd codecov pypi pyversions

A python package for generating realizations of common (and perhaps some less common) stochastic processes, with some optimization for repeated simulation.

Installation

The stochastic package is available on pypi and can be installed using pip

pip install stochastic

Dependencies

Stochastic uses numpy for many calculations and scipy for sampling specific random variables.

Processes

This package offers a number of common discrete-time, continuous-time, and noise process objects for generating realizations of stochastic processes as numpy arrays.

The diffusion processes are approximated using the Euler–Maruyama method.

Here are the currently supported processes and their class references within the package.

  • stochastic

    • continuous

      • BesselProcess

      • BrownianBridge

      • BrownianExcursion

      • BrownianMeander

      • BrownianMotion

      • CauchyProcess

      • FractionalBrownianMotion

      • GammaProcess

      • GeometricBrownianMotion

      • InverseGaussianProcess

      • MultifractionalBrownianMotion

      • PoissonProcess

      • SquaredBesselProcess

      • VarianceGammaProcess

      • WienerProcess

    • diffusion

      • ConstantElasticityVarianceProcess

      • CoxIngersollRossProcess

      • OrnsteinUhlenbeckProcess

      • VasicekProcess

    • discrete

      • BernoulliProcess

      • ChineseRestaurantProcess

      • MarkovChain

      • MoranProcess

      • RandomWalk

    • noise

      • BlueNoise

      • BrownianNoise

      • ColoredNoise

      • PinkNoise

      • RedNoise

      • VioletNoise

      • WhiteNoise

      • FractionalGaussianNoise

      • GaussianNoise

Usage patterns

Sampling

To use stochastic, import the process you want and instantiate with the required parameters. Every process class has a sample method for generating realizations. The sample methods accept a parameter n for the quantity of steps in the realization, but others (Poisson, for instance) may take additional parameters. Parameters can be accessed as attributes of the instance.

from stochastic.discrete import BernoulliProcess


bp = BernoulliProcess(p=0.6)
s = bp.sample(16)
success_probability = bp.p

Continuous processes provide a default parameter, t, which indicates the maximum time of the process realizations. The default value is 1. The sample method will generate n equally spaced increments on the interval [0, t].

Sampling at specific times

Some continuous processes also provide a sample_at() method, in which a sequence of time values can be passed at which the object will generate a realization. This method ignores the parameter, t, specified on instantiation.

from stochastic.continuous import BrownianMotion


bm = BrownianMotion(drift=1, scale=1, t=1)
times = [0, 3, 10, 11, 11.2, 20]
s = sample_at(times)

Sample times

Continuous processes also provide a method times() which generates the time values (using numpy.linspace) corresponding to a realization of n steps. This is particularly useful for plotting your samples.

import matplotlib.pyplot as plt
from stochastic.continuous import FractionalBrownianMotion


fbm = FractionalBrownianMotion(hurst=0.7, t=1)
s = fbm.sample(32)
times = fbm.times(32)

plt.plot(times, s)
plt.show()

Specifying an algorithm

Some processes provide an optional parameter algorithm, in which one can specify which algorithm to use to generate the realization using the sample() or sample_at() methods. See the documentation for process-specific implementations.

from stochastic.noise import FractionalGaussianNoise


fgn = FractionalGaussianNoise(hurst=0.6, t=1)
s = fgn.sample(32, algorithm='hosking')

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

stochastic-0.4.0.tar.gz (31.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stochastic-0.4.0-py2.py3-none-any.whl (43.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file stochastic-0.4.0.tar.gz.

File metadata

  • Download URL: stochastic-0.4.0.tar.gz
  • Upload date:
  • Size: 31.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/38.2.5 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.3

File hashes

Hashes for stochastic-0.4.0.tar.gz
Algorithm Hash digest
SHA256 75c70e537b7e8bfcb90de49bfcbe76c9448a24d38a13d0d5fac2b75779450057
MD5 f4c73b1371ea9dfb9e426e256de30d4e
BLAKE2b-256 fa0c55489755d37a8b63ea26729830ecc768ba4e188ddbfd8075e57fa58c128c

See more details on using hashes here.

File details

Details for the file stochastic-0.4.0-py2.py3-none-any.whl.

File metadata

  • Download URL: stochastic-0.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 43.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/38.2.5 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.3

File hashes

Hashes for stochastic-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 59bc3e1bc1c7b8645d996e36c3e75ed19b8397bac9de3f5ac7abaf07f37c3025
MD5 63443747d536ce9e18b5078d5455f642
BLAKE2b-256 62fb1bdf5bef80bb31369306290c308371a64aebf825029520602570135ea7f1

See more details on using hashes here.

Supported by

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