code: def fit(self, X, *args, **kwargs):
          
  
          self.constant_value = self._get_constant_value(X)
  
          if self.constant_value is None:
              if self.unfittable_model:
                  self.model = getattr(scipy.stats, self.model_class)(*args, **kwargs)
              else:
                  self.model = getattr(scipy.stats, self.model_class)(X, *args, **kwargs)
  
              for name in self.METHOD_NAMES:
                  attribute = getattr(self.__class__, name)
                  if isinstance(attribute, str):
                      setattr(self, name, getattr(self.model, attribute))
  
                  elif attribute is None:
                      setattr(self, name, missing_method_scipy_wrapper(lambda x: x))
  
          else:
              self._replace_constant_methods()
  
          self.fitted = True
docs: Fit scipy model to an array of values.
  
          Args:
              X(`np.ndarray` or `pd.DataFrame`):  Datapoints to be estimated from. Must be 1-d
  
          Returns:
              None