CDVineMLE {CDVine}R Documentation

Maximum likelihood estimation of C- and D-vine copula models

Description

This function calculates the MLE of C- or D-vine copula model parameters using sequential estimates as initial values (if not provided).

Usage

CDVineMLE(data, family, start=NULL, start2=NULL, type, maxit=200,
          max.df=30, max.BB=list(BB1=c(5,6),BB6=c(6,6),BB7=c(5,6),BB8=c(6,1)), ...)

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)

start

A d*(d-1)/2 numeric vector of starting values for C-/D-vine pair-copula parameters (optional; otherwise they are calculated via CDVineSeqEst; default: start = NULL).

start2

A d*(d-1)/2 numeric vector of starting values for second C-/D-vine pair-copula parameters (optional; otherwise they are calculated via CDVineSeqEst; default: start2 = NULL).

type

Type of the vine model:
1 or "CVine" = C-vine
2 or "DVine" = D-vine

maxit

The maximum number of iteration steps (optional; default: maxit = 200).

max.df

Numeric; upper bound for the estimation of the degrees of freedom parameter of the t-copula (default: max.df = 30; for more details see BiCopEst).

max.BB

List; upper bounds for the estimation of the two parameters (in absolute values) of the BB1, BB6, BB7 and BB8 copulas
(default: max.BB = list(BB1=c(5,6),BB6=c(6,6),BB7=c(5,6),BB8=c(6,1))).

...

Additional control parameters for optim.

Value

par

Estimated (first) C-/D-vine pair-copula parameters.

par2

Estimated second C-/D-vine pair-copula parameters for families with two parameters (t, BB1,BB6, BB7, BB8). All other entries are zero.

loglik

Optimized log-likelihood value corresponding to the estimated pair-copula parameters.

convergence

An integer code indicating either successful convergence (convergence = 0) or an error (cp. optim; the CDVineMLE-function uses the "L-BFGS-B" method):
1 = the iteration limit maxit has been reached
51 = a warning from the "L-BFGS-B" method; see component message for further details
52 = an error from the "L-BFGS-B" method; see component message for further details

message

A character string giving any additional information returned by optim, or NULL.

Author(s)

Carlos Almeida, Ulf Schepsmeier

References

Aas, K., C. Czado, A. Frigessi, and H. Bakken (2009). Pair-copula constructions of multiple dependence. Insurance: Mathematics and Economics 44 (2), 182-198.

See Also

CDVineLogLik, CDVineSeqEst

Examples

## Example 1: 4-dimensional D-vine model with Gaussian pair-copulas
data(worldindices)
Data = as.matrix(worldindices)[,1:4]
fam = rep(1,6)

# maximum likelihood estimation
## Not run: 
CDVineMLE(Data,family=fam,type=2,maxit=100)

## End(Not run)

## Example 2: 4-dimensional D-vine model with mixed pair-copulas
fam2 = c(5,1,3,14,3,2)

# sequential estimation
m = CDVineSeqEst(Data,family=fam2,type=2)
m

# calculate the log-likelihood
LogLik0 = CDVineLogLik(Data,fam2,m$par,m$par2,type=2)
LogLik0$loglik

# maximum likelihood estimation
## Not run: 
CDVineMLE(Data,family=fam2,type=2,maxit=5)  # 5 iterations
CDVineMLE(Data,family=fam2,type=2)  # default: 200 iterations

## End(Not run)

[Package CDVine version 1.4 Index]