Source code for copulas.bivariate.independence

"""Independence module."""

import numpy as np

from copulas.bivariate.base import Bivariate, CopulaTypes
from copulas.bivariate.utils import split_matrix


[docs]class Independence(Bivariate): """This class represent the copula for two independent variables.""" copula_type = CopulaTypes.INDEPENDENCE
[docs] def fit(self, X): """Fit the copula to the given data. Args: X (numpy.array): Probabilites in a matrix shaped (n, 2) Returns: None """
[docs] def generator(self, t): """Compute the generator function for the Copula. The generator function is a function f(t), such that an archimedian copula can be defined as C(u1, ..., uN) = f(f^-1(u1), ..., f^-1(uN)). Args: t(numpy.array) Returns: np.array """ return np.log(t)
[docs] def probability_density(self, X): """Compute the probability density for the independence copula.""" return np.all((0.0 <= X) & (X <= 1.0), axis=1).astype(float)
[docs] def cumulative_distribution(self, X): """Compute the cumulative distribution of the independence bivariate copula is the product. Args: X(numpy.array): Matrix of shape (n,2), whose values are in [0, 1] Returns: numpy.array: Cumulative distribution values of given input. """ U, V = split_matrix(X) return U * V
[docs] def partial_derivative(self, X): """Compute the conditional probability of one event conditiones to the other. In the case of the independence copula, due to C(u,v) = u*v, we have that F(u|v) = dC/du = v. Args: X() """ _, V = split_matrix(X) return V
[docs] def percent_point(self, y, V): """Compute the inverse of conditional cumulative distribution :math:`F(u|v)^-1`. Args: y: `np.ndarray` value of :math:`F(u|v)`. v: `np.ndarray` given value of v. """ self.check_fit() return y