Source code for core.DAO.generate_data_beta_lognorm
import numpy as np
from scipy.stats import beta, lognorm
[docs]
def generate_data_beta_lognorm(n=1000, rho=0.7):
"""
Generate bivariate data with controlled dependence using Gaussian copula and marginals.
"""
from CopulaFurtif.core.copulas.domain.models.elliptical.gaussian import GaussianCopula
copula = GaussianCopula()
copula.parameters = np.array([rho])
uv = copula.sample(n)
u, v = uv[:, 0], uv[:, 1]
x = beta.ppf(u, a=2, b=5)
y = lognorm.ppf(v, s=0.5)
return [x,y]