Skip to main content

Multiple Univariate ARCH modeling toolbox built on top of the ARCH package

Project description

MUArch

Continuous Integration

Build Status Build status

Documentation

Documentation Status

Coverage

Coverage Status

Installing

Install and update using pip and on conda.

This is a wrapper on top of Kevin Sheppard's ARCH package. The purpose of which are to:

  1. Enable faster Monte Carlo simulation
  2. Simulate innovations through copula marginals

In the package, there are 2 classes to aid you - UArch and MUArch. The UArch class can be defined using a similar API to arch_model in the original arch package. The MUArch is a collection of these UArch models.

Thus, if you have a function that generates uniform marginals, like a copula, you can create a dependence structure among the different marginals when simulating the GARCH processes.

If you need a copula package, I have one here. :)

Example

I'll list out a simple procedure to do AR-GARCH-Copula simulations.

from muarch import MUArch, UArch
from muarch.datasets import load_etf
from copulae import NormalCopula


returns = load_etf()  # load returns data
num_assets = returns.shape[1]

# sets up a MUArch model collection where each model defaults to 
# mean: AR(1)
# vol: GARCH(1, 1)
# dist: normal 
models = MUArch(num_assets, mean='AR', lags=1) 

# set first model to AR(1)-GARCH(1, 1) with skewt innovations  
models[0] = UArch('AR', lags=1, dist='skewt')  

# fit model, if you get complaints regarding non-convergence, you can scale the data up 
# using the scale parameter in the UArch or MUArch. i.e. UArch(..., scale=100). This will
# reduce numerical errors. Don't worry, I'll rescale the simulation values subsequently
models.fit(returns)

# Usually you'll want to fit the residuals to the copula, use the copula to generate the
# residuals and subsequently transform it back to returns 

residuals = models.residuals() # defaults to return the standardized residuals


cop = NormalCopula(dim=num_assets) # use a normal copula, you could of course use a TCopula
cop.fit(residuals)

# simulate 10 steps into the future, over 4 repetitions. This will return a (10 x 4 x 3) array
models.simulate_mc(10, 4, custom_dist=cop.random)

Future Works

This is actually a temporary hack so that others can do GARCH copula simulation. Another issue is that an ARFIMA mean model is not so easily specified (and simulated from) with the original arch package. You could specify an ARFIMA (or even just an ARMA model for the matter), fit it separately then use the residuals to fit a zero-mean model (pure GARCH). However, in such a way, the simulation is not so straightforward as you'll have to stitch the simulations from GARCH process and the mean model process back.

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

muarch-0.1.4.tar.gz (602.5 kB view details)

Uploaded Source

Built Distributions

muarch-0.1.4-cp37-cp37m-win_amd64.whl (600.8 kB view details)

Uploaded CPython 3.7m Windows x86-64

muarch-0.1.4-cp37-cp37m-manylinux1_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.7m

muarch-0.1.4-cp36-cp36m-win_amd64.whl (600.8 kB view details)

Uploaded CPython 3.6m Windows x86-64

muarch-0.1.4-cp36-cp36m-manylinux1_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.6m

File details

Details for the file muarch-0.1.4.tar.gz.

File metadata

  • Download URL: muarch-0.1.4.tar.gz
  • Upload date:
  • Size: 602.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for muarch-0.1.4.tar.gz
Algorithm Hash digest
SHA256 597a2e044bbe49eb8e1be8ee5f1b3724e5118608ea301043364c592645498344
MD5 f897bc9043c9caa65f5146c95f168173
BLAKE2b-256 e361f84f385fdd7f6c62668093623da10332a152671c32f22f78ecca7ff8da86

See more details on using hashes here.

File details

Details for the file muarch-0.1.4-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: muarch-0.1.4-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 600.8 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for muarch-0.1.4-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d31566db80dec7a5d560f337a17260a5b626cfe65e5c3c9b7463641e37ffe400
MD5 1ca7024ed88aeca2684ef2a2ba7b40b8
BLAKE2b-256 e6c374ac6867e4e4d6f6f641983824c37acbb3823350dc3c42b3414648642d70

See more details on using hashes here.

File details

Details for the file muarch-0.1.4-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: muarch-0.1.4-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for muarch-0.1.4-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 978a139f59dd3c2112b27114cdf3904790d511236e506b40ef555006c1b69dc8
MD5 e75bef543806e129bc486d788eab1123
BLAKE2b-256 767640b434bdb359f59c5ec78de059ff049bb5c65b1030aaf2c21d52772e1352

See more details on using hashes here.

File details

Details for the file muarch-0.1.4-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: muarch-0.1.4-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 600.8 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for muarch-0.1.4-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 4b9a287a0f763673d344f9ae25ded4b4885b3d6aee454fe347092b93ef862755
MD5 802b170bbe051a658e10781cbb61a00a
BLAKE2b-256 e29de5bdec56f367315c02d55a782edee718775a1a080e5e5dbc894732a9a49a

See more details on using hashes here.

File details

Details for the file muarch-0.1.4-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: muarch-0.1.4-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for muarch-0.1.4-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 da860bf377ff07069a129b80c75615c9b6425d7e4874f2b08815ec238933d373
MD5 e08b340ff8416436426c1f9e17b08d0b
BLAKE2b-256 34a617e705892c57eb1b8a7738e4a8b8ead5b05c433547f5f81cb965e10cfb75

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