Skip to main content

Python copulas library for dependency modeling

Project description

Build Status

PyCopula - Dependencies with copulas

PyCopula is an easy-to-use Python library that allows you to study random variables dependencies with copulas. It comes with useful tools and features to plot, estimate or simulate on copulas.

Features

PyCopula natively handle various families of copulas including :

  • Archimean Copulas
    • Clayton
    • Gumbel
    • Joe
    • Frank
    • Ali-Mikhail-Haq
  • Elliptic Copulas
    • Gaussien
    • Student

Estimation

Three methods of estimation, based on SciPy numerical optimization routines, are available to provide high flexibility during fitting process.

  • MLE : Maximum Likelihood Estimation
  • IFM : Inference For Margins
  • CMLE : Canonical Maximum Likelihood Estimation

Usage

PyCopula was designed to provide an easy-to-use interface that does not require a lot in both programming and computing. As a result, only a few lines are needed to properly fit any copulas, as demonstrated in the following code snippet.

import pandas as pd
from pycopula.copula import ArchimedeanCopula

data = pd.read_csv("data/classic.csv").values[:,1:]

archimedean = ArchimedeanCopula(family="gumbel", dim=2)
archimedean.fit(data, method="cmle")
Archimedean Copula (gumbel) :
*	Parameter : 1.605037

Visualization

3D PDF and CDF

Screenshot

Concentration Functions

Screenshot

Estimation

Simulation

Screenshot

Development

Currently, there are only a few features implemented in the library, which are the basics components for copula handling :

  • Creating Archimedean, Gaussian and Student copulas
  • 3D plot of PDF and CDF
  • Concentration functions and visualization
  • Estimation of copulas parameters (CMLE, MLE, IFM)

In the future, I plan to release the following features :

  • Goodness-of-fit
  • Copula selection with criterions and statistical testing
  • Examples of applications in real world with open data

Also, if you are interested in the project, I would be happy to collaborate with you since there are still quite a lot of improvements needed (computation, estimation methods, visualization) and that I don't have enough time on my hands to do it quickly.

Project details


Download files

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

Files for pycopula, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size pycopula-0.1.1-py3-none-any.whl (6.7 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size pycopula-0.1.1.tar.gz (2.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page