'Evaluate the cumulative distribution function.
Parameters
data_predict: array_like, optional
Points to evaluate at.  If unspecified, the training data is used.
Returns
cdf_est: array_like
The estimate of the cdf.
Notes
See http://en.wikipedia.org/wiki/Cumulative_distribution_function
For more details on the estimation see Ref. [5] in module docstring.
The multivariate CDF for mixed data (continuous and ordered/unordered
discrete) is estimated by:
.. math::
F(x^{c},x^{d})=n^{-1}\sum_{i=1}^{n}\left[G(\frac{x^{c}-X_{i}}{h})\sum_{u\leq x^{d}}L(X_{i}^{d},x_{i}^{d}, \lambda)\right]
where G() is the product kernel CDF estimator for the continuous
and L() for the discrete variables.
Used bandwidth is ``self.bw``.'

def cdf(self, data_predict=None):

    if (data_predict is None):
        data_predict = self.data
    else:
        data_predict = _adjust_shape(data_predict, self.k_vars)
    cdf_est = []
    for i in range(np.shape(data_predict)[0]):
        cdf_est.append((gpke(self.bw, data=self.data, data_predict=data_predict[i, :], var_type=self.var_type, ckertype='gaussian_cdf', ukertype='aitchisonaitken_cdf', okertype='wangryzin_cdf') / self.nobs))
    cdf_est = np.squeeze(cdf_est)
    return cdf_est
