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.3.1.tar.gz (363.0 kB view details)

Uploaded Source

Built Distributions

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

arch-4.3.1-cp36-cp36m-win_amd64.whl (502.9 kB view details)

Uploaded CPython 3.6mWindows x86-64

arch-4.3.1-cp36-cp36m-macosx_10_7_x86_64.whl (499.6 kB view details)

Uploaded CPython 3.6mmacOS 10.7+ x86-64

arch-4.3.1-cp35-cp35m-win_amd64.whl (494.3 kB view details)

Uploaded CPython 3.5mWindows x86-64

arch-4.3.1-cp35-cp35m-macosx_10_6_x86_64.whl (498.5 kB view details)

Uploaded CPython 3.5mmacOS 10.6+ x86-64

arch-4.3.1-cp27-cp27m-win_amd64.whl (504.0 kB view details)

Uploaded CPython 2.7mWindows x86-64

arch-4.3.1-cp27-cp27m-macosx_10_6_x86_64.whl (514.8 kB view details)

Uploaded CPython 2.7mmacOS 10.6+ x86-64

File details

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

File metadata

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

File hashes

Hashes for arch-4.3.1.tar.gz
Algorithm Hash digest
SHA256 8fda5729db8100bb32a1b1b070a26f519ac4ce609692cff4b7004032443258b1
MD5 c87b27268db2983fa3dd4c199660eece
BLAKE2b-256 adea47d57ca9fad97ca890f1f619da371d36efc3c1dfa7073959560cedb6df24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arch-4.3.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 86f6d6257dbe348ae06406a534efc54ce58ac3fb00ecff857341fb615e2ba700
MD5 2a8ee3d2164a23346db1dcbba9b32f0e
BLAKE2b-256 8f47f7ca7d8b296ba23f2d417aca77598e15de62b8b3b97e0e1614d269640159

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arch-4.3.1-cp36-cp36m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 f8cbc00c33c4a215339d0e8594fc8ab69368f87b5d8c3d4cf76d9728141a33d3
MD5 b57e8f711e3df9be7014e013a20f9f70
BLAKE2b-256 bfcfc336a092106c01901b33aec6ff89dab2eba0be617077ea1f6fc39c7e60cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arch-4.3.1-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 af7097dc98f74783eb356f651223e78356c6ee191dd646d6e6a9830d2c9a6f33
MD5 f5e964180fc90a72e57e6ff59ce19489
BLAKE2b-256 f0b497fac73f4a19d61c1c4c6d96892fbe0a335c69b5b6c0ffbb65a626de7b2c

See more details on using hashes here.

File details

Details for the file arch-4.3.1-cp35-cp35m-macosx_10_6_x86_64.whl.

File metadata

File hashes

Hashes for arch-4.3.1-cp35-cp35m-macosx_10_6_x86_64.whl
Algorithm Hash digest
SHA256 4529586d739ae6371d18a043bf144b29040bf506c2917eef0891b400f3d44a5e
MD5 0f79b5a2469336abb713ec7513d54fea
BLAKE2b-256 7e3ca0450148d373408ae6ba9bb75275eb72d706fd4eb52a567846299015856b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arch-4.3.1-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 3ec4b64e6812356d0df44ddbf1236644344f8645fd7aa2288ee60e1cbeee0b19
MD5 de964bff3e4209612365185c1a5448c1
BLAKE2b-256 8fc3040c994067fdbdc232a48090ce0fe3f21a5fc78efb85000ae4240b8668c9

See more details on using hashes here.

File details

Details for the file arch-4.3.1-cp27-cp27m-macosx_10_6_x86_64.whl.

File metadata

File hashes

Hashes for arch-4.3.1-cp27-cp27m-macosx_10_6_x86_64.whl
Algorithm Hash digest
SHA256 cf533ff637c4635f25f25e4193540f3a01f9f485d32622cc5bb3019d17169e6c
MD5 aff9d72551e6e3dc044072883e705179
BLAKE2b-256 7abada87289c918168535ba5906da31fc88860389b69202696548314afdffbbc

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