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

Uploaded Source

Built Distributions

muarch-0.0.7-cp37-cp37m-win_amd64.whl (407.4 kB view details)

Uploaded CPython 3.7m Windows x86-64

muarch-0.0.7-cp37-cp37m-manylinux1_x86_64.whl (997.1 kB view details)

Uploaded CPython 3.7m

muarch-0.0.7-cp36-cp36m-win_amd64.whl (407.5 kB view details)

Uploaded CPython 3.6m Windows x86-64

muarch-0.0.7-cp36-cp36m-manylinux1_x86_64.whl (996.6 kB view details)

Uploaded CPython 3.6m

File details

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

File metadata

  • Download URL: muarch-0.0.7.tar.gz
  • Upload date:
  • Size: 420.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for muarch-0.0.7.tar.gz
Algorithm Hash digest
SHA256 af05dddd768109662d48e6297b21c605e771be39a79f236ff80505cba7afe663
MD5 b0e322ac88f35140f75e976845a793b5
BLAKE2b-256 4375ef92d1aa9da217e23501a84834ab48a6d68b05c34cd6818b7f35a7725f6f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muarch-0.0.7-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 407.4 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.1

File hashes

Hashes for muarch-0.0.7-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 c7ea44acd9bd8b91c955860d1772f28d870ebc7b021e1a15cc3d502b652e4bc1
MD5 452c7db1498fabc313e535aacbffebb4
BLAKE2b-256 4823d617607339cddd2d8223b0bfdc2eb832ca4fcec28ae4113d40b2733fbccb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muarch-0.0.7-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 997.1 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for muarch-0.0.7-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f5d2c5c1c89eaa6d5bdc91de5f552921b56aff62d59bfb45391f0b5f3250c7b2
MD5 d7515c40f5cdd7d62c5ee3b0a781e872
BLAKE2b-256 5e81323d3e67f90ed75be42cfa3d05bbc4951056779a7c640c169d7338b84653

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muarch-0.0.7-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 407.5 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.18.4 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.5

File hashes

Hashes for muarch-0.0.7-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ca4091af96621dec441e2ac328bbb3b7571d03e9c5ee60311c767d3d1a8d5c42
MD5 205e968cd6784952b0a68b12b37e35cd
BLAKE2b-256 ca3c3e50a977223fcd403c71d04aed03daa5b7122c903e0509b26085435fe870

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muarch-0.0.7-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 996.6 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for muarch-0.0.7-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b0243466579e3c6f6c9bfb2ff0cf812545c576478215892a54442b5fd37deb8f
MD5 2ee8236c74f5f29be951c010ed56a8f1
BLAKE2b-256 80ba2389c036123b35273d3bce0c29cf80ba91c10ba01ee920a28f95f20409ab

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