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