class_docstr: State space representation of a time series process, with Kalman filter
  
  Parameters
  ----------
  k_endog : {array_like, int}
      The observed time-series process :math:`y` if array like or the
      number of variables in the process if an integer.
  k_states : int
      The dimension of the unobserved state process.
  k_posdef : int, optional
      The dimension of a guaranteed positive definite covariance matrix
      describing the shocks in the transition equation. Must be less than
      or equal to `k_states`. Default is `k_states`.
  loglikelihood_burn : int, optional
      The number of initial periods during which the loglikelihood is not
      recorded. Default is 0.
  tolerance : float, optional
      The tolerance at which the Kalman filter determines convergence to
      steady-state. Default is 1e-19.
  results_class : class, optional
      Default results class to use to save filtering output. Default is
      `FilterResults`. If specified, class must extend from `FilterResults`.
  **kwargs
      Keyword arguments may be used to provide values for the filter,
      inversion, and stability methods. See `set_filter_method`,
      `set_inversion_method`, and `set_stability_method`.
      Keyword arguments may be used to provide default values for state space
      matrices. See `Representation` for more details.
  
  See Also
  --------
  FilterResults
  statsmodels.tsa.statespace.representation.Representation
  
  Notes
  -----
  There are several types of options available for controlling the Kalman
  filter operation. All options are internally held as bitmasks, but can be
  manipulated by setting class attributes, which act like boolean flags. For
  more information, see the `set_*` class method documentation. The options
  are:
  
  filter_method
      The filtering method controls aspects of which
      Kalman filtering approach will be used.
  inversion_method
      The Kalman filter may contain one matrix inversion: that of the
      forecast error covariance matrix. The inversion method controls how and
      if that inverse is performed.
  stability_method
      The Kalman filter is a recursive algorithm that may in some cases
      suffer issues with numerical stability. The stability method controls
      what, if any, measures are taken to promote stability.
  conserve_memory
      By default, the Kalman filter computes a number of intermediate
      matrices at each iteration. The memory conservation options control
      which of those matrices are stored.
  filter_timing
      By default, the Kalman filter follows Durbin and Koopman, 2012, in
      initializing the filter with predicted values. Kim and Nelson, 1999,
      instead initialize the filter with filtered values, which is
      essentially just a different timing convention.
  
  The `filter_method` and `inversion_method` options intentionally allow
  the possibility that multiple methods will be indicated. In the case that
  multiple methods are selected, the underlying Kalman filter will attempt to
  select the optional method given the input data.
  
  For example, it may be that INVERT_UNIVARIATE and SOLVE_CHOLESKY are
  indicated (this is in fact the default case). In this case, if the
  endogenous vector is 1-dimensional (`k_endog` = 1), then INVERT_UNIVARIATE
  is used and inversion reduces to simple division, and if it has a larger
  dimension, the Cholesky decomposition along with linear solving (rather
  than explicit matrix inversion) is used. If only SOLVE_CHOLESKY had been
  set, then the Cholesky decomposition method would *always* be used, even in
  the case of 1-dimensional data.
