class_docstr: The main class of the dynamic linear model.
  
  
  This is the main class of the Bayeisan dynamic linear model.
  It provides the modeling, filtering, forecasting and smoothing
  function of a dlm.
  The dlm use the @builder to construct the @baseModel based on user supplied
  @components and then run @kalmanFilter to filter the result.
  
  Example 1:
      >>> # randomly generate fake data on 1000 days
      >>> import numpy as np
      >>> data = np.random.random((1, 1000))
      >>> # construct the dlm of a linear trend and a 7-day seasonality
      >>> myDlm = dlm(data) + trend(degree = 2, 0.98) + seasonality(period = 7, 0.98)
      >>> # filter the result
      >>> myDlm.fitForwardFilter()
      >>> # extract the filtered result
      >>> myDlm.getFilteredObs()
  
  Example 2 (fit a linear regression):
      >>> from pydlm import dynamic
      >>> data = np.random.random((1, 100))
      >>> mydlm = dlm(data) + trend(degree=1, 0.98, name='a') +
                      dynamic(features=[[i] for i in range(100)], 1, name='b')
      >>> mydlm.fit()
      >>> coef_a = mydlm.getLatentState('a')
      >>> coef_b = mydlm.getLatentState('b')
  
  Attributes:
     data: a list of doubles of the raw time series data.
           It could be either the python's built-in list of
           doubles or numpy 1d array.
docstr: Control whether different component evolve indpendently. If true,
  then the innovation will only be added on each component but not the
  correlation between the components, so that for component with discount
  equals to 1, the smoothed results will always be constant.
  
  Args:
      evoType: If set to 'independent', then each component will evolve
               independently. If set to 'dependent', then the components
               will proceed jointly. Default to 'independent'. Switch to
               'dependent' if efficiency is a concern.
  
  Returns:
      a dlm object (for chaining purpose)
docstr_tok: ["Control","whether","different","component","evolve","indpendently",".","If","true",",","then","the","innovation","will","only","be","added","on","each","component","but","not","the","correlation","between","the","components",",","so","that","for","component","with","discount","equals","to","1",",","the","smoothed","results","will","always","be","constant",".","Args",":","evoType",":","If","set","to","'independent","'",",","then","each","component","will","evolve","independently",".","If","set","to","'dependent","'",",","then","the","components","will","proceed","jointly",".","Default","to","'independent","'",".","Switch","to","'dependent","'","if","efficiency","is","a","concern",".","Returns",":","a","dlm","object","(","for","chaining","purpose",")"]
code: def evolveMode(self, evoType="dependent"):
      """Control whether different component evolve indpendently. If true,
      then the innovation will only be added on each component but not the
      correlation between the components, so that for component with discount
      equals to 1, the smoothed results will always be constant.
  
      Args:
          evoType: If set to 'independent', then each component will evolve
                   independently. If set to 'dependent', then the components
                   will proceed jointly. Default to 'independent'. Switch to
                   'dependent' if efficiency is a concern.
  
      Returns:
          a dlm object (for chaining purpose)
      """
      # if option changes, reset everything
      if (
          self.options.innovationType == "whole"
          and evoType == "independent"
      ) or (
          self.options.innovationType == "component"
          and evoType == "dependent"
      ):
          self.initialized = False
  
      if evoType == "independent":
          self.options.innovationType = "component"
      elif evoType == "dependent":
          self.options.innovationType = "whole"
      else:
          raise NameError("Incorrect option input")
  
      # for chaining
      return self
  
imports: from copy import deepcopy
  from numpy import matrix
  from pydlm.predict.dlmPredictMod import dlmPredictModule
  from pydlm.access.dlmAccessMod import dlmAccessModule
  from pydlm.tuner.dlmTuneMod import dlmTuneModule
  from pydlm.plot.dlmPlotMod import dlmPlotModule
label_desc: Use image node_id 17 for calling the dlm obj's underlying member method code with example usage: obj.evolveMode(evoType) and returns: self