Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (testpypi.python.org).
Help us improve Python packaging - Donate today!

Fractional Brownian Motion

Project Description

Exact methods for simulating fractional Brownian motion (fBm) or fractional Gaussian noise (fGn) in python.

The three methods are Hosking’s method, the Cholesky method, and the Davies Harte method. All three methods are exact in generating a discretely sampled fBm/fGn.

Installation:

pip install fbm

Usage:

from fbm import FBM


f = FBM(n=16, hurst=0.75, length=1, method='daviesharte')

# Generate a fBm realization
fbm_sample = f.fbm()

# Generate a fGn realization
fgn_sample = f.fgn()

# Get the times associated with the fBm
t_values = f.times()

where n is the number of equispaced increments desired for a fBm with Hurst parameter hurst on the interval [0, length]. Method can be either 'hosking', 'cholesky', or 'daviesharte'. The fbm() method returns a length n+1 array of discrete values for the fBm (includes 0). The fgn() method returns a length n array of fBm increments, or fGn. The times() method returns a length n+1 array of times corresponding to the fBm realizations.

For simulating multiple realizations use the FBM class provided as above. For one-off samples of fBm or fGn there are also functions available which handle the FBM object themselves:

from fbm import fbm, fgn, times


# Generate a fBm realization
fbm_sample = fbm(n=16, hurst=0.75, length=1, method='daviesharte')

# Generate a fGn realization
fgn_sample = fgn(n=16, hurst=0.75, length=1, method='daviesharte')

# Get the times associated with the fBm
t_values = times(n=16, length=1)

For fastest performance use the Davies and Harte method. It is much faster than both other methods especially for larger increment quantities. Note that the Davies and Harte method can fail if the Hurst parameter hurst is close to 1 and there are a small amount of increments n. If this occurs, python will print a warning to the console and fallback to using Hosking’s method to generate the realization. See page 412 of the following paper for a more detailed explanation:

  • Wood, Andrew TA, and Grace Chan. “Simulation of stationary Gaussian processes in [0, 1] d.” Journal of computational and graphical statistics 3, no. 4 (1994): 409-432.

Hosking’s method:

  • Hosking, Jonathan RM. “Modeling persistence in hydrological time series using fractional differencing.” Water resources research 20, no. 12 (1984): 1898-1908.

Cholesky method:

  • Asmussen, Søren. Stochastic simulation with a view towards stochastic processes. University of Aarhus. Centre for Mathematical Physics and Stochastics (MaPhySto)[MPS], 1998.

Davies Harte method:

  • Davies, Robert B., and D. S. Harte. “Tests for Hurst effect.” Biometrika 74, no. 1 (1987): 95-101.
Release History

Release History

This version
History Node

0.1.1

History Node

0.1.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
fbm-0.1.1-py2.py3-none-any.whl (7.8 kB) Copy SHA256 Checksum SHA256 3.6 Wheel Jun 10, 2017
fbm-0.1.1.tar.gz (6.4 kB) Copy SHA256 Checksum SHA256 Source Jun 10, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting