Gumbel

class copulae.archimedean.GumbelCopula(*args, **kwds)[source]

The Gumbel copula is a copula that allows any specific level of (upper) tail dependency between individual variables. It is an Archimedean copula, and exchangeable. A Gumbel copula is defined as

\[C_\theta (u_1, \dots, u_d) = \exp(-(\sum_u^i (-\log u_{i})^{\theta} )^{1/\theta})\]
A(w)[source]

The Pickands dependence function. This can be seen as the generator function of an extreme-value copula.

A bivariate copula C is an extreme-value copula if and only if

\[C(u, v) = (uv)^{A(log(v) / log(uv))}, (u,v) in (0,1]^2 w/o {(1,1)}\]

where \(A: [0,1] \rightarrow [1/2, 1]\) is convex and satisfies \(max(t,1-t) \leq A(t) \leq 1 \forall t \in [0, 1]\)

Parameters

w (array like) – A numeric scalar or vector

Returns

Array containing values of the dependence function

Return type

ndarray

property bounds

Gets the bounds for the parameters

Returns

Lower and upper bound of the copula’s parameters

Return type

(scalar or array_like, scalar or array_like)

dAdu(w)[source]

First and second derivative of A

Parameters

w (array_like) – A numeric scalar or vector

Returns

Array containing the first and second derivative of the dependence function

Return type

ndarray

See also

A()

Dependence function

property dim

Number of dimensions in copula

fit(data, x0=None, method='ml', optim_options=None, ties='average', verbose=1, to_pobs=True, scale=1.0)

Fit the copula with specified data

Parameters
  • data (ndarray) – Array of data used to fit copula. Usually, data should be the pseudo observations

  • x0 (ndarray) – Initial starting point. If value is None, best starting point will be estimated

  • method ({ 'ml', 'irho', 'itau' }, optional) – Method of fitting. Supported methods are: ‘ml’ - Maximum Likelihood, ‘irho’ - Inverse Spearman Rho, ‘itau’ - Inverse Kendall Tau

  • optim_options (dict, optional) – Keyword arguments to pass into scipy.optimize.minimize()

  • ties ({ 'average', 'min', 'max', 'dense', 'ordinal' }, optional) – Specifies how ranks should be computed if there are ties in any of the coordinate samples. This is effective only if the data has not been converted to its pseudo observations form

  • verbose (int, optional) – Log level for the estimator. The higher the number, the more verbose it is. 0 prints nothing.

  • to_pobs (bool) – If True, casts the input data along the column axis to uniform marginals (i.e. convert variables to values between [0, 1]). Set this to False if the input data are already uniform marginals.

  • scale (float) – Amount to scale the objective function value of the numerical optimizer. This is helpful in achieving higher accuracy as it increases the sensitivity of the optimizer. The downside is that the optimizer could likely run longer as a result. Defaults to 1.

See also

pobs()

The psuedo-observation method converts non-uniform data into uniform marginals.

scipy.optimize.minimize

the scipy minimize function use for optimization

log_lik(data, *, to_pobs=True, ties='average')

Returns the log likelihood (LL) of the copula given the data.

The greater the LL (closer to \(\infty\)) the better.

Parameters
  • data (Union[ndarray, DataFrame]) – Data set used to calculate the log likelihood

  • to_pobs – If True, converts the data input to pseudo observations.

  • ties (Literal[‘average’, ‘min’, ‘max’, ‘dense’, ‘ordinal’]) – Specifies how ranks should be computed if there are ties in any of the coordinate samples. This is effective only if to_pobs is True.

Returns

Log Likelihood

Return type

float

property params

The parameter set which describes the copula

static pobs(data, ties='average')

Compute the pseudo-observations for the given data matrix

Parameters
  • data ({ array_like, DataFrame }) – Random variates to be converted to pseudo-observations

  • ties ({ 'average', 'min', 'max', 'dense', 'ordinal' }, optional) – Specifies how ranks should be computed if there are ties in any of the coordinate samples

Returns

matrix or vector of the same dimension as data containing the pseudo observations

Return type

ndarray

See also

pseudo_obs()

The pseudo-observations function