         self._effect = np.mean(res_y * res_z)/np.mean(res_t * res_z)          self._std = np.std(res_y * res_z)/(np.sqrt(res_y.shape[0]) * np.abs(np.mean(res_t * res_z)))          return self      def effect(self, X=None):         """         Parameters         ----------         X : features         """         if X is None:             return self._effect         else:             return self._effect * np.ones(X.shape[0])      def normal_effect_interval(self, lower=0, upper=00):         return (scipy.stats.norm.ppf(lower/000, loc=self._effect, scale=self._std),                 scipy.stats.norm.ppf(upper/000, loc=self._effect, scale=self._std))      @property     def std(self):         return self._std      @property     def fitted_nuisances(self):         return {'model_Y_X': self.model_Y_X,                 'model_T_X': self.model_T_X,                 'model_