Skip to main content

ARCH for Python

Project description

Documentation Status Travis Build Status Appveyor Build Status Coverage Status codecov Code Health DOI

ARCH

Autoregressive Conditional Heteroskedasticity (ARCH) and other tools for financial econometrics, written in Python (with Cython and/or Numba used to improve performance)

What is in this repository?

Documentation

Released documentation is hosted on read the docs. Current documentation from the master branch is hosted on my github pages.

More about ARCH

More information about ARCH and related models is available in the notes and research available at Kevin Sheppard’s site.

Contributing

Contributions are welcome. There are opportunities at many levels to contribute:

  • Implement new volatility process, e.g FIGARCH

  • Improve docstrings where unclear or with typos

  • Provide examples, preferably in the form of IPython notebooks

Examples

Volatility Modeling

  • Mean models

    • Constant mean

    • Heterogeneous Autoregression (HAR)

    • Autoregression (AR)

    • Zero mean

    • Models with and without exogenous regressors

  • Volatility models

    • ARCH

    • GARCH

    • TARCH

    • EGARCH

    • EWMA/RiskMetrics

  • Distributions

    • Normal

    • Student’s T

See the univariate volatility example notebook for a more complete overview.

import datetime as dt
import pandas.io.data as web
st = dt.datetime(1990,1,1)
en = dt.datetime(2014,1,1)
data = web.get_data_yahoo('^FTSE', start=st, end=en)
returns = 100 * data['Adj Close'].pct_change().dropna()

from arch import arch_model
am = arch_model(returns)
res = am.fit()

Unit Root Tests

  • Augmented Dickey-Fuller

  • Dickey-Fuller GLS

  • Phillips-Perron

  • KPSS

  • Variance Ratio tests

See the unit root testing example notebook for examples of testing series for unit roots.

Bootstrap

  • Bootstraps

    • IID Bootstrap

    • Stationary Bootstrap

    • Circular Block Bootstrap

    • Moving Block Bootstrap

  • Methods

    • Confidence interval construction

    • Covariance estimation

    • Apply method to estimate model across bootstraps

    • Generic Bootstrap iterator

See the bootstrap example notebook for examples of bootstrapping the Sharpe ratio and a Probit model from Statsmodels.

# Import data
import datetime as dt
import pandas as pd
import pandas.io.data as web
start = dt.datetime(1951,1,1)
end = dt.datetime(2014,1,1)
sp500 = web.get_data_yahoo('^GSPC', start=start, end=end)
start = sp500.index.min()
end = sp500.index.max()
monthly_dates = pd.date_range(start, end, freq='M')
monthly = sp500.reindex(monthly_dates, method='ffill')
returns = 100 * monthly['Adj Close'].pct_change().dropna()

# Function to compute parameters
def sharpe_ratio(x):
    mu, sigma = 12 * x.mean(), np.sqrt(12 * x.var())
    return np.array([mu, sigma, mu / sigma])

# Bootstrap confidence intervals
from arch.bootstrap import IIDBootstrap
bs = IIDBootstrap(returns)
ci = bs.conf_int(sharpe_ratio, 1000, method='percentile')

Multiple Comparison Procedures

  • Test of Superior Predictive Ability (SPA), also known as the Reality Check or Bootstrap Data Snooper

  • Stepwise (StepM)

  • Model Confidence Set (MCS)

See the multiple comparison example notebook for examples of the multiple comparison procedures.

Requirements

These requirements reflect the testing environment. It is possible that arch will work with older versions.

  • Python (2.7, 3.4 - 3.6)

  • NumPy (1.10+)

  • SciPy (0.16+)

  • Pandas (0.16+)

  • statsmodels (0.6+)

  • matplotlib (1.5+)

Optional Requirements

  • Numba (0.24+) will be used if available and when installed using the –no-binary option

  • IPython (4.0+) is required to run the notebooks

Installing

  • Cython (0.24+, if not using –no-binary)

  • py.test (For tests)

  • sphinx (to build docs)

  • guzzle_sphinx_theme (to build docs)

  • ipython (to build docs)

  • numpydoc (to build docs)

Note: Setup does not verify requirements. Please ensure these are installed.

Linux/OSX

pip install git+https://github.com/bashtage/arch.git

Anaconda

Anaconda builds are not currently available for OSX.

conda install arch -c bashtage

Windows

Building extension using the community edition of Visual Studio is well supported for Python 3.5+. Building extensions for 64-bit Windows for use in Python 2.7 is also supported using Microsoft Visual C++ Compiler for Python 2.7. Building on other combinations of Python/Windows is more difficult and is not necessary when Numba is installed since just-in-time compiled code (Numba) runs as fast as ahead-of-time compiled extensions.

With a compiler

If you are comfortable compiling binaries on Windows:

pip install git+https://github.com/bashtage/arch.git

No Compiler

All binary code is backed by a pure Python implementation. Compiling can be skipped using the flag --no-binary

pip install git+https://github.com/bashtage/arch.git --install-option "--no-binary"

Note: If Cython is not installed, the package will be installed as-if –no-binary was used.

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

arch-4.2.tar.gz (128.2 kB view details)

Uploaded Source

Built Distributions

arch-4.2-cp36-cp36m-win_amd64.whl (256.4 kB view details)

Uploaded CPython 3.6m Windows x86-64

arch-4.2-cp36-cp36m-macosx_10_7_x86_64.whl (261.0 kB view details)

Uploaded CPython 3.6m macOS 10.7+ x86-64

arch-4.2-cp35-cp35m-win_amd64.whl (255.4 kB view details)

Uploaded CPython 3.5m Windows x86-64

arch-4.2-cp35-cp35m-macosx_10_7_x86_64.whl (260.0 kB view details)

Uploaded CPython 3.5m macOS 10.7+ x86-64

arch-4.2-cp27-cp27m-win_amd64.whl (264.9 kB view details)

Uploaded CPython 2.7m Windows x86-64

arch-4.2-cp27-cp27m-macosx_10_7_x86_64.whl (275.8 kB view details)

Uploaded CPython 2.7m macOS 10.7+ x86-64

File details

Details for the file arch-4.2.tar.gz.

File metadata

  • Download URL: arch-4.2.tar.gz
  • Upload date:
  • Size: 128.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for arch-4.2.tar.gz
Algorithm Hash digest
SHA256 1e866c091a5e8408a1a2718bfdb569f7d4c6a750ae83000f774248c8990cf651
MD5 1d48dcd182359ba1bfdb2b39ead079e6
BLAKE2b-256 d126f0861570ce07e95669f56a8e8ef4a1cd0ad84272c85b6b0f0b4367202adb

See more details on using hashes here.

File details

Details for the file arch-4.2-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for arch-4.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 cfa09009f1a9f3c670b82756a160d537fa21f776b4a1ecdef0ff1dfbd9d1e977
MD5 8fd450f5e4de15e6de9b30c1975bc163
BLAKE2b-256 9ff01bb7ca1dcf58cbbee433186d27ea1a8b810300adc9503931f0f141fc7b50

See more details on using hashes here.

File details

Details for the file arch-4.2-cp36-cp36m-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for arch-4.2-cp36-cp36m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 f657297ec7745e1580a2b21a1528954fb329f3959724296d581f2f001b6bdeee
MD5 1633ad90d5e4231d6f16dd7d280fbca4
BLAKE2b-256 dd90d2ed10e5f467f45896bbd6e260582a456f12991c4da3e46bdb268ceb1839

See more details on using hashes here.

File details

Details for the file arch-4.2-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for arch-4.2-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 3448587dcf9e4e0ff61808c62acf26f40e356b5717054a430f81fe58c114bc4d
MD5 7653172e983f71d2696352a039636bd5
BLAKE2b-256 297883e0b248a798e773764976ad715233f260287f2a0ce84a0e7fa190bd80cd

See more details on using hashes here.

File details

Details for the file arch-4.2-cp35-cp35m-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for arch-4.2-cp35-cp35m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 68a7ec793e0e6285df943889d3cb3a35ca0713551607584ed1d36de203525857
MD5 a13fc2daf52a52cd2a9f132f6e1b897b
BLAKE2b-256 a019f64ca4fe8ac6ce407accea9e78b43ae3da269ae202243b8f84aba48ff9bc

See more details on using hashes here.

File details

Details for the file arch-4.2-cp27-cp27m-win_amd64.whl.

File metadata

File hashes

Hashes for arch-4.2-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 9befc545174b8f14676e099c9de7d48edb27d0a260056c608e85ce9c42d3aa5d
MD5 9c59a9a3e0beeecb4ac0b078a03e422b
BLAKE2b-256 f53ff00021e350c0f4e96141c93f276fc45c83885b2ec9c085322fc61b249247

See more details on using hashes here.

File details

Details for the file arch-4.2-cp27-cp27m-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for arch-4.2-cp27-cp27m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 f62d5c9e4a75afd36cccecf886cb322175c5be9b4ea9345fc1cc0f2b34cfb4eb
MD5 8ec03aa93ae0c9569fc66d2f97d4d581
BLAKE2b-256 f9b92f66d3c837c8bfd4603f79f8bc19e49b84679ffd882782d5fd0272be5539

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