docs: def _update_y_transform(self):
          """
          Update the y-transform (theta).
  
          y-transform theta is forced to have mean = 0 and stddev = 1.
  
          This is the second conditional expectation
          """
          # sort all phis wrt increasing y.
          sorted_data_indices = self._yi_sorted
          sorted_xtransforms = []
          for xt in self.x_transforms:
              sorted_xt = sort_vector(xt, sorted_data_indices)
              sorted_xtransforms.append(sorted_xt)
  
          sum_of_x_transformations_choppy = numpy.sum(sorted_xtransforms, axis=0)
          y_sorted = sort_vector(self.y, sorted_data_indices)
          smooth = perform_smooth(y_sorted, sum_of_x_transformations_choppy,
                                  smoother_cls=self._smoother_cls)
          sum_of_x_transformations_smooth = smooth.smooth_result
  
          sum_of_x_transformations_smooth -= numpy.mean(sum_of_x_transformations_smooth)
          sum_of_x_transformations_smooth /= numpy.std(sum_of_x_transformations_smooth)
  
          # unsort to save in the original data
          self.y_transform = unsort_vector(sum_of_x_transformations_smooth, sorted_data_indices)