'Returns the marginal effects at the data_predict points.'

def fit(self, data_predict=None):

    func = self.est[self.reg_type]
    if (data_predict is None):
        data_predict = self.exog
    else:
        data_predict = _adjust_shape(data_predict, self.k_vars)
    N_data_predict = np.shape(data_predict)[0]
    mean = np.empty((N_data_predict,))
    mfx = np.empty((N_data_predict, self.k_vars))
    for i in range(N_data_predict):
        mean_mfx = func(self.bw, self.endog, self.exog, data_predict=data_predict[i, :], W=self.W_in)
        mean[i] = mean_mfx[0]
        mfx_c = np.squeeze(mean_mfx[1])
        mfx[i, :] = mfx_c
    return (mean, mfx)