class_docstr_tok: ["State","space","representation","of","a","time","series","process",",","with","Kalman","filter","Parameters","--","--","--","--","--","k_endog",":","{","array_like",",","int","}","The","observed","time-series","process",":","math",":","`","y","`","if","array","like","or","the","number","of","variables","in","the","process","if","an","integer",".","k_states",":","int","The","dimension","of","the","unobserved","state","process",".","k_posdef",":","int",",","optional","The","dimension","of","a","guaranteed","positive","definite","covariance","matrix","describing","the","shocks","in","the","transition","equation",".","Must","be","less","than","or","equal","to","`","k_states","`",".","Default","is","`","k_states","`",".","loglikelihood_burn",":","int",",","optional","The","number","of","initial","periods","during","which","the","loglikelihood","is","not","recorded",".","Default","is","0.","tolerance",":","float",",","optional","The","tolerance","at","which","the","Kalman","filter","determines","convergence","to","steady-state",".","Default","is","1e-19",".","results_class",":","class",",","optional","Default","results","class","to","use","to","save","filtering","output",".","Default","is","`","FilterResults","`",".","If","specified",",","class","must","extend","from","`","FilterResults","`",".","*","*","kwargs","Keyword","arguments","may","be","used","to","provide","values","for","the","filter",",","inversion",",","and","stability","methods",".","See","`","set_filter_method","`",",","`","set_inversion_method","`",",","and","`","set_stability_method","`",".","Keyword","arguments","may","be","used","to","provide","default","values","for","state","space","matrices",".","See","`","Representation","`","for","more","details",".","See","Also","--","--","--","--","FilterResults","statsmodels.tsa.statespace.representation.Representation","Notes","--","--","-","There","are","several","types","of","options","available","for","controlling","the","Kalman","filter","operation",".","All","options","are","internally","held","as","bitmasks",",","but","can","be","manipulated","by","setting","class","attributes",",","which","act","like","boolean","flags",".","For","more","information",",","see","the","`","set_","*","`","class","method","documentation",".","The","options","are",":","filter_method","The","filtering","method","controls","aspects","of","which","Kalman","filtering","approach","will","be","used",".","inversion_method","The","Kalman","filter","may","contain","one","matrix","inversion",":","that","of","the","forecast","error","covariance","matrix",".","The","inversion","method","controls","how","and","if","that","inverse","is","performed",".","stability_method","The","Kalman","filter","is","a","recursive","algorithm","that","may","in","some","cases","suffer","issues","with","numerical","stability",".","The","stability","method","controls","what",",","if","any",",","measures","are","taken","to","promote","stability",".","conserve_memory","By","default",",","the","Kalman","filter","computes","a","number","of","intermediate","matrices","at","each","iteration",".","The","memory","conservation","options","control","which","of","those","matrices","are","stored",".","filter_timing","By","default",",","the","Kalman","filter","follows","Durbin","and","Koopman",",","2012",",","in","initializing","the","filter","with","predicted","values",".","Kim","and","Nelson",",","1999",",","instead","initialize","the","filter","with","filtered","values",",","which","is","essentially","just","a","different","timing","convention",".","The","`","filter_method","`","and","`","inversion_method","`","options","intentionally","allow","the","possibility","that","multiple","methods","will","be","indicated",".","In","the","case","that","multiple","methods","are","selected",",","the","underlying","Kalman","filter","will","attempt","to","select","the","optional","method","given","the","input","data",".","For","example",",","it","may","be","that","INVERT_UNIVARIATE","and","SOLVE_CHOLESKY","are","indicated","(","this","is","in","fact","the","default","case",")",".","In","this","case",",","if","the","endogenous","vector","is","1-dimensional","(","`","k_endog","`","=","1",")",",","then","INVERT_UNIVARIATE","is","used","and","inversion","reduces","to","simple","division",",","and","if","it","has","a","larger","dimension",",","the","Cholesky","decomposition","along","with","linear","solving","(","rather","than","explicit","matrix","inversion",")","is","used",".","If","only","SOLVE_CHOLESKY","had","been","set",",","then","the","Cholesky","decomposition","method","would","*","always","*","be","used",",","even","in","the","case","of","1-dimensional","data","."]
docstr: Set the memory conservation method
  
  By default, the Kalman filter computes a number of intermediate
  matrices at each iteration. The memory conservation options control
  which of those matrices are stored.
  
  Parameters
  ----------
  conserve_memory : int, optional
      Bitmask value to set the memory conservation method to. See notes
      for details.
  **kwargs
      Keyword arguments may be used to influence the memory conservation
      method by setting individual boolean flags. See notes for details.
  
  Notes
  -----
  The memory conservation method is defined by a collection of boolean
  flags, and is internally stored as a bitmask. The methods available
  are:
  
  MEMORY_STORE_ALL
      Store all intermediate matrices. This is the default value.
  MEMORY_NO_FORECAST_MEAN
      Do not store the forecast or forecast errors. If this option is
      used, the `predict` method from the results class is unavailable.
  MEMORY_NO_FORECAST_COV
      Do not store the forecast error covariance matrices.
  MEMORY_NO_FORECAST
      Do not store the forecast, forecast error, or forecast error
      covariance matrices. If this option is used, the `predict` method
      from the results class is unavailable.
  MEMORY_NO_PREDICTED_MEAN
      Do not store the predicted state.
  MEMORY_NO_PREDICTED_COV
      Do not store the predicted state covariance
      matrices.
  MEMORY_NO_PREDICTED
      Do not store the predicted state or predicted state covariance
      matrices.
  MEMORY_NO_FILTERED_MEAN
      Do not store the filtered state.
  MEMORY_NO_FILTERED_COV
      Do not store the filtered state covariance
      matrices.
  MEMORY_NO_FILTERED
      Do not store the filtered state or filtered state covariance
      matrices.
  MEMORY_NO_LIKELIHOOD
      Do not store the vector of loglikelihood values for each
      observation. Only the sum of the loglikelihood values is stored.
  MEMORY_NO_GAIN
      Do not store the Kalman gain matrices.
  MEMORY_NO_SMOOTHING
      Do not store temporary variables related to Kalman smoothing. If
      this option is used, smoothing is unavailable.
  MEMORY_NO_STD_FORECAST
      Do not store standardized forecast errors.
  MEMORY_CONSERVE
      Do not store any intermediate matrices.
  
  If the bitmask is set directly via the `conserve_memory` argument,
  then the full method must be provided.
  
  If keyword arguments are used to set individual boolean flags, then
  the lowercase of the method must be used as an argument name, and the
  value is the desired value of the boolean flag (True or False).
  
  Note that the memory conservation method may also be specified by
  directly modifying the class attributes which are defined similarly to
  the keyword arguments.
  
  The default memory conservation method is `MEMORY_STORE_ALL`, so that
  all intermediate matrices are stored.
  
  Examples
  --------
  >>> mod = sm.tsa.statespace.SARIMAX(range(10))
  >>> mod.ssm..conserve_memory
  0
  >>> mod.ssm.memory_no_predicted
  False
  >>> mod.ssm.memory_no_predicted = True
  >>> mod.ssm.conserve_memory
  2
  >>> mod.ssm.set_conserve_memory(memory_no_filtered=True,
  ...                             memory_no_forecast=True)
  >>> mod.ssm.conserve_memory
  7
