copulas.bivariate.frank module
Frank module.
- class copulas.bivariate.frank.Frank(*args, **kwargs)[source]
Bases:
BivariateClass for Frank copula model.
- compute_theta()[source]
Compute theta parameter using Kendall’s tau.
On Frank copula, the relationship between tau and theta is defined by:
\[\tau = 1 − \frac{4}{\theta} + \frac{4}{\theta^2}\int_0^\theta \! \frac{t}{e^t -1} \mathrm{d}t.\]In order to solve it, we can simplify it as
\[0 = 1 + \frac{4}{\theta}(D_1(\theta) - 1) - \tau\]where the function D is the Debye function of first order, defined as:
\[D_1(x) = \frac{1}{x}\int_0^x\frac{t}{e^t -1} \mathrm{d}t.\]
- copula_type = 1
- cumulative_distribution(X)[source]
Compute the cumulative distribution function for the Frank copula.
The cumulative density(cdf), or distribution function for the Frank family of copulas correspond to the formula:
\[C(u,v) = −\frac{\ln({\frac{1 + g(u) g(v)}{g(1)}})}{\theta}\]- Parameters:
X – np.ndarray
- Returns:
cumulative distribution
- Return type:
np.array
- invalid_thetas = [0]
- partial_derivative(X)[source]
Compute partial derivative of cumulative distribution.
The partial derivative of the copula(CDF) is the conditional CDF.
\[F(v|u) = \frac{\partial}{\partial u}C(u,v) = \frac{g(u)g(v) + g(v)}{g(u)g(v) + g(1)}\]- Parameters:
X (np.ndarray)
y (float)
- Returns:
np.ndarray
- percent_point(y, V)[source]
Compute the inverse of conditional cumulative distribution \(C(u|v)^{-1}\).
- Parameters:
y – np.ndarray value of \(C(u|v)\).
v – np.ndarray given value of v.
- probability_density(X)[source]
Compute probability density function for given copula family.
The probability density(PDF) for the Frank family of copulas correspond to the formula:
\[c(U,V) = \frac{\partial^2 C(u,v)}{\partial v \partial u} = \frac{-\theta g(1)(1 + g(u + v))}{(g(u) g(v) + g(1)) ^ 2}\]Where the g function is defined by:
\[g(x) = e^{-\theta x} - 1\]- Parameters:
X – np.ndarray
- Returns:
probability density
- Return type:
np.array
- theta_interval = [-inf, inf]