Source code for copul.family.archimedean.nelsen13

import numpy as np
import sympy

from copul.family.archimedean.biv_archimedean_copula import BivArchimedeanCopula
from copul.family.frechet.biv_independence_copula import BivIndependenceCopula
from copul.wrapper.sympy_wrapper import SymPyFuncWrapper


[docs] class Nelsen13(BivArchimedeanCopula): ac = BivArchimedeanCopula theta = sympy.symbols("theta", nonnegative=True) theta_interval = sympy.Interval(0, np.inf, left_open=False, right_open=True) special_cases = {0: BivIndependenceCopula} @property def is_absolutely_continuous(self) -> bool: return True @property def _raw_generator(self): return (1 - sympy.log(self.t)) ** self.theta - 1 @property def _raw_inv_generator(self) -> SymPyFuncWrapper: return sympy.exp(1 - (self.y + 1) ** (1 / self.theta)) @property def _cdf_expr(self): return sympy.exp( 1 - ( (1 - sympy.log(self.u)) ** self.theta + (1 - sympy.log(self.v)) ** self.theta - 1 ) ** (1 / self.theta) )
[docs] def lambda_L(self): return 0
[docs] def lambda_U(self): return 0