pyvine: The Python Package for Regular Vine Copula Modeling, Sampling and Testing
Zhenfei Yuan , Taizhong Hu
Communications in Mathematics and Statistics ›› 2021, Vol. 9 ›› Issue (1) : 53 -86.
pyvine: The Python Package for Regular Vine Copula Modeling, Sampling and Testing
Regular vine copula provides rich models for dependence structure modeling. It combines vine structures and families of bivariate copulas to construct a number of multivariate distributions that can model a wide range dependence patterns with different tail dependence for different pairs. Two special cases of regular vine copulas, C-vine and D-vine copulas, have been extensively investigated in the literature. We propose the Python package, pyvine, for modeling, sampling and testing a more generalized regular vine copula (R-vine for short). R-vine modeling algorithm searches for the R-vine structure which maximizes the vine tree dependence in a sequential way. The maximum likelihood estimation algorithm takes the sequential estimations as initial values and uses L-BFGS-B algorithm for the likelihood value optimization. R-vine sampling algorithm traverses all edges of the vine structure from the last tree in a recursive way and generates the marginal samples on each edge according to some nested conditions. Goodness-of-fit testing algorithm first generates Rosenblatt’s transformed data ${\varvec{E}}$ and then tests the hypothesis $H_0^*: {\varvec{E}} \sim C_{\perp }$ by using Anderson–Darling statistic, where $C_{\perp }$ is the independence copula. Bootstrap method is used to compute an adjusted p-value of the empirical distribution of replications of Anderson–Darling statistic. The computing of related functions of copulas such as cumulative distribution functions, H-functions and inverse H-functions often meets with the problem of overflow. We solve this problem by reinvestigating the following six families of bivariate copulas: Normal, Student t, Clayton, Gumbel, Frank and Joe’s copulas. Approximations of the above related functions of copulas are given when the overflow occurs in the computation. All these are implemented in a subpackage bvcopula, in which subroutines are written in Fortran and wrapped into Python and, hence, good performance is guaranteed.
Regular vine copula / Dependence structure / Multivariate modeling / Multivariate sampling / Rosenblatt’s transformation / Anderson–Darling test / Bivariate copula / Python
/
| 〈 |
|
〉 |