Vinecop.cdf
- Vinecop.cdf(self: pyvinecopulib.Vinecop, u: numpy.ndarray[numpy.float64[m, n]], N: int = 10000, num_threads: int = 1, seeds: list[int] = []) numpy.ndarray[numpy.float64[m, 1]]
Evaluates the copula distribution.
Because no closed-form expression is available, the distribution is estimated numerically using Monte Carlo integration. The function uses quasi-random numbers from the vine model to do so.
When at least one variable is discrete, two types of “observations” are required in
u
: the first \(n \; x \; d\) block contains realizations of \(F_{X_j}(X_j)\). The second \(n \; x \; d\) block contains realizations of \(F_{X_j}(X_j^-)\). The minus indicates a left-sided limit of the cdf. For, e.g., an integer-valued variable, it holds \(F_{X_j}(X_j^-) = F_{X_j}(X_j - 1)\). For continuous variables the left limit and the cdf itself coincide. Respective columns can be omitted in the second block.- 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()
).N – Integer for the number of quasi-random numbers to draw to evaluate the distribution (default: 1e4).
num_threads – The number of threads to use for computations; if greater than 1, the function will generate
n
samples concurrently innum_threads
batches.seeds – Seeds to scramble the quasi-random numbers; if empty (default), the random number quasi-generator is seeded randomly.
- Returns:
A vector of length
n
containing the copula distribution values.