code: def fit(self):
      #  print("ESTIMATE_CROSTON_MODEL_START" , self.mCycleResidueName);
  
      self.set_name()
  
      series = self.mCycleResidueName
      self.mTime = self.mTimeInfo.mTime
      self.mSignal = self.mTimeInfo.mSignal
      lAREstimFrame = self.mSplit.getEstimPart(self.mARFrame)
      self.mOffset = lAREstimFrame[self.mCycleResidueName].min()
      self.estimate_alpha(lAREstimFrame)
      self.mFeatureSelector = None
      self.mInputNamesAfterSelection = self.mInputNames
      self.mComplexity = 2
  
      lPredicted = self.croston(self.mARFrame)
      self.mARFrame[self.mOutName] = lPredicted["forecast"]
      self.mARFrame[self.mOutName + "_residue"] = (
          self.mARFrame[series] - self.mARFrame[self.mOutName]
      )
  
file_path: atspy/atspy/TS/Intermittent_Models.py
imports: import numpy
  import pandas
  from .None import SignalDecomposition_AR
  from .None import Utils
  from .None import Perf
  import sys
label_desc: Use image node_id 8 for calling the cCroston_Model obj's underlying member method code with example usage: obj.fit() without return types