Skip to main content

ARCH for Python

Project description

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

ARCH

This is a work-in-progress for ARCH and other tools for financial econometrics, written in Python (and Cython)

What is in this repository?

Documentation

Documentation is hosted on read the docs

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

  • NumPy (1.8+)

  • SciPy (0.15+)

  • Pandas (0.15+)

  • statsmodels (0.6+)

  • matplotlib (1.3+)

Optional Requirements

  • Numba (0.21+) 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.20+, if not using –no-binary)

  • py.test (For tests)

  • sphinx (to build docs)

  • sphinx-napoleon (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 -c https://conda.binstar.org/bashtage arch

Windows

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: the test suite compares the Numba implementations against Cython implementations of some recursions, and so it is not possible to run the test suite when installing with --no-binary .

Anaconda

conda install -c https://conda.binstar.org/bashtage arch

Project details


Download files

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

Source Distributions

arch-3.2.zip (113.2 kB view details)

Uploaded Source

arch-3.2.tar.gz (95.0 kB view details)

Uploaded Source

arch-3.2.tar.bz2 (79.1 kB view details)

Uploaded Source

Built Distributions

arch-3.2-cp35-cp35m-win_amd64.whl (221.0 kB view details)

Uploaded CPython 3.5m Windows x86-64

arch-3.2-cp27-cp27m-win_amd64.whl (228.9 kB view details)

Uploaded CPython 2.7m Windows x86-64

File details

Details for the file arch-3.2.zip.

File metadata

  • Download URL: arch-3.2.zip
  • Upload date:
  • Size: 113.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for arch-3.2.zip
Algorithm Hash digest
SHA256 2177825da8dc94b89c40b3f08ce2a47941292755eb68d5ebd3b52805f512f57a
MD5 d41bb0804d06c2b9211e151110a2455d
BLAKE2b-256 381ad9e6a021ed38c8ad5b15a733c141f65fb15b6405af406dd5414d92eeee40

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for arch-3.2.tar.gz
Algorithm Hash digest
SHA256 cd68a370bd56e69c8d76eea40538fd1e28978ba399c5e9bd4ec6c948251ddb2f
MD5 919636984a1e660ac812123433227f04
BLAKE2b-256 df0122df3ab355df03f1617bcbb77aa7392f4784e75eae9da58c375e68b276a1

See more details on using hashes here.

File details

Details for the file arch-3.2.tar.bz2.

File metadata

  • Download URL: arch-3.2.tar.bz2
  • Upload date:
  • Size: 79.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for arch-3.2.tar.bz2
Algorithm Hash digest
SHA256 b8b7a91851cb390e3c3a87468ca22183f224182c479f1f1b9cec7593534f18dc
MD5 4f67131efb21241e0a59805b38c990df
BLAKE2b-256 5e412aed96bcb63dc95eab0d5520fb318efd8477b4589a4e5fd6d1d65a1c1d25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arch-3.2-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 84742b3984b2c51d670bc293e163bcee2f98eab1394ae124cc9ce1d74d0d413b
MD5 0e7b42fdc6c75ca6f9b6a34d52f22d96
BLAKE2b-256 c8f2849ca4f516e82a68450eacdff537d3df3c2582b1714bb835248db4c9ee07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arch-3.2-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 6ca162dd40296d3c4db86b0f5898d7d8fc35cd262ea7a1b31f5c5261d79a5167
MD5 15a2aa8eb2a6efbd43c14bd60fe4ab8a
BLAKE2b-256 dbbbeb88df2d03e1421ec506a901e937c70cb754aa20ac6027598e17772fad91

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