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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.7m Windows x86-64

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

Uploaded CPython 3.7m

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

Uploaded CPython 3.6m Windows x86-64

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

Uploaded CPython 3.6m

File details

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

File metadata

  • Download URL: muarch-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 6bfb5f233f2437c56fe472328baccf0db98877aa122da40a6ac68c70bfd1b547
MD5 47a0c7c86e056cb84d2980e00a314246
BLAKE2b-256 ad91d62aa20d233867c0ff7ec1c8adb5b829887943e84e639aa96030cb76204b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muarch-0.1.5-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.5-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 9deacd7079df745798803cb8c6ca55d6475df7d337bbf7f96048a97583b1bdac
MD5 4d6b3a9c26189998b78d5b244f5fb711
BLAKE2b-256 a7ecfee6086a109deaec0eee0a9d33eab23971c245db369b809bf9faac53648b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muarch-0.1.5-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.7.3

File hashes

Hashes for muarch-0.1.5-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 db01e06b9bda62d7baedea3a24034b5fa74d28d2bfd4102cabbb4ea86d6f835e
MD5 cc6de62c85d50ea9ac7d6d1c67e6c262
BLAKE2b-256 a44b62e88800d413560b4a09421528afc5e9aff688cdd30685cbe095c334eccc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muarch-0.1.5-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.5-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 9cff71d587bdac7d971bc1d9c60505c639a26fa707cea8334862538f05ff9f5e
MD5 7d2b8bc5cf3c24ea15c8b51925ce666c
BLAKE2b-256 a6213a904ff196d59fbe2aeb73bd070fc6663d3259411ef34a112a097c32a725

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muarch-0.1.5-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.7.3

File hashes

Hashes for muarch-0.1.5-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4a52fc02fed08f624db6a260467271a5f60b67a2247679c44fb7baf0647e3caa
MD5 b44db0a6b47d568fde215f640a65bf7c
BLAKE2b-256 d33790d592ceef2b4401b0a547b82d99de0bf95703c2601c15c8bde20eb8e330

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