code: def estimate_ar_models_for_cycle(self, cycle_residue):
      logger = tsutil.get_pyaf_logger()
      self.mARFrame = pd.DataFrame()
      self.mTimeInfo.addVars(self.mARFrame)
      self.mCycleFrame[cycle_residue] = self.mCycleFrame[
          cycle_residue
      ].astype(np.float64)
      self.mARFrame[cycle_residue] = self.mCycleFrame[
          cycle_residue
      ].astype(np.float64)
  
      self.mDefaultValues = {}
      self.mLagOrigins = {}
  
      if self.mOptions.mDebugProfile:
          logger.info(
              "AR_MODEL_ADD_LAGS_START '"
              + cycle_residue
              + "' "
              + str(self.mCycleFrame.shape[0])
              + " "
              + str(self.mARFrame.shape[1])
          )
  
      self.addLagsForTraining(self.mCycleFrame, cycle_residue)
  
      if self.mOptions.mDebugProfile:
          logger.info(
              "AR_MODEL_ADD_LAGS_END '"
              + cycle_residue
              + "' "
              + str(self.mCycleFrame.shape[0])
              + " "
              + str(self.mARFrame.shape[1])
          )
  
      # print(self.mARFrame.info());
  
      lCleanListOfArModels = []
      for autoreg in self.mARList[cycle_residue]:
          if (autoreg.mFormula == "NoAR") or (
              len(autoreg.mInputNames) > 0
          ):
              lCleanListOfArModels.append(autoreg)
      self.mARList[cycle_residue] = lCleanListOfArModels
  
      for autoreg in self.mARList[cycle_residue]:
          start_time = time.time()
          if self.mOptions.mDebugProfile:
              logger.info(
                  "AR_MODEL_START_TRAINING_TIME '"
                  + cycle_residue
                  + "' "
                  + str(self.mCycleFrame.shape[0])
                  + " "
                  + str(len(autoreg.mInputNames))
                  + " "
                  + str(start_time)
              )
          autoreg.mOptions = self.mOptions
          autoreg.mCycleFrame = self.mCycleFrame
          autoreg.mARFrame = self.mARFrame
          autoreg.mTimeInfo = self.mTimeInfo
          autoreg.mSplit = self.mSplit
          autoreg.mLagOrigins = self.mLagOrigins
          autoreg.mDefaultValues = self.mDefaultValues
          autoreg.fit()
          if self.mOptions.mDebugPerformance:
              autoreg.computePerf()
          end_time = time.time()
          lTrainingTime = round(end_time - start_time, 2)
          if self.mOptions.mDebugProfile:
              logger.info(
                  "AR_MODEL_TRAINING_TIME_IN_SECONDS '"
                  + autoreg.mOutName
                  + "' "
                  + str(self.mCycleFrame.shape[0])
                  + " "
                  + str(len(autoreg.mInputNames))
                  + " "
                  + str(lTrainingTime)
              )
  
imports: import pandas
  import numpy
  from .None import Time
  from .None import Perf
  from .None import Plots
  from .None import Utils
  import time
label_desc: Use image node_id 7 for calling the cAutoRegressiveEstimator obj's underlying member method code with example usage: obj.estimate_ar_models_for_cycle(cycle_residue) without return types