'Retun the exog design matrix with mediator and exposure set to
the given values.  Set values of moderated variables as
needed.'

def _get_outcome_exog(self, exposure, mediator):

    outcome_exog = self._outcome_exog
    if (not hasattr(self.outcome_model, 'formula')):
        outcome_exog[:, self._med_pos_outcome] = mediator
        outcome_exog[:, self._exp_pos_outcome] = exposure
        for ix in self.moderators:
            v = self.moderators[ix]
            outcome_exog[:, ix[0]] = v
    else:
        df = self.outcome_model.data.frame.copy()
        df.loc[:, self.exposure] = exposure
        df.loc[:, self.mediator] = mediator
        for vname in self.moderators:
            v = self.moderators[vname]
            df.loc[:, vname] = v
        klass = self.outcome_model.__class__
        init_kwargs = self.outcome_model._get_init_kwds()
        model = klass.from_formula(data=df, **init_kwargs)
        outcome_exog = model.exog
    return outcome_exog
