Learn R Programming

CDVine (version 1.4)

CDVineAIC-BIC: AIC and BIC of C- and D-vine copula models

Description

These functions calculate the Akaike and Bayesian Information criteria of d-dimensional C- and D-vine copula models for a given copula data set.

Usage

CDVineAIC(data, family, par, par2=rep(0,dim(data)[2]*(dim(data)[2]-1)/2), type) CDVineBIC(data, family, par, par2=rep(0,dim(data)[2]*(dim(data)[2]-1)/2), type)

Arguments

data
An N x d data matrix (with uniform margins).
family
A d*(d-1)/2 integer vector of C-/D-vine pair-copula families with values 0 = independence copula 1 = Gaussian copula 2 = Student t copula (t-copula) 3 = Clayton copula 4 = Gumbel copula 5 = Frank copula 6 = Joe copula 7 = BB1 copula 8 = BB6 copula 9 = BB7 copula 10 = BB8 copula 13 = rotated Clayton copula (180 degrees; ``survival Clayton'') 14 = rotated Gumbel copula (180 degrees; ``survival Gumbel'') 16 = rotated Joe copula (180 degrees; ``survival Joe'') 17 = rotated BB1 copula (180 degrees; ``survival BB1'') 18 = rotated BB6 copula (180 degrees; ``survival BB6'') 19 = rotated BB7 copula (180 degrees; ``survival BB7'') 20 = rotated BB8 copula (180 degrees; ``survival BB8'') 23 = rotated Clayton copula (90 degrees) 24 = rotated Gumbel copula (90 degrees) 26 = rotated Joe copula (90 degrees) 27 = rotated BB1 copula (90 degrees) 28 = rotated BB6 copula (90 degrees) 29 = rotated BB7 copula (90 degrees) 30 = rotated BB8 copula (90 degrees) 33 = rotated Clayton copula (270 degrees) 34 = rotated Gumbel copula (270 degrees) 36 = rotated Joe copula (270 degrees) 37 = rotated BB1 copula (270 degrees) 38 = rotated BB6 copula (270 degrees) 39 = rotated BB7 copula (270 degrees) 40 = rotated BB8 copula (270 degrees)
par
A d*(d-1)/2 vector of pair-copula parameters.
par2
A d*(d-1)/2 vector of second parameters for two parameter pair-copula families (default: par2 = rep(0,dim(data)[2]*(dim(data)[2]-1)/2)).
type
Type of the vine model: 1 or "CVine" = C-vine 2 or "DVine" = D-vine

Value

AIC, BIC
The computed AIC or BIC value, respectively.
pair.AIC, pair.BIC
An array of individual contributions to the AIC or BIC value for each pair-copula, respectively. Note: AIC = sum(pair.AIC) and similarly BIC = sum(pair.BIC).

Details

If $k$ denotes the number of parameters of a C-vine copula model with log-likelihood $l_{CVine}$ and parameter set $\theta$, then the Akaike Information Criterion (AIC) by Akaike (1973) is defined as $$ AIC := -2 l_{CVine}\left(\boldsymbol{\theta}|\boldsymbol{u}\right) + 2 k, $$ for observations $u=(u'_1,...u'_N)$.

Similarly, the Bayesian Information Criterion (BIC) by Schwarz (1978) is given by $$ BIC := -2 l_{CVine}\left(\boldsymbol{\theta}|\boldsymbol{u}\right) + \log(N) k. $$

The AIC and BIC expressions for D-vine copula models are defined accordingly.

References

Akaike, H. (1973). Information theory and an extension of the maximum likelihood principle. In B. N. Petrov and F. Csaki (Eds.), Proceedings of the Second International Symposium on Information Theory Budapest, Akademiai Kiado, pp. 267-281.

Schwarz, G. E. (1978). Estimating the dimension of a model. Annals of Statistics 6 (2), 461-464.

See Also

CDVineLogLik, CDVineVuongTest, CDVineClarkeTest

Examples

Run this code
## Example 1: 3-dimensional D-vine model with Gaussian pair-copulas
data(worldindices)
Data = as.matrix(worldindices)[,1:3]
fam1 = c(1,1,1) 
par1 = c(0.2,0.3,0.4)

# calculate AIC and BIC
CDVineAIC(Data,fam1,par1,type=2)
CDVineBIC(Data,fam1,par1,type=2)


## Example 2: 6-dimensional C-vine model with Student t pair-copulas
## with 5 degrees of freedom
data(worldindices)
Data = as.matrix(worldindices)
dd = dim(Data)[2]*(dim(Data)[2]-1)/2
fam2 = rep(2,dd)
par2 = rep(0.5,dd)
nu2 = rep(5,dd)

# calculate AIC and BIC
CDVineAIC(Data,fam2,par2,nu2,type=1)
CDVineBIC(Data,fam2,par2,nu2,type=1)


## Example 3: 4-dimensional C-vine model with mixed pair-copulas
fam3 = c(5,1,3,14,3,2)
par3 = c(0.9,0.3,0.2,1.1,0.2,0.7)
nu3 = c(0,0,0,0,0,7)

# calculate AIC and BIC
CDVineAIC(Data[,1:4],fam3,par3,nu3,type=1)
CDVineBIC(Data[,1:4],fam3,par3,nu3,type=1)

Run the code above in your browser using DataLab