code: def fit(
          self, frequency, recency, T, weights=None, initial_params=None, verbose=False, tol=1e-7, index=None, **kwargs
      ):
          
          # although the parent method is called, this class's
          # _negative_log_likelihood is referenced
          super(ModifiedBetaGeoFitter, self).fit(
              frequency, recency, T, weights, initial_params, verbose, tol, index=index, **kwargs
          )
          # this needs to be reassigned from the parent method
          self.generate_new_data = lambda size=1: modified_beta_geometric_nbd_model(
              T, *self._unload_params("r", "alpha", "a", "b"), size=size
          )
  
          self.variance_matrix_ = self._compute_variance_matrix()
          self.standard_errors_ = self._compute_standard_errors()
          self.confidence_intervals_ = self._compute_confidence_intervals()
          return self
docs: Fit the data to the MBG/NBD model.
  
          Parameters
          ----------
          frequency: array_like
              the frequency vector of customers' purchases
              (denoted x in literature).
          recency: array_like
              the recency vector of customers' purchases
              (denoted t_x in literature).
          T: array_like
              customers' age (time units since first purchase)
          weights: None or array_like
              Number of customers with given frequency/recency/T,
              defaults to 1 if not specified. Fader and
              Hardie condense the individual RFM matrix into all
              observed combinations of frequency/recency/T. This
              parameter represents the count of customers with a given
              purchase pattern. Instead of calculating individual
              log-likelihood, the log-likelihood is calculated for each
              pattern and multiplied by the number of customers with
              that pattern.
          verbose : bool, optional
              set to true to print out convergence diagnostics.
          tol : float, optional
              tolerance for termination of the function minimization process.
          index: array_like, optional
              index for resulted DataFrame which is accessible via self.data
          kwargs:
              key word arguments to pass to the scipy.optimize.minimize
              function as options dict
  
          Returns
          -------
          ModifiedBetaGeoFitter:
              With additional properties and methods like ``params_`` and ``predict``