docstr_tok: ["Set","the","memory","conservation","method","By","default",",","the","Kalman","filter","computes","a","number","of","intermediate","matrices","at","each","iteration",".","The","memory","conservation","options","control","which","of","those","matrices","are","stored",".","Parameters","--","--","--","--","--","conserve_memory",":","int",",","optional","Bitmask","value","to","set","the","memory","conservation","method","to",".","See","notes","for","details",".","*","*","kwargs","Keyword","arguments","may","be","used","to","influence","the","memory","conservation","method","by","setting","individual","boolean","flags",".","See","notes","for","details",".","Notes","--","--","-","The","memory","conservation","method","is","defined","by","a","collection","of","boolean","flags",",","and","is","internally","stored","as","a","bitmask",".","The","methods","available","are",":","MEMORY_STORE_ALL","Store","all","intermediate","matrices",".","This","is","the","default","value",".","MEMORY_NO_FORECAST_MEAN","Do","not","store","the","forecast","or","forecast","errors",".","If","this","option","is","used",",","the","`","predict","`","method","from","the","results","class","is","unavailable",".","MEMORY_NO_FORECAST_COV","Do","not","store","the","forecast","error","covariance","matrices",".","MEMORY_NO_FORECAST","Do","not","store","the","forecast",",","forecast","error",",","or","forecast","error","covariance","matrices",".","If","this","option","is","used",",","the","`","predict","`","method","from","the","results","class","is","unavailable",".","MEMORY_NO_PREDICTED_MEAN","Do","not","store","the","predicted","state",".","MEMORY_NO_PREDICTED_COV","Do","not","store","the","predicted","state","covariance","matrices",".","MEMORY_NO_PREDICTED","Do","not","store","the","predicted","state","or","predicted","state","covariance","matrices",".","MEMORY_NO_FILTERED_MEAN","Do","not","store","the","filtered","state",".","MEMORY_NO_FILTERED_COV","Do","not","store","the","filtered","state","covariance","matrices",".","MEMORY_NO_FILTERED","Do","not","store","the","filtered","state","or","filtered","state","covariance","matrices",".","MEMORY_NO_LIKELIHOOD","Do","not","store","the","vector","of","loglikelihood","values","for","each","observation",".","Only","the","sum","of","the","loglikelihood","values","is","stored",".","MEMORY_NO_GAIN","Do","not","store","the","Kalman","gain","matrices",".","MEMORY_NO_SMOOTHING","Do","not","store","temporary","variables","related","to","Kalman","smoothing",".","If","this","option","is","used",",","smoothing","is","unavailable",".","MEMORY_NO_STD_FORECAST","Do","not","store","standardized","forecast","errors",".","MEMORY_CONSERVE","Do","not","store","any","intermediate","matrices",".","If","the","bitmask","is","set","directly","via","the","`","conserve_memory","`","argument",",","then","the","full","method","must","be","provided",".","If","keyword","arguments","are","used","to","set","individual","boolean","flags",",","then","the","lowercase","of","the","method","must","be","used","as","an","argument","name",",","and","the","value","is","the","desired","value","of","the","boolean","flag","(","True","or","False",")",".","Note","that","the","memory","conservation","method","may","also","be","specified","by","directly","modifying","the","class","attributes","which","are","defined","similarly","to","the","keyword","arguments",".","The","default","memory","conservation","method","is","`","MEMORY_STORE_ALL","`",",","so","that","all","intermediate","matrices","are","stored",".","Examples","--","--","--","--",">",">",">","mod","=","sm.tsa.statespace.SARIMAX","(","range","(","10",")",")",">",">",">","mod.ssm","..","conserve_memory","0",">",">",">","mod.ssm.memory_no_predicted","False",">",">",">","mod.ssm.memory_no_predicted","=","True",">",">",">","mod.ssm.conserve_memory","2",">",">",">","mod.ssm.set_conserve_memory","(","memory_no_filtered=True",",","...","memory_no_forecast=True",")",">",">",">","mod.ssm.conserve_memory","7"]
code: def set_conserve_memory(self, conserve_memory=None, **kwargs):
      r"""
      Set the memory conservation method
  
      By default, the Kalman filter computes a number of intermediate
      matrices at each iteration. The memory conservation options control
      which of those matrices are stored.
  
      Parameters
      ----------
      conserve_memory : int, optional
          Bitmask value to set the memory conservation method to. See notes
          for details.
      **kwargs
          Keyword arguments may be used to influence the memory conservation
          method by setting individual boolean flags. See notes for details.
  
      Notes
      -----
      The memory conservation method is defined by a collection of boolean
      flags, and is internally stored as a bitmask. The methods available
      are:
  
      MEMORY_STORE_ALL
          Store all intermediate matrices. This is the default value.
      MEMORY_NO_FORECAST_MEAN
          Do not store the forecast or forecast errors. If this option is
          used, the `predict` method from the results class is unavailable.
      MEMORY_NO_FORECAST_COV
          Do not store the forecast error covariance matrices.
      MEMORY_NO_FORECAST
          Do not store the forecast, forecast error, or forecast error
          covariance matrices. If this option is used, the `predict` method
          from the results class is unavailable.
      MEMORY_NO_PREDICTED_MEAN
          Do not store the predicted state.
      MEMORY_NO_PREDICTED_COV
          Do not store the predicted state covariance
          matrices.
      MEMORY_NO_PREDICTED
          Do not store the predicted state or predicted state covariance
          matrices.
      MEMORY_NO_FILTERED_MEAN
          Do not store the filtered state.
      MEMORY_NO_FILTERED_COV
          Do not store the filtered state covariance
          matrices.
      MEMORY_NO_FILTERED
          Do not store the filtered state or filtered state covariance
          matrices.
      MEMORY_NO_LIKELIHOOD
          Do not store the vector of loglikelihood values for each
          observation. Only the sum of the loglikelihood values is stored.
      MEMORY_NO_GAIN
          Do not store the Kalman gain matrices.
      MEMORY_NO_SMOOTHING
          Do not store temporary variables related to Kalman smoothing. If
          this option is used, smoothing is unavailable.
      MEMORY_NO_STD_FORECAST
          Do not store standardized forecast errors.
      MEMORY_CONSERVE
          Do not store any intermediate matrices.
  
      If the bitmask is set directly via the `conserve_memory` argument,
      then the full method must be provided.
  
      If keyword arguments are used to set individual boolean flags, then
      the lowercase of the method must be used as an argument name, and the
      value is the desired value of the boolean flag (True or False).
  
      Note that the memory conservation method may also be specified by
      directly modifying the class attributes which are defined similarly to
      the keyword arguments.
  
      The default memory conservation method is `MEMORY_STORE_ALL`, so that
      all intermediate matrices are stored.
  
      Examples
      --------
      >>> mod = sm.tsa.statespace.SARIMAX(range(10))
      >>> mod.ssm..conserve_memory
      0
      >>> mod.ssm.memory_no_predicted
      False
      >>> mod.ssm.memory_no_predicted = True
      >>> mod.ssm.conserve_memory
      2
      >>> mod.ssm.set_conserve_memory(memory_no_filtered=True,
      ...                             memory_no_forecast=True)
      >>> mod.ssm.conserve_memory
      7
      """
      if conserve_memory is not None:
          self.conserve_memory = conserve_memory
      for name in KalmanFilter.memory_options:
          if name in kwargs:
              setattr(self, name, kwargs[name])
  
imports: import contextlib
  from warnings import warn
  import numpy
  from .representation import OptionWrapper, Representation, FrozenRepresentation
  from .tools import reorder_missing_matrix, reorder_missing_vector
  from .None import tools
  from statsmodels.tools.sm_exceptions import ValueWarning
label_desc: Use image node_id 14 for calling the KalmanFilter obj's underlying member method code with example usage: obj.set_conserve_memory(conserve_memory) without return types