def _predict_prob(self, params, exog, exog_infl, exposure, offset, y_values=None):
    params_infl = params[:self.k_inflate]
    params_main = params[self.k_inflate:]
    p = (self.model_main.parameterization + 1)
    if (y_values is None):
        y_values = np.atleast_2d(np.arange(0, (np.max(self.endog) + 1)))
    if (len(exog_infl.shape) < 2):
        transform = True
        w = np.atleast_2d(self.model_infl.predict(params_infl, exog_infl))[:, None]
    else:
        transform = False
        w = self.model_infl.predict(params_infl, exog_infl)[:, None]
    w[(w == 1.0)] = np.nextafter(1, 0)
    mu = self.model_main.predict(params_main, exog, exposure=exposure, offset=offset)[:, None]
    result = self.distribution.pmf(y_values, mu, params_main[(- 1)], p, w)
    return (result[0] if transform else result)
def _predict_prob(self, params, exog, exog_infl, exposure, offset, y_values=None):
    params_infl = params[:self.k_inflate]
    params_main = params[self.k_inflate:]
    p = (self.model_main.parameterization + 1)
    if (y_values is None):
        y_values = np.atleast_2d(np.arange(0, (np.max(self.endog) + 1)))
    if (len(exog_infl.shape) < 2):
        transform = True
        w = np.atleast_2d(self.model_infl.predict(params_infl, exog_infl))[:, None]
    else:
        transform = False
        w = self.model_infl.predict(params_infl, exog_infl)[:, None]
    w[(w == 1.0)] = np.nextafter(1, 0)
    mu = self.model_main.predict(params_main, exog, exposure=exposure, offset=offset)[:, None]
    result = self.distribution.pmf(y_values, mu, params_main[(- 1)], p, w)
    return (result[0] if transform else result)