def fit_cor(copula: Copula, data: np.ndarray, typ: str) -> np.ndarray: """ Constructs parameter matrix from matrix of Kendall's Taus or Spearman's Rho Parameters ---------- copula: AbstractCopula Copula instance data: ndarray Data to fit copula with typ: {'irho', 'itau'} The type of rank correlation measure to use. 'itau' uses Kendall's tau while 'irho' uses Spearman's rho Returns ------- ndarray Parameter matrix is copula is elliptical. Otherwise, a vector """ indices = tri_indices(copula.dim, 1, 'lower') if typ == 'itau': tau = kendall_tau(data)[indices] theta = copula.itau(tau) elif typ == 'irho': rho = spearman_rho(data)[indices] theta = copula.irho(rho) else: raise ValueError("Correlation Inversion must be either 'itau' or 'irho'") if is_elliptical(copula): theta = near_psd(create_cov_matrix(theta))[indices] return theta
def fit_cor(copula, data: np.ndarray, typ: str) -> np.ndarray: """ Constructs parameter matrix from matrix of Kendall's Taus or Spearman's Rho Parameters ---------- copula: BaseCopula Copula instance data: ndarray Data to fit copula with typ: {'irho', 'itau'} The type of rank correlation measure to use. 'itau' uses Kendall's tau while 'irho' uses Spearman's rho Returns ------- ndarray Parameter matrix is copula is elliptical. Otherwise, a vector """ indices = tri_indices(copula.dim, 1, 'lower') if typ == 'itau': tau = kendall_tau(data)[indices] theta = copula.itau(tau) elif typ == 'irho': rho = spearman_rho(data)[indices] theta = copula.irho(rho) else: raise ValueError( "Correlation Inversion must be either 'itau' or 'irho'") if is_elliptical(copula): theta = near_psd(create_cov_matrix(theta))[indices] return theta
def sigma(self): """ The covariance matrix for the elliptical copula :return: numpy array Covariance matrix for elliptical copula """ return create_cov_matrix(self._rhos)