def partial_derivative(self, X, y=0):
        """Compute partial derivative :math:`C(u|v)` of cumulative density.

        Args:
            X: `np.ndarray`
            y: `float`

        Returns:

        """
        self.check_fit()

        U, V = self.split_matrix(X)

        if self.theta == 1:
            return V

        else:
            t1 = np.power(-np.log(U), self.theta)
            t2 = np.power(-np.log(V), self.theta)
            p1 = self.cumulative_distribution(X)
            p2 = np.power(t1 + t2, -1 + 1.0 / self.theta)
            p3 = np.power(-np.log(V), self.theta - 1)
            return np.divide(np.multiply(np.multiply(p1, p2), p3), V) - y
Compute partial derivative :math:`C(u|v)` of cumulative density.

        Args:
            X: `np.ndarray`
            y: `float`

        Returns: