Vinecop.mbicv

Vinecop.mbicv(self: pyvinecopulib.Vinecop, u: numpy.ndarray[numpy.float64[m, n]] = array([], shape=(0, 0), dtype=float64), psi0: float = 0.9, num_threads: int = 1) float

Evaluates the modified Bayesian information criterion for vines (mBICV).

The mBICV is defined as

\[\mathrm{mBICV} = -2\, \mathrm{loglik} + \log(n) p, - 2 * \sum_{t=1}^(d - 1) \{q_t\]

log(psi_0^t) - (d - t - q_t) log(1 -psi_0^t)},

where \(\mathrm{loglik}\) is the log-liklihood, \(p\) is the (effective) number of parameters of the model, \(t\) is the tree level, \(\psi_0\) is the prior probability of having a non-independence copula in the first tree, and \(q_t\) is the number of non-independence copulas in tree \(t\); The vBIC is a consistent model selection criterion for parametric sparse vine copula models when \(d = o(\sqrt{n \log n})\).

Parameters:
  • u – An \(n \times (d + k)\) or \(n \times 2d\) matrix of evaluation points, where \(k\) is the number of discrete variables (see Vinecop.select() or Vinecop.pdf()).

  • psi0 – Baseline prior probability of a non-independence copula.

  • num_threads – The number of threads to use for computations; if greater than 1, the function will be applied concurrently to num_threads batches of u.

Returns:

The mBICV as a double.