code: def _cummulativefit(self, x, y):
          
          if y.ndim == 1:
              y = y.reshape(-1, 1)
          if x.ndim == 1:
              x = x.reshape(-1, 1)
  
          xscaled = self.x_scaler.fit_transform(x)
          yscaled = self.y_scaler.fit_transform(y)
  
          ssx_comp = list()
          ssy_comp = list()
  
          # Obtain residual sum of squares for whole data set and per component
          SSX = np.sum(xscaled ** 2)
          SSY = np.sum(yscaled ** 2)
          ssx_comp = list()
          ssy_comp = list()
  
          for curr_comp in range(1, self.ncomps + 1):
              model = self._reduce_ncomps(curr_comp)
  
              ypred = self.y_scaler.transform(model.predict(x, y=None))
              xpred = self.x_scaler.transform(model.predict(x=None, y=y))
              rssy = np.sum((yscaled - ypred) ** 2)
              rssx = np.sum((xscaled - xpred) ** 2)
              ssx_comp.append(rssx)
              ssy_comp.append(rssy)
  
          cumulative_fit = {'SSX': SSX, 'SSY': SSY, 'SSXcomp': np.array(ssx_comp), 'SSYcomp': np.array(ssy_comp)}
  
          return cumulative_fit
docs: Measure the cumulative Regression sum of Squares for each individual component.
  
          :param x: Data matrix to fit the PLS model.
          :type x: numpy.ndarray, shape [n_samples, n_features]
          :param y: Data matrix to fit the PLS model.
          :type y: numpy.ndarray, shape [n_samples, n_features]
          :return: dictionary object containing the total Regression Sum of Squares and the Sum of Squares
          per components, for both the X and Y data blocks.
          :rtype: dict