class_docstr: Frank copula.
  
  Dependence is symmetric.
  
  .. math::
  
      C_\theta(\mathbf{u}) = -\frac{1}{\theta} \log \left[ 1-
      \frac{ \prod_j (1-\exp(- \theta u_j)) }{ (1 - \exp(-\theta)-1)^{d -
      1} } \right]
  
  with :math:`\theta\in \mathbb{R}\backslash\{0\}, \mathbf{u} \in [0, 1]^d`.
class_docstr_tok: ["Frank","copula",".","Dependence","is","symmetric",".","..","math",":",":","C_\\theta","(","\\mathbf","{","u","}",")","=","-\\frac","{","1","}","{","\\theta","}","\\log","\\left","[","1-","\\frac","{","\\prod_j","(","1-\\exp","(","-","\\theta","u_j",")",")","}","{","(","1","-","\\exp","(","-\\theta",")","-1",")","^","{","d","-","1","}","}","\\right","]","with",":","math",":","`","\\theta\\in","\\mathbb","{","R","}","\\backslash\\","{","0\\","}",",","\\mathbf","{","u","}","\\in","[","0",",","1","]","^d","`","."]
code: def rvs(self, nobs=1, args=(), random_state=None):
      rng = check_random_state(random_state)
      (th,) = self._handle_args(args)
      x = rng.random((nobs, self.k_dim))
      v = stats.logser.rvs(
          1.0 - np.exp(-th), size=(nobs, 1), random_state=rng
      )
  
      return (
          -1.0
          / th
          * np.log(
              1.0 + np.exp(-(-np.log(x) / v)) * (np.exp(-th) - 1.0)
          )
      )
  
imports: import sys
  import numpy
  from scipy import stats, integrate, optimize
  from .None import transforms
  from .copulas import Copula
  from statsmodels.tools.rng_qrng import check_random_state
label_desc: Use image node_id 2 for calling the FrankCopula obj's underlying member method code with example usage: obj.rvs(nobs, args, random_state) and returns: unknown