def _build_res(self, res: OptimizeResult): res.log_likelihood = -res.fun res.predictive_power = (self.predict_permuted(res.x) * self.is_chosen).sum() / len(self.df) res.aic = res.log_likelihood - self._n_free_params() res.bic = res.log_likelihood - self._n_free_params() * np.log( len(self.df)) / 2 res.π_L = self.π_L res.β = self.β res.b = self.b
def load_model(self, Model: Type[models.Model], res: OptimizeResult) -> models.Model: if len(res.b) > 1: res.b = np.array([res.b[-1] - res.b[-2]]) return super().load_model(Model, res)