class_docstr: This is a temporary base model from ETS, here I just copy everything I need
  from statespace.mlemodel.MLEModel
class_docstr_tok: ["This","is","a","temporary","base","model","from","ETS",",","here","I","just","copy","everything","I","need","from","statespace.mlemodel.MLEModel"]
code: def _hessian_finite_difference(
      self, params, approx_centered=False, **kwargs
  ):
      params = np.array(params, ndmin=1)
  
      warnings.warn(
          "Calculation of the Hessian using finite differences"
          " is usually subject to substantial approximation"
          " errors.",
          PrecisionWarning,
          stacklevel=3,
      )
  
      if not approx_centered:
          epsilon = _get_epsilon(params, 3, None, len(params))
      else:
          epsilon = _get_epsilon(params, 4, None, len(params)) / 2
      hessian = approx_fprime(
          params,
          self._score_finite_difference,
          epsilon=epsilon,
          kwargs=kwargs,
          centered=approx_centered,
      )
  
      # TODO: changed this to nobs_effective, has to be changed when merging
      # with statespace mlemodel
      return hessian / (self.nobs_effective)
  
imports: from collections import OrderedDict
  import contextlib
  import warnings
  import numpy
  import pandas
  from scipy.stats import norm
  from statsmodels.base.data import PandasData
  from statsmodels.tools.decorators import cache_readonly
  from statsmodels.tools.eval_measures import aic, aicc, bic, hqic
  from statsmodels.tools.sm_exceptions import PrecisionWarning
  from statsmodels.tools.numdiff import _get_epsilon, approx_fprime, approx_fprime_cs, approx_hess_cs
  from statsmodels.tools.tools import pinv_extended
  import statsmodels.tsa.base.tsa_model
  from statsmodels.tsa.statespace.tools import _safe_cond
label_desc: Use image node_id 15 for calling the StateSpaceMLEModel obj's underlying member method code with example usage: obj._hessian_finite_difference(params, approx_centered) and returns: unknown