class_docstr: Results from fitting Exponential Smoothing models.
  
  Parameters
  ----------
  model : ExponentialSmoothing instance
      The fitted model instance.
  params : dict
      All the parameters for the Exponential Smoothing model.
  sse : float
      The sum of squared errors.
  aic : float
      The Akaike information criterion.
  aicc : float
      AIC with a correction for finite sample sizes.
  bic : float
      The Bayesian information criterion.
  optimized : bool
      Flag indicating whether the model parameters were optimized to fit
      the data.
  level : ndarray
      An array of the levels values that make up the fitted values.
  trend : ndarray
      An array of the trend values that make up the fitted values.
  season : ndarray
      An array of the seasonal values that make up the fitted values.
  params_formatted : pd.DataFrame
      DataFrame containing all parameters, their short names and a flag
      indicating whether the parameter's value was optimized to fit the data.
  resid : ndarray
      An array of the residuals of the fittedvalues and actual values.
  k : int
      The k parameter used to remove the bias in AIC, BIC etc.
  fittedvalues : ndarray
      An array of the fitted values. Fitted by the Exponential Smoothing
      model.
  fittedfcast : ndarray
      An array of both the fitted values and forecast values.
  fcastvalues : ndarray
      An array of the forecast values forecast by the Exponential Smoothing
      model.
  mle_retvals : {None, scipy.optimize.optimize.OptimizeResult}
      Optimization results if the parameters were optimized to fit the data.
class_docstr_tok: ["Results","from","fitting","Exponential","Smoothing","models",".","Parameters","--","--","--","--","--","model",":","ExponentialSmoothing","instance","The","fitted","model","instance",".","params",":","dict","All","the","parameters","for","the","Exponential","Smoothing","model",".","sse",":","float","The","sum","of","squared","errors",".","aic",":","float","The","Akaike","information","criterion",".","aicc",":","float","AIC","with","a","correction","for","finite","sample","sizes",".","bic",":","float","The","Bayesian","information","criterion",".","optimized",":","bool","Flag","indicating","whether","the","model","parameters","were","optimized","to","fit","the","data",".","level",":","ndarray","An","array","of","the","levels","values","that","make","up","the","fitted","values",".","trend",":","ndarray","An","array","of","the","trend","values","that","make","up","the","fitted","values",".","season",":","ndarray","An","array","of","the","seasonal","values","that","make","up","the","fitted","values",".","params_formatted",":","pd.DataFrame","DataFrame","containing","all","parameters",",","their","short","names","and","a","flag","indicating","whether","the","parameter","'s","value","was","optimized","to","fit","the","data",".","resid",":","ndarray","An","array","of","the","residuals","of","the","fittedvalues","and","actual","values",".","k",":","int","The","k","parameter","used","to","remove","the","bias","in","AIC",",","BIC","etc",".","fittedvalues",":","ndarray","An","array","of","the","fitted","values",".","Fitted","by","the","Exponential","Smoothing","model",".","fittedfcast",":","ndarray","An","array","of","both","the","fitted","values","and","forecast","values",".","fcastvalues",":","ndarray","An","array","of","the","forecast","values","forecast","by","the","Exponential","Smoothing","model",".","mle_retvals",":","{","None",",","scipy.optimize.optimize.OptimizeResult","}","Optimization","results","if","the","parameters","were","optimized","to","fit","the","data","."]
docstr: Summarize the fitted Model
  
  Returns
  -------
  smry : Summary instance
      This holds the summary table and text, which can be printed or
      converted to various output formats.
  
  See Also
  --------
  statsmodels.iolib.summary.Summary
