Vinecop.hessian_full

Vinecop.hessian_full(self, u: numpy.ndarray, step_wise: bool = True, num_threads: int = 1) list

Evaluates the hessian per observation.

Hessian is meant loosely as “gradients of each component of the score function”, i.e. hess(t, e)[p](i, a) = ∂² log-likelihood_i / (∂θ_{t,e,p} ∂θ_a). For a continuous model it is computed analytically from the pair copulas’ first and second derivatives: the joint (non-step-wise) Hessian by a second-order cascade through the vine (the second derivative of the RVineGrad-style gradient cascade in scores()), and the step-wise Hessian by a first-order cascade of the step-wise score’s argument derivatives. Models with discrete variables use central finite differences of scores() instead; models with nonparametric pair copulas are rejected.

@literature Stoeber, J. and Schepsmeier, U. (2013). Estimating standard errors in regular vine copula models. Computational Statistics, 28 (6), 2679-2707.

Parameters:
undarray, shape (n, m), dtype float

An \(n \times (d + k)\)or \(n \times 2d\)matrix of evaluation points, where \(k\)is the number of discrete variables (see select()).

step_wisebool

if False, full gradient of the log-likelihood; if True, score function of the step-wise MLE (gradients computed per pair-copula).

num_threadsint

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