VineCopulaFit

Estimating vine copulas


Purpose

The function computes ML-estimates for the parameters of a C-Vine or D-Vine copula. Therefore, first starting values for the joint estimation are obtained by iteratively estimating the pair-copulas in the first trees and using those estimates to obtain the arguments for the copulas in the second tree. Then the pair- copulas in the second tree are estimated and so on. These sequentially estimated parameters from the sequential procedure are then used to obtain the ML-estimates, by minimizing the overall negative log-likelihood of the whole C-Vine (or D-Vine) numerically. Possible Vine copula types:

       0   C-Vine
       1   D-Vine

Usage

       Simplified standard C-Vine or D-Vine copula
           ParamHat = VineCopulaFit('C-Vine',families,d,u)
           [ParamHat, MaxLogLikes] = VineCopulaFit('C-Vine',families,d,u)
           [ParamHat, MaxLogLikes, theta0] = VineCopulaFit('C-Vine',families,d,u)
       Simplified standard C-Vine or D-Vine copula with rotated copulas
           ParamHat = VineCopulaFit('C-Vine',families,d,u,rotation)
           [ParamHat, MaxLogLikes] = VineCopulaFit('C-Vine',families,d,u,rotation)
           [ParamHat, MaxLogLikes, theta0] = VineCopulaFit('C-Vine',families,d,u,rotation)
       Simplified standard C-Vine or D-Vine copula (specified estimation method
       (i.e., joint or sequential estimation)
           ParamHat = VineCopulaFit('C-Vine',families,d,u,rotation,EstMethod)
           [ParamHat, MaxLogLikes] = VineCopulaFit('C-Vine',families,d,u,rotation,EstMethod)
           [ParamHat, MaxLogLikes, theta0] = VineCopulaFit('C-Vine',families,d,u,rotation,EstMethod)
       Truncated simplified standard C-Vine or D-Vine copula
           ParamHat = VineCopulaFit('C-Vine',families,d,u,rotation,EstMethod,CutOffTree)
           [ParamHat, MaxLogLikes] = VineCopulaFit('C-Vine',families,d,u,rotation,EstMethod,CutOffTree)
           [ParamHat, MaxLogLikes, theta0] = VineCopulaFit('C-Vine',families,d,u,rotation,EstMethod,CutOffTree)

Inputs

   type            = The vine copula type.
   families        = A vector of the pair-copula families, which
                     are part of the PCC. The vector has to have
                     the length (d-1)*d/2. The first d-1 entries are
                     the copula families in the first tree and the
                     next d-2 entries are the copula families in the
                     second tree and so on. That means, for d=4 the
                     array should look similar to this {'Frank',
                     'Frank', 'Frank', 'AMH', 'AMH', 'Clayton'}, which
                     is the special case where all copulas in the
                     first tree are Frank copulas, all copulas in the
                     second tree are AMH copulas and all copulas in
                     the third tree are Clayton copulas.
                     The order of the families is:
                     * Exemplarily for the four-dimensional C-Vine):
                       C12, C13, C14, C23|1, C24|1, C34|12
                     * Exemplarily for the four-dimensional D-Vine):
                       C12, C23, C34, C13|2, C24|3, C14|23
                     Note: If families is a simple string/character,
                     e.g., 'Clayton', then all pair-copulas are
                     specified to be from this copula family.
   d               = The dimension of the C- or D-Vine.
   u               = A (n x d) dimensional vector of values lying in
                     [0,1] (the observations).
   rotation        = A vector of the same dimension as families in
                     which one can specify rotation levels.
   EstMethod       = The estimation method must be either 'joint' or
                     'sequential'. If it is not explicitly given, a
                     joint estimation is performed (default).
   CutOffTree      = The CutOffTree (or also called truncation level)
                     can be used to set all pair-copulas from the
                     (CutOffTree + 1)-th tree on to independence
                     copulas (i.e., ignore them in the joint
                     estimation).

Outputs

   ParamHat        = The ML-estimates of the parameters for the
                     (d-1)*d/2 pair-copulas. These estimates are given
                     in the same order as the families vector, but
                     in a row-vector. If a pair-copula is an
                     independence copula, then there is no estimate
                     given. Furthermore, if a pair-copula has two or 
                     more parameters, the estimates are given in same 
                     order as they have to be provided if the pair-
                     copula is considered only. For example, for a t-
                     copula, the first estimate is for the parameter
                     rho and the second one for the degrees of freedom
                     parameter nu.
   MaxLogLikes     = The first entry is the value of copula-log-
                     likelihood evaluated at the sequentially estimated
                     ML-estimates. The second value is the value of
                     the copula-log-likelihood evaluated for the
                     joint ML-estimates.
   theta0          = The vector of ML-estimates, which are obtained by
                     using the sequential estimation approach. Note
                     that these estimates are also used as starting
                     point for the global maximum likelihood
                     estimation.