These functions calculate the Akaike and Bayesian Information criteria of a d-dimensional R-vine copula model for a given copula data set.
RVineAIC(data, RVM, par = RVM$par, par2 = RVM$par2)
RVineBIC(data, RVM, par = RVM$par, par2 = RVM$par2)
An N x d data matrix (with uniform margins).
An RVineMatrix()
object including the structure and
the pair-copula families and parameters.
A d x d matrix with the pair-copula parameters (optional;
default: par = RVM$par
).
A d x d matrix with the second parameters of pair-copula
families with two parameters (optional; default: par2 = RVM$par2
).
The computed AIC or BIC value, respectively.
A d x d matrix 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)
.
If \(k\) denotes the number of parameters of an R-vine copula model with log-likelihood \(l_{RVine}\) and parameter set \(\boldsymbol{\theta}\), then the Akaike Information Criterion (AIC) by Akaike (1973) is defined as $$AIC := -2 l_{RVine}\left(\boldsymbol{\theta}|\boldsymbol{u}\right) + 2 k,$$ for observations \(\boldsymbol{u}=(\boldsymbol{u}_1^\prime,..., \boldsymbol{u}_N^\prime)^\prime\).
Similarly, the Bayesian Information Criterion (BIC) by Schwarz (1978) is given by $$ BIC := -2 l_{RVine}\left(\boldsymbol{\theta}|\boldsymbol{u}\right) + \log(N) k. $$
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.
# define 5-dimensional R-vine tree structure matrix
Matrix <- c(5, 2, 3, 1, 4,
0, 2, 3, 4, 1,
0, 0, 3, 4, 1,
0, 0, 0, 4, 1,
0, 0, 0, 0, 1)
Matrix <- matrix(Matrix, 5, 5)
# define R-vine pair-copula family matrix
family <- c(0, 1, 3, 4, 4,
0, 0, 3, 4, 1,
0, 0, 0, 4, 1,
0, 0, 0, 0, 3,
0, 0, 0, 0, 0)
family <- matrix(family, 5, 5)
# define R-vine pair-copula parameter matrix
par <- c(0, 0.2, 0.9, 1.5, 3.9,
0, 0, 1.1, 1.6, 0.9,
0, 0, 0, 1.9, 0.5,
0, 0, 0, 0, 4.8,
0, 0, 0, 0, 0)
par <- matrix(par, 5, 5)
# define second R-vine pair-copula parameter matrix
par2 <- matrix(0, 5, 5)
# define RVineMatrix object
RVM <- RVineMatrix(Matrix = Matrix, family = family, par = par, par2 = par2,
names=c("V1", "V2", "V3", "V4", "V5"))
# simulate a sample of size 300 from the R-vine copula model
set.seed(123)
simdata <- RVineSim(300,RVM)
# compute AIC and BIC
RVineAIC(simdata, RVM)
#> $AIC
#> [1] -2377.838
#>
#> $pair.AIC
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0.000000 0.0000 0.00000 0.0000 0
#> [2,] -6.708694 0.0000 0.00000 0.0000 0
#> [3,] -115.278766 -154.2115 0.00000 0.0000 0
#> [4,] -86.911625 -116.1803 -184.56444 0.0000 0
#> [5,] -590.199643 -492.9601 -68.22856 -562.5942 0
#>
RVineBIC(simdata, RVM)
#> $BIC
#> [1] -2340.8
#>
#> $pair.BIC
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0.000000 0.0000 0.00000 0.0000 0
#> [2,] -3.004911 0.0000 0.00000 0.0000 0
#> [3,] -111.574983 -150.5077 0.00000 0.0000 0
#> [4,] -83.207842 -112.4765 -180.86065 0.0000 0
#> [5,] -586.495861 -489.2563 -64.52478 -558.8904 0
#>