class_docstr: TSM PARENT CLASS
  
  Contains general time series methods to be inherited by models.
  
  Parameters
  ----------
  model_type : str
      The type of model (e.g. 'ARIMA', 'GARCH')
class_docstr_tok: ["TSM","PARENT","CLASS","Contains","general","time","series","methods","to","be","inherited","by","models",".","Parameters","--","--","--","--","--","model_type",":","str","The","type","of","model","(","e.g",".","'ARIMA","'",",","'GARCH","'",")"]
docstr: Auxiliary function for creating dates for forecasts
  
  Parameters
  ----------
  h : int
      How many steps to forecast
  
  Returns
  ----------
  A transformed date_index object
docstr_tok: ["Auxiliary","function","for","creating","dates","for","forecasts","Parameters","--","--","--","--","--","h",":","int","How","many","steps","to","forecast","Returns","--","--","--","--","--","A","transformed","date_index","object"]
code: def shift_dates(self, h):
      """Auxiliary function for creating dates for forecasts
  
      Parameters
      ----------
      h : int
          How many steps to forecast
  
      Returns
      ----------
      A transformed date_index object
      """
  
      date_index = copy.deepcopy(self.index)
      date_index = date_index[self.max_lag : len(date_index)]
  
      if self.is_pandas is True:
          if isinstance(
              date_index, pd.core.indexes.datetimes.DatetimeIndex
          ):
              if pd.infer_freq(date_index) in ["H", "M", "S"]:
                  for t in range(h):
                      date_index += pd.DateOffset(
                          (
                              date_index[len(date_index) - 1]
                              - date_index[len(date_index) - 2]
                          ).seconds
                      )
  
              else:  # Assume higher frequency (configured for days)
                  for t in range(h):
                      date_index += pd.DateOffset(
                          (
                              date_index[len(date_index) - 1]
                              - date_index[len(date_index) - 2]
                          ).days
                      )
  
          elif isinstance(
              date_index, pd.core.indexes.numeric.Int64Index
          ):
              for i in range(h):
                  new_value = date_index.values[
                      len(date_index.values) - 1
                  ] + (
                      date_index.values[len(date_index.values) - 1]
                      - date_index.values[len(date_index.values) - 2]
                  )
                  date_index = pd.Int64Index(
                      np.append(date_index.values, new_value)
                  )
  
      else:
          for t in range(h):
              date_index.append(date_index[len(date_index) - 1] + 1)
  
      return date_index
  
imports: from math import exp, sqrt, log, tanh
  import copy
  import sys
  import warnings
  import numpy
  from scipy import optimize
  import numdifftools
  import pandas
  from .covariances import acf
  from .families import Normal
  from .inference import BBVI, BBVIM, MetropolisHastings, norm_post_sim
  from .output import TablePrinter
  from .tests import find_p_value
  from .latent_variables import LatentVariable, LatentVariables
  from .results import BBVIResults, MLEResults, LaplaceResults, MCMCResults
label_desc: Use image node_id 12 for calling the TSM obj's underlying member method code with example usage: obj.shift_dates(h) and returns: date_index