docstr_tok: ["Summarize","the","fitted","Model","Returns","--","--","--","-","smry",":","Summary","instance","This","holds","the","summary","table","and","text",",","which","can","be","printed","or","converted","to","various","output","formats",".","See","Also","--","--","--","--","statsmodels.iolib.summary.Summary"]
code: def summary(self):
      """
      Summarize the fitted Model
  
      Returns
      -------
      smry : Summary instance
          This holds the summary table and text, which can be printed or
          converted to various output formats.
  
      See Also
      --------
      statsmodels.iolib.summary.Summary
      """
      from statsmodels.iolib.summary import Summary
      from statsmodels.iolib.table import SimpleTable
  
      model = self.model
      title = model.__class__.__name__ + " Model Results"
  
      dep_variable = "endog"
      orig_endog = self.model.data.orig_endog
      if isinstance(orig_endog, pd.DataFrame):
          dep_variable = orig_endog.columns[0]
      elif isinstance(orig_endog, pd.Series):
          dep_variable = orig_endog.name
      seasonal_periods = (
          None
          if self.model.seasonal is None
          else self.model.seasonal_periods
      )
      lookup = {
          "add": "Additive",
          "additive": "Additive",
          "mul": "Multiplicative",
          "multiplicative": "Multiplicative",
          None: "None",
      }
      transform = self.params["use_boxcox"]
      box_cox_transform = True if transform else False
      box_cox_coeff = (
          transform
          if isinstance(transform, str)
          else self.params["lamda"]
      )
      if isinstance(box_cox_coeff, float):
          box_cox_coeff = f"{box_cox_coeff:>10.5f}"
      top_left = [
          ("Dep. Variable:", [dep_variable]),
          ("Model:", [model.__class__.__name__]),
          ("Optimized:", [str(np.any(self.optimized))]),
          ("Trend:", [lookup[self.model.trend]]),
          ("Seasonal:", [lookup[self.model.seasonal]]),
          ("Seasonal Periods:", [str(seasonal_periods)]),
          ("Box-Cox:", [str(box_cox_transform)]),
          ("Box-Cox Coeff.:", [str(box_cox_coeff)]),
      ]
  
      top_right = [
          ("No. Observations:", [str(len(self.model.endog))]),
          ("SSE", [f"{self.sse:5.3f}"]),
          ("AIC", [f"{self.aic:5.3f}"]),
          ("BIC", [f"{self.bic:5.3f}"]),
          ("AICC", [f"{self.aicc:5.3f}"]),
          ("Date:", None),
          ("Time:", None),
      ]
  
      smry = Summary()
      smry.add_table_2cols(
          self, gleft=top_left, gright=top_right, title=title
      )
      formatted = self.params_formatted  # type: pd.DataFrame
  
      def _fmt(x):
          abs_x = np.abs(x)
          scale = 1
          if np.isnan(x):
              return f"{str(x):>20}"
          if abs_x != 0:
              scale = int(np.log10(abs_x))
          if scale > 4 or scale < -3:
              return f"{x:>20.5g}"
          dec = min(7 - scale, 7)
          fmt = f"{{:>20.{dec}f}}"
          return fmt.format(x)
  
      tab = []
      for _, vals in formatted.iterrows():
          tab.append(
              [
                  _fmt(vals.iloc[1]),
                  f"{vals.iloc[0]:>20}",
                  f"{str(bool(vals.iloc[2])):>20}",
              ]
          )
      params_table = SimpleTable(
          tab,
          headers=["coeff", "code", "optimized"],
          title="",
          stubs=list(formatted.index),
      )
  
      smry.tables.append(params_table)
  
      return smry
  
imports: import numpy
  import pandas
  from scipy.special import inv_boxcox
  from scipy.stats import boxcox, rv_continuous, rv_discrete
  from scipy.stats.distributions import rv_frozen
  from statsmodels.base.data import PandasData
  from statsmodels.base.model import Results
  from statsmodels.base.wrapper import ResultsWrapper, populate_wrapper, union_dicts
label_desc: Use image node_id 22 for calling the HoltWintersResults obj's underlying member method code with example usage: obj.summary() and returns: smry, fmt, str, x